我正在尝试从vim进入我的项目的git根目录,以便我的Ctrl-P正常工作。 我经常在一些项目中工作,我不希望Ctrl-P查找git根目录,因此我设置它仅查找具有.gitignore
的最近文件夹。
在命令行中,我可以执行像cd $(git rev-parse --show-toplevel)
这样的操作,但是当我尝试使用:!cd $(git rev-parse --show-toplevel)
在vim中执行相同的操作时,它会隐藏vim并显示空白输出。 我被告知vim命令行中的!将允许我运行bash命令。 我错过了什么吗?
:!cd
不等同于:cd
。此外,Vim 不知道$(...)
,请使用system()
。更好的做法是,使用类似于:exec 'cd' fnameescape(fnamemodify(findfile('.gitignore', escape(expand('%:p:h'), ' ') . ';'), ':h'))
的方式,而不是运行git
。 - Sato Katsurafindfile
更改为finddir('.git')
,因为在这种情况下,我不想查找.gitignore
文件,而是要查找整个项目的git根目录。如果您将此作为实际答案,我会接受。 - adam-beck