2012-03-17 3 views
3

問題は、ファイルのパスがかなり長くなったときに保存するたびに、ミニバッファの高さが大きくなり、基本的にすぐに縮小することです。あまりにも頻繁に起こるので、迷惑の種類。保存時にミニバッファに短い(フルではない)ファイルパスを表示するには?

私は「書いた:...」メッセージを短縮(basename?)するか、デフォルトの(開始)ミニバッファの高さを2行にします。あるいは、ミニバッファのみで切り捨てを有効にすることもできますが、それは本当に良いことではありません。

方法はありますか?

答えて

4

編集:私はちょうどresize-mini-windowsmax-mini-window-heightと違って、私は実際にこの1つは私が望むように動作させることができ、message-truncate-lines変数に気づき、:

(defadvice save-buffer (around my-save-mini-window-size) 
    "Don't increase the size of the echo area if the path of the file being saved is too long to show on one line." 
    (let ((message-truncate-lines t)) 
    ad-do-it)) 
(ad-activate 'save-buffer) 

オリジナルの答えは次の(と私は興味があります誰もがその上で手の込んだことができれば同様のアドバイスを持つ他の変数を設定する理由を知るためには、所望の効果を持っていない?)

私は(メッセージ自体をいじりはかなり毛深いことになるだろうと思いますいずれにせよ悪い考え)。 write-region(fileio.c内)の引数はIf VISIT is neither t nor nil nor a string, that means do not display the "Wrote file" messageだが、私はそのことが賢明であると強く疑う。

私は、メッセージ長にかかわらずミニバッファのサイズを変更しないようにするのが唯一の方法だと思います。以下は、ちょうどファイルを保存するよりも状況のためにこれを行います。

(setq resize-mini-windows nil) 

私の通常のアプローチは、ここで我々は(私はsave-bufferを考えていた)に興味を持っている機能のためのアドバイスの周りのいくつかを書くことだろう、と一時的にその値を設定しますが、何らかの理由で目的の効果が得られていません。

同様に、before-save-hookafter-save-hookを使用して設定および復元します。

変数はmax-mini-window-heightですが、一時的に設定しようとすると同じ問題が発生する可能性があります。

+0

ありがとうございます!少なくとも一時的な解決策として。 max-mini-window-heightに関しては、最大高さを制御するだけであり、悲しいことにmin-heightには対応していません。数日後に受け入れてください。 – gorlum0

+0

より信頼性の高いソリューションについては、編集済みの回答を参照してください。 – phils

+0

よかった、さらに良い、クール!まあ、私は幸せです、あなたのために非常にあなたに感謝します。)そこに少し奇妙なことは、それに対処するために、より明白で直接的ではありません。 – gorlum0

関連する問題