2017-10-20 211 views
2

我一种新的vim的,而当我通常在vim编辑的事情,我去类似:Vim的设置工作目录FTO第一默认打开的目录/文件

vim . 

vim /path/to/some/project 

然后按Ctrl-P到我需要编辑的文件。这种方法的问题是像NERDTree或FZF这样的插件明白工作目录是我从vim开始的,而不是我给它作为参数的目录。例如:

/some/path$ vim /other/path 

VIM会明白,/some/path是工作目录不/other/path。正因为如此,我每次启动vim都必须手动执行:cd :%p:%h。有没有办法让vim自动:cd到第一个打开的目录?

+0

的思考。将'CDPATH'设置为项目路径。例如'export CDPAH =“.:〜/ projects”'。这可以让你用'cd'(和Vim里面的':cd')轻松切换项目 –

回答

3

我从来没有想过这件事,但在阅读你的问题时我认为,这可能是很好的......或者总是可怕的。无论如何,有趣的问题,我试了30秒,并已经讨厌它。原因是,您的项目文件夹几乎不会直接包含要编辑的代码文件。

它应该是这样的:

autocmd VimEnter * silent! cd %:p:h 
+0

感谢您的回答:)。我使用Ctrl + P从那里到达我想要的位置。我发现它比输入文件的整个路径更快。就像旁注一样,vim有没有办法让vim检测参数是否是一个文件,你不希望上面的命令触发,但是当它是一个目录时呢? – DarthRevan13

+0

确定你想要。因为'vim/folder/file'上的':echo expand(“%:p:h”)给出了与'vim/folder'相同的结果,':h'标志不会从路径中删除文件夹。所以我总是会打开一个文件夹,因为我会去我的项目文件夹,并使用Ctrl + P或fzf或任何从那里。但是,如果我必须输入路径,我可以使用'cd',我更喜欢它,因为我将在关闭vim之后留在项目文件夹中(并非我曾经关闭过vim)。如果我想打开我的子文件夹中的特定文件,它不会与我的目录混淆。 –