使用空格在vimrc中设置Pathvariable

时间:2015-03-11 14:53:39

标签: vim

我尝试设置我的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无法处理路径中的空格,但我不知道如何将其工作除了将标记文件复制到另一个目录(我尝试并且有效)。 我尝试了这些选项但没有任何效果:

  • C:\ Program \\ Files \\(x86)\ Vim \ vim74 \ tags \ cpp
  • C:/ Program \ Files \(x86)/ Vim / vim74 / tags / cpp
  • C:\程序\<空间>文件<空格>(x86)\ Vim \ vim74 \ tags \ cpp
  • C:\程序\ sFiles \ S(86)\的Vim \ vim74 \标签\ CPP
  • C:\程序\\ sFiles \\ S(86)\的Vim \ vim74 \标签\ CPP
  • C:\程序/ \ sFiles / \ S(86)\的Vim \ vim74 \标签\ CPP

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

3 个答案:

答案 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

请注意,在空格之前没有\