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-dupsdelete-dups重複するアイテムをdelete-dupsできます。 文字列を要素に戻し、重複を削除し、 mapconcatを使用して収集します。 今回は、リストアイテム自体を返すidentity関数を使用します。



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



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





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



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

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

Source: https://habr.com/ru/post/J102082/


All Articles