vim-users.jp

Hack #228: 見た目を気軽に変更する(その2) ColorRoller版

Posted at 2011/09/10
このエントリーをはてなブックマークに追加

問題

vim を長い間使用していると、お気に入りの定番カラースキームが3、4種類は決まってくるものです。

お気に入りのカラースキームを探す場合は、

  1. Color Sampler Pack をインストールする。
  2. :Unite colorscheme を駆使して片っ端から気に入るものを探す。

という流れで探すのが便利で手軽だと思います。

:Unite colorscheme によるカラースキームの変更は一つ一つ :colorscheme コマンドでカラースキームを入力する手間に比べればとても手軽です。
しかし、一度お気に入りが決まってしまうと、 もっと手早くカラースキームを切り替えたいと感じる方もいるのではないでしょうか?

問題提起が少し強引な気もしますが、筆者はお気に入りの3、4種類のカラースキームをワンキーで手早く切り替えたいと感じていました。

対処

下記のコードを .vimrc に貼り付けます。

let ColorRoller = {}
let ColorRoller.colors = [
      \ 'molokai_custom',
      \ 'tomorrow_night_custom',
      \ 'lucius_custom',
      \ 'github256_custom',
      \ 'pyte',
      \ 'newspaper',
      \ ]

function! ColorRoller.change()
  let color = get(self.colors, 0)
  " tabpagecolorscheme を使用している場合は↓の "colorscheme" を "Tcolorscheme" に変える。
  silent exe "colorscheme " . color
  redraw
  echo self.colors
endfunction

function! ColorRoller.roll()
  let item = remove(self.colors, 0)
  call insert(self.colors, item, len(self.colors))
  call self.change()
endfunction

function! ColorRoller.unroll()
  let item = remove(self.colors, -1)
  call insert(self.colors, item, 0)
  call self.change()
endfunction

nnoremap <silent><F9>   :<C-u>call ColorRoller.roll()<CR>
nnoremap <silent><S-F9> :<C-u>call ColorRoller.unroll()<CR>

解説

お気に入りのカラースキーム群をローラー( ColorRoller )に見立てて、ローラーを回す( roll )、戻す( unroll )ことで、カラースキームを切り替えます。
roll()<F9>unroll()<S-F9> (Shiftキーを押しながら <F9> )にそれぞれ割り当てています。

使い方

お気に入りのカラースキームを、 ColorRoller.colors に設定して使用します。

tabpagecolorscheme を使用している場合、 ColorRoller.change() 内のコメントを参考に、
silent exe "colorscheme " . color の行を silent exe "Tcolorscheme " . color に変更して使用して下さい。

最後に

これまでに紹介したカラースキームに関する下記の記事も合わせて参考にして下さい。

t9md

もどる
blog comments powered by Disqus