Emacs In Practice

問題





問題は、Windows XPの環境変数が1024文字に制限されていることです。 ほとんどのユーザーにとってこれは問題ではありませんが、私を含む一部の人にとっては、問題は突然始まりました。 以前にコマンドラインで使用したプログラムが突然見つかりませんでした。 インターネットでの検索では、おそらく問題は環境変数の長さの制限であることが示唆されました。



Emacsを使用して修正してみましょう。







解決策





Emacsが実行されているので、PATH変数に何があるか見てみましょう







たくさんのこと。 さらに、多くのパスにはディレクトリのフルネームが含まれます。たとえば、 C:\ Program FilesまたはC:\ Documents and Settingsです。 長さを確認する







これらすべてを差し引くのが良いことは明らかです。 Emacsから直接やってみましょう。 Windowsバージョンには、関数w32-short-file-name



があります。これはWin32 API関数へのインターフェイスであり、ファイルへのパスを含む行で呼び出されると、いわゆる8.3形式でパスを返します。



まず、 PATH



変数をPATH



ます。







リストの各要素にw32-short-file-name



関数を適用し、「;」を使用して要素を収集して文字列に戻します。 mapconcat



関数を使用するmapconcat



として。







結果の文字列の長さを確認します







とにかく、結果の文字列が長すぎます。 ただし、 delete-dups



delete-dups



重複するアイテムをdelete-dups



できます。 文字列を要素に戻し、重複を削除し、 mapconcat



を使用して収集します。 今回は、リストアイテム自体を返すidentity



関数を使用します。







長さは私たちにとって非常に適切であり、すでにこの行を使用できます。 一時バッファーに出力します







結果のウィンドウCx oに移動して、行Ca、Cs "、Ret、C-space、Cs"、Ret、Mwをコピーします。











[コンピューターのプロパティ]を開き、[詳細設定]タブ、[環境変数]、[システム変数]の順に移動し、[ パス]変数までスクロールして、値を新しい値に変更します。







出来上がり。 コマンドラインのプログラムは再び機能します。



もちろん、主なことはEmacsが機能することです。



All Articles