vim tips
setに関するtips色々。
今回は.vimrcで同じみなset。
値をセットする
いっちゃんシンプルな使い方は
" on/off しかないオプション set {option} set no{option} " 数字や文字などの値をセットする必要があるオプション set {option}={value} " '='じゃなくて':'でもいけるらしい。 set {option}:{value} " {option}と'='の間にはホワイトスペースは許され「る」 " '='と{value}の間にはホワイトスペースは許され「ない」 set {option} ={value} "正 set {option}= {value} "誤 " 値にホワイトスペースを使いたいときは'\'でエスケープする " ex) tabsに半角スペースを二つ、を指定したい。 set listchars=tab:\ \ ,trail:_,precedes:<,extends:> " '"'(ダブルクォート)は使えないので注意
exコマンドからも使えるので編集中にも値を変えられます。
よく使う例としては
" コードなどをペーストしたときインデントされないようにする :set paste " ↑を解除 :set nopaste " 改行コードをunix系のに変える。 :set fileformat=unix
などなど。
今どんな値がセットされてるか調べる
今どんな値がしていされてるか知りたい場合は
:set {option}?
の様にオプションの後に"?"をつける。
Toggle optionの場合は
" セットされている場合 :set hidden? hidden " セットされてない場合 :set hidden? nohidden
の様にセットされていない場合は"no"がつきます。
その他は
:set wildmode? wildmode=list:longest
のように"="をはさんで値がでます。
とはいえ、後者の場合
:set {option}=
まで打って、Ctrl-EとかTab*1で表示されるのであまり使わないかも。
ディフォルトの値にもどす。
vimを開き直せばいい話、なのですが、まぁめんどいですしね。
:set {option}&
の様にオプションの後ろに"&"をつければおっけーです。
viあるいはvimのディフォルトにしたい!って時は
:set {option}&vi :set {option}&vim
の様にすればいいようです。
...viディフォルトとかあんま使わない気がする。
オプションの反転
Toggle optionの値を反転させたい、時に使う。
:set {option}! :set inv{option}
らしいが使いどころがワカラン。
pasteぐらいか?
:set paste! " oとかでinsert modeにして、Shift-Insとかで貼り付ける。 :set paste!
一回打てば履歴からたどれるからキータイプ数はへるけど...。
そんな手間ではないしなぁ...。*2
すでに指定されているvalueをいじる。
具体的にはリストに付け足したり、リストの要素を消したり。
" 要素の追加(後ろに追加 :set {option}+={value} " 要素の追加(前に追加 :set {option}^={value} " 要素の削除 :set {option}-={value}
個人的に「^=」がハツミミ
具体例で言えば
" ffs(=fileformats)にunix,dos,macを指定する :set ffs=unix,dos,mac " 確認 :set ffs? fileformats=unix,dos,mac " dosを抜いてみる :set ffs-=dos :set ffs? fileformats=unix,mac " 後ろにdos追加してみる :set ffs+=dos :set ffs? fileformats=unix,mac,dos " すでに要素にある時は何もしないらしい :set ffs^=dos :set ffs? fileformats=unix,mac,dos " macを一旦削除して前に出してみる :set ffs-=mac :set ffs^=mac :set ffs? fileformats=mac,unix,dos
こんな感じ。
','は勝手に追加されます。
じつはこれリストオプションだけでなく、数字オプションにも使える
" value分だけ加算する :set {option}+={value} " value分だけ乗算する(!! :set {option}^={value} " value分だけ減算する :set {option}-={value}
乗算とか必要なのか小1時間ほど問い詰めたい気分ですが、まぁ、あるのです。
加算/減算は、まぁ、そんまんまなんでわかりやすいですね。はい。
全部のオプションに対して操作する
といっても二つだけ
" すべてのオプションの値を調べる :set all " すべてのオプションを元に戻す。 :set all&
さすがに「:set all!」は無いようです(アタリマエだ。
ということで、まだまだsetは奥が深いのですが、とりあえずここまで。
(д̣)ノシ