GNU Emacs 23.1.1
ファイル名だけではなく、ファイルのパスをステータス バーに表示する方法があるかどうか知りたいです。
多くのディレクトリにある多くのファイルを開く必要があり、それらがどのディレクトリにあるか忘れてしまうことがあります。可能であれば、ステータス バーにパスの一部を表示すると簡単です。
時々、ディレクトリ パスが非常に長くなることがあります。
例えば
/projects/clientserver/trunk/src/client/client.c
ステータスバーにこのように、最後の 2 つのディレクトリだけを表示します。
/src/client/client.c
ご提案をいただければ幸いです。
ベストアンサー1
あなたが求めているのは、バッファ名を変更することです。バッファの名前の付け方は、ユニークにする一意のバッファ名を作成する方法がいくつかあります。最も明白な選択肢は「forward」です。これはまさにあなたが求めているもの、つまりバッファ名の前にパスの一部をプレフィックスとして付加するものです。
ただし、これには潜在的に望ましくない副作用があります。通常、バッファ名は接尾辞を追加することで一意になります。バッファを切り替えるために 'cx b' を実行する場合、「foo」と入力し、「foo」と「foo<1>」の両方がある場合は、共通の接頭辞が表示され、接尾辞を入力することができます。したがって、「cx b foo」を使用すると、すべての「foo」バッファのリストが表示される補完が可能になります。
uniqueify を 'forward' モードで使用すると、バッファ名は "bar/foo" や "baz/foo" という形式になります。これで、'cx b foo' では foo バッファに移動できず、補完を行って foo バッファのリストを取得できなくなります。各バッファ名に追加されるプレフィックスを覚えておく必要があります。
私のアドバイスは、ディレクトリ パスをサフィックスとして使用する uniqify の「リバース」モードを使用することです。これは、少し直感的ではないかもしれませんが、実際には使いやすいです。これで、「foo\bar」や「foo\baz」のようなバッファーが作成され、再び「cx b foo」を実行してファイル名が「foo」のすべてのバッファーのリストを取得できるという利点が得られます。
そこで、これを .emacs ファイルに追加して、動作が気に入るかどうかを確認してください。
(require 'uniquify)
(setq uniquify-buffer-name-style 'reverse)