Vim 变量
18 Aug 2013Variables
Vim 中可以通过 let 对变量进行赋值, 比如:
:let foo = "bar"
Options as Variables
Vim 中可以通过 set 对 options 进行设置, 比如:
:set foldlevel=24
但是我们也可以通过一个特殊的语法把 options 当做变量来操作:
:let &foldlevel=24
foldlevel 前面加上 & 就是为了告诉 Vim 我们想把 foldlevel 这个 option 当成变量, 如果没有这个 &, 我们就是在对 foldlevel 这个变量赋值.
Registers as Variables
同样的道理, 我们也可以将 registers 当成变量, 只不过这里用的不是 & 而是 @ 而已:
:let @a = "foobar"
:reg
你会发现 a 寄存器里的值已经变成了 foobar.
特殊的寄存器 =
我们可以利用这个寄存器将变量的值插入到文本中.
Insert mode:
<C-r>=VARIABLES
Normal mode:
"=VARIABLES<CR>p
将 VARIABLES 换成你自己的变量名, 可以使用上面提到的三种变量, 只是别忘了 & 和 @ (如果需要的话). 其实这里的 VARIABLES 也可以是 Vim 的函数, 比如在插入模式下:
<C-r>=expand('%:t')
就会将当前文件的文件名插入到文本中.