:help 'path'
):'path'字符串(Unix上的默认值:“
.,/usr/include,,
”)-相对于目录进行搜索的当前文件,请使用:
:set path=.
-要在当前目录中进行搜索,请在两个逗号之间使用空字符串:
:set path=,,
.和
,,
在“路径”选项中没有区别。它们都表示当前目录。我不明白为什么我们需要将
.
和,,
都放在path选项中。 :set path=.
和:set path=,,
有什么区别?#1 楼
“当前目录”和“当前文件的目录”是两个不同的东西。默认情况下,“当前目录”是启动Vim的目录。您问Vim
:pwd
是什么,并用:cd
或:lcd
或通过设置autochdir
选项来更改它。如果您从不更改它,则它将保持不变,直到关闭当前会话为止。“当前文件的目录”正是它声称的样子。如果当前文件在“当前目录”中,则两者具有相同的值。如果当前文件在另一个目录中,则它们具有不同的值。
为了使
path
有用,必须使用.
和,,
来解决这两种情况。示例:
$ cd /foo/bar/baz
$ vim filename
:pwd --> /foo/bar/baz
:echo expand("%:p:h") --> /foo/bar/baz
:e ../file
:pwd --> /foo/bar/baz
:echo expand("%:p:h") --> /foo/bar
#2 楼
当前文件的目录和当前目录是两个完全不同的东西(有时可能具有相同的值)。考虑:
cd /tmp; vim /etc/bash.bashrc
除非设置了
autochdir
(或类似的设置),否则当前目录为/tmp
,但当前文件的目录为/etc
。