【一人 vimrc advent calendar 2017】:set でオプションの値を設定する方法いろいろ【17日目】
一人 vimrc advent calendar 2017 17日目の記事になります。
今回は :set
にまつわるお話。
:set
でオプションの値を設定する方法いろいろ
さて、通常 Vim のオプションは :set
コマンドを使用して任意のオプションに対して設定を行います。
" オプションに対して値を設定したり set history=3000 " オプションを有効にしたり set incsearch " no を付けることでオプションを無効にしたり set noexpandtab
また、以下のようにオプションを扱うこともできます。
" ? でオプションの値を表示する set history? " 末尾に ! を付けることで設定をトグルする set number! " inv{option} でもOK " set invnumber " オプションを既定値に戻す set undolevels& " 全てのオプションを既定値にする set all& " ターミナルオプション以外の全てのオプションを表示する set all
上記のような設定はコマンドラインから設定して使うことが多いと思います。
ちなみに =
の横にはスペースを入れることはできません。
" 以下の設定は無効 set history = 1000
vimrc
を使い始めた頃は結構ハマりました。
変数の値をオプションに設定する
次のようにオプションに対して任意の変数の値を設定することはできません。
let s:backupdir = "~.cache/vimbackup" " Error set backupdir=s:backupdir
このような場合は let &{option}
とすることで任意のオプションに対して変数の値を設定することができます。
let s:backupdir = "~.cache/vimbackup" let &backupdir = s:backupdir
また、&{option}
でそのオプションの値を取得することもできます。
" 変数に代入したり let s:backupdir = &backupdir " 出力したり echo &backupdir
こんな感じで動的にオプションの値を変更したい場合などに利用することが出来ると思います。
まとめ
:set
ではオプションの値を設定する以外の使い道もある:set {option}?
はコマンドラインでオプションの値を確認する時に便利:set hoge = foo
のように=
の横にスペースを入れることはできない
このようにいろいろなオプションの設定の仕方を覚えておくと意外なところで利用できるかもしれません。