Hack #188: 見た目を気軽に変更する
Posted at 2010/12/12ツイート

VimにはColorSchemeという概念があり、端末で利用可能な色のうちどの色をどの構文要素に割り当てるかのセットを取り扱うことができます。さらにGUIのVim実装であるgVimやMacVimでは、端末の制約を超えて256もの膨大な数の色を駆使することができ、編集対象のテキストの配色を大幅に変更することができます。
:colorscheme dessert
人気のあるcolorschemeはdessert, mrkn256, zenburnなどでしょう。筆者のイチオシはluciusです。
また、GUI版に限定されるが、Vimが使用するフォントを動的に変更することも可能です。
:set guifont=Inconsolata:h20
“GUIの9割はフォント”
T. Ujihisa 2006
という格言もあるように、フォントが生産性に与える影響力は無視できないものです。筆者は、Javaなど低レイヤ言語を取り扱うときは、その冗長な表現に耐えうるよう、フォントサイズを小さくし、なおかつ小さいサイズでもよく読めるフォントに変更します。逆にRubyなど簡潔な言語を取り扱うときは、筆記体なども含めてダイナミックに様々なフォントを試しています。
問題
:colorscheme
コマンドは引数の補完ができません。そのため、ColorSchemeを変更する以前から、あなたがどのようなColorSchemeを持っているかすべて把握している必要があります。
'guifont'
の指定に関しても同様で、フォントを変更する以前から、あなたがどのようなフォントを持っているか把握すること、またその正式名を完全に暗記することは非常に困難です。さらにつけくわえるならば、フォント名に空白を含んでいるときに空白文字をエスケープする必要があり、かなり煩雑です。
解決
unite-colorschemeとunite-fontを使用します。
unite.vimをまだインストールしていない場合、事前にこちらをインストールしておきましょう。
インストール後、以下のコマンドを実行することで、容易にColorSchemeを変更できるようになります。
:Unite colorscheme
同様に、以下のコマンドでFontを変更できるようになります。
:Unite font
これらは頻繁に使用されるので、なにかしらのキーマッピングを与えておくとよいでしょう。たとえばsc
というキーに割り当てたい場合、~/.vimrc
に以下を記述しましょう。
let g:unite_enable_start_insert = 1
let g:unite_enable_split_vertically = 1
if globpath(&rtp, 'plugin/unite.vim') != ''
nnoremap sc :<C-u>Unite colorscheme font<Cr>
endif
順を追って説明します。
g:unite_enable_start_insert
: Uniteを挿入モードで開始しますg:unite_enable_split_vertically
: Uniteを縦分割で開始しますif
の行: unite.vimがインストールされているときのみ以下のキーマッピングを行うnnoremap
の行:sc
で:Unite colorscheme font
を実行するようにします。このように、:Unite
コマンドには複数のsourceを指定することができます
参考
neocomplcacheはcolorscheme補完が可能です。また、tabpagecolorschemeというさらに便利なプラギンも存在します。これについてはのちのち説明します。
ujihisaもどる
blog comments powered by Disqus