在 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 无法处理路径中的空格,但我不知道如何让它工作,除了将标记文件复制到另一个目录(我尝试过并且成功了)。
我尝试了这些选项但没有任何效果:
- C:\程序\\文件\\ (x86)\Vim\vim74\tags\cpp
- C:/程序\文件\(x86)/Vim/vim74/tags/cpp
- C:\程序\< Space >文件< Space >(x86)\Vim\vim74\tags\cpp
- C:\Program\sFiles\s(x86)\Vim\vim74\tags\cpp
- C:\Program\\sFiles\\s(x86)\Vim\vim74\tags\cpp
- C:\Program/\sFiles/\s(x86)\Vim\vim74\tags\cpp
我如何编写路径以便 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
注意空格前没有\
我尝试设置我的 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:\程序\\文件\\ (x86)\Vim\vim74\tags\cpp
- C:/程序\文件\(x86)/Vim/vim74/tags/cpp
- C:\程序\< Space >文件< Space >(x86)\Vim\vim74\tags\cpp
- C:\Program\sFiles\s(x86)\Vim\vim74\tags\cpp
- C:\Program\\sFiles\\s(x86)\Vim\vim74\tags\cpp
- C:\Program/\sFiles/\s(x86)\Vim\vim74\tags\cpp
我如何编写路径以便 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
注意空格前没有\