【问题标题】:vim command after cdcd 后的 vim 命令
【发布时间】:2010-01-22 05:20:46
【问题描述】:

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

:cd ~/src/player

此时我希望 vim 自动获取该目录中的文件。

这可能吗?

【问题讨论】:

  • 这个的最终目标是什么?您想要对该目录下的文件进行特定设置吗?如果 Vim 的工作目录是 ~/src/player,即使您没有编辑该目录下的文件,您是否需要特定的设置?如果你描述你想要发生的事情而不是你认为它应该如何发生,那么提供正确的答案会更容易。

标签: vim macvim


【解决方案1】:

你可以在你的 .vimrc 中为它写一个别名:

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

然后输入:

:Mycd /some/path/

【讨论】:

  • 我希望有像 BufRead 和朋友这样的自动命令事件,但目前似乎没有这样的事件。所以这会做!谢谢。
【解决方案2】:

不完全是你想要的,但是

:au BufEnter,BufFilePost * lc <afile>:h

这样当你打开一个新文件(例如:e ~/src/player/README)时,你会自动将目录更改为~/src/player。如果您打开多个缓冲区,您将在它们之间切换时切换到包含本地缓冲区的目录,如果您打开多个选项卡,它们将保留在各自的目录中。

【讨论】:

  • 我以前用过这种方法,很喜欢。但是,我又回到了我所做的顶级目录中。现在有很多事情我已经习惯并且已经设置为从顶级目录(自定义 makeprg、grep 等)工作,因此我真的不想经常更改目录。不过还是谢谢。
猜你喜欢
  • 2023-02-01
  • 2021-12-19
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
相关资源
最近更新 更多