Hack #64: 256色ターミナルでVimを使用する
Posted at 2009/08/29ツイート
ターミナル上のVimはGVimよりも機能が制限される上に、動作が重くて使いにくいものです。しかしリモートログインでVimを使用している、screenと連携できる、シェル呼び出しが使いやすいなどの理由でGVimを使っていない人も数多くいると思います。ここではターミナルのVimを使いやすくするために、Vimを256色ターミナルに対応させる方法を解説します。
ターミナル上のVimの色数制限
GVimは24ビットカラーでハイライトすることができるので画面が美しいのですが、ターミナル上のVimは何も設定しないと16色しか扱えないので見劣りします。これはターミナルが従来16色しかサポートしていなかったためです。しかし最近ではGNOME TerminalやKonsole、Putty、TeraTermを筆頭として、256色扱えるターミナルが登場しています。その他のターミナルでも、パッチを当てると256色に対応できるものもあります。残念ながらWindowsのターミナルは対応していません。
Vimに追加する設定
Vimへの設定は簡単で、set t_Co=256
を追加するだけです。ただし、colorscheme
コマンドを実行する前に設定する必要があります。
GNU Screenを併用している場合
GNU Screen上でVimを256色対応させたい場合、少しややこしくなります。.screenrcに以下のような設定を追加しなければなりません。さらにGNU Screenが256色対応でコンパイルされている必要もあります。Ubuntu 9.04などでは標準配布のscreenをインストールすれば大丈夫ですが、ディストリビューションで配布されているscreenが256色対応でコンパイルされていない場合、自分でコンパイル・インストールしなければなりません。
attrcolor b ".I"
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
defbce on
Macだと上記の設定ではうまく動作しないので、次のように設定します。
term xterm-256color
termcapinfo xterm-256color 'is=^[r^[mJ^[H^[?7h^[?1;4;6l'
Macの場合、screenの256色対応のためにコンパイルする必要がありますが、パッチを当てないとエラーになるので、かなりややこしいです。次のサイトを参考にすると良いでしょう。
ターミナルやscreenが256色に対応できるようになったかどうかは、256colors2.plを実行すると楽に確認できます。
256色対応のColorSchemeを手に入れる
256色対応の設定をしたとしても、VimのColorSchemeが16色だったら今までと何ら表示が変わりません。これでは悲しいので、www.vim.orgから256色対応のColorSchemeファイルを手に入れましょう。しかし、いちいちColorSchemeを検索するのは面倒です。そのような場合、guicolorschemeやCSApprox.vimといったGVim用のColorSchemeを256色に変換してくれるプラグインを併用すると便利です。CSApprox.vimは+GUIの環境でしか動きませんが、実際に適用されたハイライト情報を解析するので、guicolorschemeより断然美しいです。
guicolorscheme.vimの使い方
使い方は簡単で、:colorscheme {color_name}
の代わりに:GuiColorScheme {color_name}
を使うだけです。ただし、ColorSchemeによっては動かないこともあります。
CSApprox.vimの使い方
こちらはさらに簡単で、普通に:colorscheme {color_name}
を使うだけです。autocmdでフックをかけているので、ColorSchemeが自動的に変換され、Vimに適用されます。
もどる
blog comments powered by Disqus