cd后的vim命令

cd后的vim命令,vim,macvim,Vim,Macvim,我想在从vim中cd’ing到新目录后自动执行一个命令。例如,我打开gvim并运行: :cd ~/src/player 此时,我希望vim自动为该目录中的文件提供源代码 这可能吗?您可以在.vimrc中为其编写一个别名: command -nargs=1 Mycd call MyCd(<args>) function MyCd(path) cd a:path e somefile.ext endfunction 不完全是你想要的,但是 :au BufEnter,BufFi

我想在从vim中cd’ing到新目录后自动执行一个命令。例如,我打开gvim并运行:

:cd ~/src/player
此时,我希望vim自动为该目录中的文件提供源代码


这可能吗?

您可以在.vimrc中为其编写一个别名:

command -nargs=1 Mycd call MyCd(<args>)
function MyCd(path)
  cd a:path
  e somefile.ext
endfunction

不完全是你想要的,但是

:au BufEnter,BufFilePost * lc <afile>:h , *
这样,每当您打开新文件时(例如,使用
:e~/src/player/README
),您都会自动将目录更改为
~/src/player
。如果您打开多个缓冲区,在它们之间更改时,您将被更改为包含本地缓冲区的目录,如果您打开多个选项卡,它们将保留在各自的目录中。

这项操作的最终目标是什么?是否要对该目录下的文件进行特定设置?如果Vim的工作目录是
~/src/player
,即使您没有编辑该目录下的文件,您也需要特定的设置吗?如果你描述了你想要发生的事情,而不是你认为它应该如何发生,那么提供一个合适的答案就容易多了。我以前用过这种方法,并且喜欢它。然而,我还是回到了我所做的事情的顶层目录。现在有很多事情我已经习惯了,并且已经设置了从顶级目录(定制makeprg、grep等)开始工作,因此我真的不想经常更改目录。不过还是要谢谢你。我希望能有一些像BufRead和friends这样的自动命令事件,但看起来目前还没有类似的事情。这样就行了!谢谢 :au BufEnter,BufFilePost * lc <afile>:h