Vim 使用字符串连接设置选项
Vim Set Option With String Concatenation
我喜欢在 .vimrc
中执行以下操作:
if has('nvim')
let g:base_data_folder = $HOME . '/.nvim'
else
let g:base_data_folder = $HOME . '/.vim'
endif
set backupdir = g:base_data_folder . '/backup'
不幸的是,最后一行不起作用,我在启动时遇到错误 Vim / NeoVim.
有什么想法可以让它发挥作用吗?
设置使用特殊语法。您为它们设置的值并不是真正的 expressions。这为他们提供了不需要引号或转义的好处,但在使用编程表达式时他们的灵活性较低。
另一种 Vim 语法常见的避免这种情况的方法是 execute
命令(:help :execute
):
exe 'set backupdir = ' . g:base_data_folder . '/backup'
也就是说,对于设置,有专门的语法(:help :let-&
),我建议改为:
let &backupdir = g:base_data_folder . '/backup'
基本上,这允许将设置视为 "variables" 之类的。我建议您阅读所有关于 "let" 的文档,以更好地理解它是如何工作的,对于其他特殊情况也是如此。
我喜欢在 .vimrc
中执行以下操作:
if has('nvim')
let g:base_data_folder = $HOME . '/.nvim'
else
let g:base_data_folder = $HOME . '/.vim'
endif
set backupdir = g:base_data_folder . '/backup'
不幸的是,最后一行不起作用,我在启动时遇到错误 Vim / NeoVim.
有什么想法可以让它发挥作用吗?
设置使用特殊语法。您为它们设置的值并不是真正的 expressions。这为他们提供了不需要引号或转义的好处,但在使用编程表达式时他们的灵活性较低。
另一种 Vim 语法常见的避免这种情况的方法是 execute
命令(:help :execute
):
exe 'set backupdir = ' . g:base_data_folder . '/backup'
也就是说,对于设置,有专门的语法(:help :let-&
),我建议改为:
let &backupdir = g:base_data_folder . '/backup'
基本上,这允许将设置视为 "variables" 之类的。我建议您阅读所有关于 "let" 的文档,以更好地理解它是如何工作的,对于其他特殊情况也是如此。