読者です 読者をやめる 読者になる 読者になる

DRYな備忘録

Don't Repeat Yourself.

vimのcolorschemeで勝手にドキドキするvimrc

わけあってリモートサーバでvimでがんがんコードの編集する仕事をしており、あと単調なので、なんかドキドキしたいと思い、1時間ごとにcolorschemeを勝手に変えるvimrcの断片を書いたのでメモ

追記 2017/05/15

id:foooomioさんありがとうございます!助かりました!

function! s:ColorSchemeLottery()
    let schemes = ["koehler", "zellner", "peachpuff", "slate", "murphy", "delek"]
    let l = len(schemes)
    let i = strftime("%H") % l
    return schemes[i]
endfunction
execute 'colorscheme ' . s:ColorSchemeLottery()

これでリストだけ更新すればよくなった。

以下原文、読まなくてよい。

これ動かない

なんで…

function! s:ColorSchemeLottery()
    let schemes = ["koehler", "zellner", "peachpuff", "slate", "murphy", "delek"]
    let l = len(schemes)
    let i = strftime("%H") % l
    return schemes[i]
endfunction

colorscheme s:ColorSchemeLottery()

" E185: Cannot find color scheme 's:ColorSchemeLottery()'
" と言われる。関数呼び出しが呼び出しと戻り値ではなく引数として食わせる文字列として評価されている

とりあえずこうした

function! ColorSchemeLottery()
    let h = strftime("%H") % 6
    if h == 0
        colorscheme koehler
    elseif h == 1
        colorscheme zellner
    elseif h == 2
        colorscheme peachpuff
    elseif h == 3
        colorscheme slate
    elseif h == 4
        colorscheme murphy
    else
        colorscheme delek
    endif
endfunction

call ColorSchemeLottery()

Vimテクニックバイブル ?作業効率をカイゼンする150の技

Vimテクニックバイブル ?作業効率をカイゼンする150の技