SourceForge.JP: Open Source Software

LoginCreate AccountAdd BookmarkHelp

OpenSource Downloads

(7,965) Cabos
(3,068) 7-Zip
(2,483) Tera Term
(2,009) CrystalDiskInfo
(1,669) HandBrake Japanese Language Version
(1,252) CrystalDiskMark
(921) ffdshow
(669) Tween
(667) Boookends
10  (569) Amateras
11  (563) ギコナビ
12  (502) MergeDoc
13  (436) VirtualDubMod-jp
14  (422) えこでこツール
15  (375) SMPlayer
More >>

最近ブックマークされた記事

Vimのステータスラインをより有効に活用する設定法

2007年11月06日 10:50 1 2
  • スラッシュドットにタレコむ
  • あとで読む
 Vimエディタのウィンドウ下部には、コマンドラインバッファ(コマンドの入力部)とステータスラインという2種類の役割を果たす行が設けられている。このうちデフォルト設定下のVimでステータスラインに表示される情報は単純すぎて大した役には立たないが、このステータスラインの表示については、簡単な設定をいくつか施すことでより有効に利用することができる。

 本稿は最近出版された『Hacking Vim』からの抜粋である。

 デフォルトのステータスラインに示されるのは、右側に現在のカーソル位置(行番号と列番号)、左側に編集中のファイル名(開いている場合)という情報だけであり、Vimコマンドを実行する場合は、このステータスラインの代わりにコマンドバッファが表示される。また何らかのメッセージを表示させるタイプのコマンドを実行すると、その結果はステータスラインの右側に出力されるようになっている。

 ごく簡単なファイル編集を手早く済ませるだけという用途であれば、このデフォルトのステータスラインのままでも特に不自由はしないはずだ。そうではなく、Vimを常用して様々なファイルフォーマットを扱うというユーザであれば、ステータスラインにはもう少し有用な情報を表示してもらいたいところであろう。

 ステータスラインの表示フォーマットは、下記のコマンドで指定できる。

:set statusline format 

 このformatには、ステータスラインの表示フォーマットをprintfの引数と同様の文字列で指定すればいい。

 これは「:help 'statusline'」と入力してVimのヘルプシステムを呼び出すと分かることだが、実のところステータスラインには様々な情報を表示できるのである。そのうち、自分が行う作業にとって有用だと思うものを選べばいい。

 私の場合、ステータスラインには次の情報を表示させるようにしている。

  • 編集中のファイル名
  • 編集中のファイルフォーマット(DOS、Unix)
  • Vimが認識している現在のファイルタイプ
  • カーソル位置にあるキャラクタのASCIIおよび16進値
  • ドキュメント中の位置を示す行および列番号
  • ファイルの長さ(行数)

 上記の情報をすべて一覧させるコマンドは次のような指定となるが、これによりステータスラインは真に役立つインフォメーションバーに変化してくれる。

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]

 なおこの設定では、個々の情報を区別しやすくするため各項目を“[ ]”で囲むようにしているが、これは視認性を上げるためだけのものなので不要だと思う場合は省略してもいい。

 ところが上記のコマンドを実行しただけでは、ステータスラインはデフォルト設定のまま何も変化してくれない。この原因は、そもそもデフォルトのVimでは本当のステータスラインは表示されないようになっているためで、通常ステータスラインだと思われているものの正体は、コマンドバッファに若干の付帯情報が表示されているだけなのである。本物のステータスラインをVimに表示させるには、下記の設定を自分の.vimrcファイルに追加しなければならない。このコマンドは、エディタウィンドウの末尾から2行目にステータスラインを常時表示させるための指定である。

:set laststatus=2 

 この設定変更に伴いエディタウィンドウの最終行には、コマンドバッファ専用の表示領域が追加されるはずである。これは同時にステータスライン専用の表示行を設けることにもなるが、そこを見ることで編集中のファイルに関する有用な各種の情報が随時確認できるようになる。ただしこうしたステータスライン専用行の追加は、その分だけ画面上の編集領域を減らすことにもなってしまう。この表示を現在の編集セッションにおいてのみ削除したければ、下記のコマンドをVim上で直接実行すればいい。

:set laststatus=0
Kim-Schulz(2007年11月2日(金))
2008年01月06日 17:07 更新