Vimを使い終わったらGNU Screenのステータスラインのタイトルを「** free **」に
この前のDeveloper Enviroments Conferenceでid:secondlifeさんが発表された資料を見て、
- キーリピート加速ツール「kbdacc」
- GNU Screenのステータスラインのタイトルを、VimのBufEnterフックで現在編集しているバッファ名に
のtipsを普段使うようになりました。
ちなみに、WindowsでLinuxの開発マシンにリモートログインして作業する時は
を主に使っています。
特に2つ目のkbdaccは本当に便利です。PuTTYのターミナル画面の描画処理の軽さに加えて、kbdaccでキーリピートを加速させることで、Vim利用時のhjklキーでのカーソル移動が非常に軽快になります。
あとGNU Screenには画面分割を縦に分割するパッチを当てています。これもなかなか便利です。ただ、画面を縦分割すると、なぜかターミナル画面の描画処理が少し重くなるところが△です。
さて、本題です。
id:secondlifeさんの紹介であった、Screenのステータスラインのタイトルを、VimのBufEnterフックで現在編集しているバッファ名にするtipは確かに便利です。しかし、このtipをこのまま使うと、vimを終了してもGNU Screenのステータスラインのタイトルに、バッファ名が残ったままになる問題があります。
そこで、以下のようにvimスクリプトを改良しました。「^[」の所は「Ctrl + v + [」で入力します。
% vim ~/.vimrc [...] function SetScreenTabName(name) let arg = '^[k' . a:name . '^[\\' silent! exe '!echo -n "' . arg . "\"" endfunction if &term =~ "screen" autocmd VimLeave * call SetScreenTabName('** free **') autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | call SetScreenTabName("%") | endif endif
これを.vimrcに書いておくと、vimを使い終わったら、GNU Screenのステータスラインのタイトルが「** free **」に変化します。これで使用していないスクリーンが一目でわかるようになります。
「** free **」という文字列は自由に変更できます。SetScreenTabName関数のパラメータを好きな文字列に変更するだけでOKです。