vim-users.jp

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を検索するのは面倒です。そのような場合、guicolorschemeCSApprox.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に適用されます。

Shougo

もどる
blog comments powered by Disqus