我尝试设置我的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可以使用标签?
答案 0 :(得分:2)
请参阅:help option-backslash
。使用:set命令时,您需要转义每个空格字符的每个反斜杠,和,因此您需要三个反斜杠来设置带空格的路径!即set tags+=C:\\Program\\\ Files\\\ (x86)\\Vim\\vim74\\tags\\cpp
有时候更好的方法是使用:let
命令,这样你就可以使用单引号字符串而不需要转义。例如,:let &tags.=',C:\Program\ Files\ (x86)\Vim\vim74\tags\cpp'
答案 1 :(得分:1)
试试这个:
let &tags .= ',C:\Program\ Files\ (x86)\Vim\vim74\tags\cpp'
选项opt
也可以作为变量&opt
访问,可以使用let
进行操作,可以在表达式中使用,等等。与set
不同,let
具有几乎合理的语法。
此外,tags
中的路径必须用逗号分隔。
答案 2 :(得分:0)
我遇到了同样的问题。尝试在路径中使用/
,并像这样'\'转义空格。
例如,我在我的vimrc中添加了这一行:
set rtp=C:/Program\ Files\ (x86)/Vim/vim74/vim.exe
如果你要命令:echo &rtp
,你可以看到:
C:/Program Files (x86)/Vim/vim74/vim.exe
请注意,在空格之前没有\
。