vim-users.jp

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-colorschemeunite-fontを使用します。

unite.vimをまだインストールしていない場合、事前にこちらをインストールしておきましょう。

インストール後、以下のコマンドを実行することで、容易にColorSchemeを変更できるようになります。

:Unite colorscheme

colorscheme

同様に、以下のコマンドでFontを変更できるようになります。

:Unite font

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