在 vimrc 中设置一个带空格的 Pathvariable

Set a Pathvariable in vimrc with whitespace

我尝试设置我的 Vim 以使用 omnicppcomplete。

我是按照c++ code completion的搭建一步步安装的。首先,我总是得到错误 "Omni-completion (^0^N^P) Pattern not found"。很难弄清楚,但现在我知道为什么它不起作用。 这是因为我的 vimrc

中的以下行

"set tags+=C:\Program\ Files\ (x86)\Vim\vim74\tags\cpp"

Vim 无法处理路径中的空格,但我不知道如何让它工作,除了将标记文件复制到另一个目录(我尝试过并且成功了)。 我尝试了这些选项但没有任何效果:

我如何编写路径以便 omnicppcomplete 可以使用标签?

参见:help option-backslash。使用 :set 命令时,需要转义每个反斜杠,and 每个 space 字符,因此需要 three 个反斜杠来用 spaces 设置路径! IE。 set tags+=C:\Program\\ Files\\ (x86)\Vim\vim74\tags\cpp

有时更好的方法是使用 :let 命令,这样您就可以使用单引号字符串并且不需要转义那么多。例如,:let &tags.=',C:\Program\ Files\ (x86)\Vim\vim74\tags\cpp'

试试这个:

let &tags .= ',C:\Program\ Files\ (x86)\Vim\vim74\tags\cpp'

选项 opt 也可以作为变量 &opt 访问,可以用 let 操作,可以在表达式中使用,等等。与 set 不同,let 的语法几乎是正常的。

此外,tags 中的路径必须用逗号分隔。

我遇到了同样的问题。尝试只在路径中使用 /,并像这样 '\ ' 转义空格。 例如,我在我的 vimrc 中添加了这一行:

set rtp=C:/Program\ Files\ (x86)/Vim/vim74/vim.exe

如果你命令 :echo &rtp 你会看到:

C:/Program Files (x86)/Vim/vim74/vim.exe

注意空格前没有\