当我输入类似的终端时
mvim ./path/to/my/project
Run Code Online (Sandbox Code Playgroud)
Vim打开这个项目目录,在我的NERDTree中我可以看到文件,但是当我尝试运行一些CLI命令时,就像
:!touch some/file/in/my/project
Run Code Online (Sandbox Code Playgroud)
它发生了,我当前的路径是我的用户主目录
所以如果我想在我的项目目录中创建文件,我必须输入完整的路径
:!touch ./path/to/my/project/some/file/in/my/project/name
Run Code Online (Sandbox Code Playgroud)
在vim启动后是否有可能以某种方式自动更改dir?
对于您的特定用例,您可以尝试在 VimEnter 事件上连接一些东西。例如,尝试将其放入您的 vimrc 中:
autocmd VimEnter * cd %:p:h
Run Code Online (Sandbox Code Playgroud)
然后,当你调用Vim时,$ mvim path/to/my/project/some/file
Vim会自动:cd
进入到该目录file
中。
为了使其能够与目录一起使用,您必须向自动命令添加一些逻辑,例如
autocmd VimEnter * exe 'cd '.(isdirectory(expand('%:p')) ? '%:p' : '%:p:h')
Run Code Online (Sandbox Code Playgroud)
您可以自己改进这一点!
我在我的 vimrc 中使用它:
" Use %% on the command line to expand to the path of the current file
cabbr <expr> %% expand('%:p:h')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1728 次 |
最近记录: |