Vimのset
Vimではオプションを設定する際、set
(se
でもOK)というコマンドを使います。
Booleanオプション
spell
の様なBooleanの値を持つオプションは切り替えのみ出来、
:set spell
とすればスペルチェックが有効になり、
:set nospell
と、no
をつけたオプションをsetするとスペルチェックが無効になります。
:set invspell
または
:set spell!
と、頭にinv
を付けるか最後に!
を付けると現在と逆の状態になります。
各オプションは
:set spell?
と最後に?
を加えてやると、現在セットされている物が確認されます。
(spell
or nospell
)
:set spell&
と最後に&
を付ければデフォルトの設定になります。
Number/Stringオプション
VimのオプションではBoolean以外にNumberとStringのオプションもあって、 これらのオプションは
:set encoding=utf-8
の様に=
でセットします。
=
の代わりに:
でもOK。
Stringの場合でも"
でクォートしたりしません。
これらのオプションに関しては、単に
:set encoding
とすると現在の値が見れます。?
を最後に付けてもBoolean同様見れます。
また&
を最後に付ければデフォルト設定になります。
allで全設定確認
また、
:set all
とすると全てのオプションが表示されます。このall
に
:set all&
とすれば全てデフォルトに。
setlocal/setglobal
set
は現在作業中のVim全体の設定を変更しますが、
setlocal
(setl
)を使うと現在のバッファだけを変更することが出来ます。
また、setglobal
(setg
)とすると、
現在のバッファの状態は変更せずにglobal valueだけ変更します。
global valueはset
を使った時にも変更されますが、
setlocal
では変更されません。
:setlocal spell<
の様に、setlocal
の際にオプション+<
の様な形を書くとgloval valueの
値を取ってきて設定します。
:set spell<
とすると同様にgloval valueの値を取ってきて全体の設定とします。
setの=
の書き方
以下が今回ちょっと躓いたところですが、
set
を使った値入れの場合、=
の左側には空白があっても良いんですが、
右側は空白を空けられません。
:set encoding =utf-8
はOK。
:set encoding= utf-8
はダメ。
:set encoding = utf-8
も勿論ダメ。
ちょっと整理している時に全部上の様に空白を空けて行ったらエラーが出た、と。
Helpを見てみればちゃんと書いてあります。
:se[t] {option}={value} or
:se[t] {option}:{value}
Set string or number option to {value}.
For numeric options the value can be given in decimal,
hex (preceded with 0x) or octal (preceded with '0').
The old value can be inserted by typing 'wildchar' (by
default this is a <Tab> or CTRL-E if 'compatible' is
set). See cmdline-completion.
White space between {option} and '=' is allowed and
will be ignored. White space between '=' and {value}
is not allowed.
See option-backslash for using white space and
backslashes in {value}.
Vim, :h set
Vimではオプションに入れる物がStringの場合でも
"
とかでクォートしないので、右側に空白を入れてしまうとそれ自体も
一部と認識されてしまうからだと思います。
ちなみに似たような値を入れるためのlet
は
:let {var-name} = {expr1} :let E18
Set internal variable {var-name} to the result of the
expression {expr1}. The variable will get the type
from the {expr}. If {var-name} didn't exist yet, it
is created.
Vim, :h let
こんな感じで説明にも既に空白があるように=
の周りに
空白を入れても大丈夫です。
こちらは文字列を入れる時にはクォートするので。
Vimperatorでも
ついでに、Vimperatorでも同様にset
を使ってオプションを設定できますが、
こちらも本家Vim同様右側の空白は禁止されています。
(実の所Vimの方ではなくてVimperatorをいろいろいじってて気づいた物です。)