我使用集成到 VIM 的 cscope 来导航大型代码库。我可以使用 :E 命令来导航目录结构。但是,如何在导航到的特定目录上打开 shell?
我遇到了:cd %:p:h
有没有更简单的方法来做到这一点?
使用 Vim,总有多种方法可以满足您的需求。
例如,您可以为您找到的命令创建一个快捷方式(称为mapping)(和/或将其与打开 shell 结合使用):
:nnoremap <Leader>. :cd %:p:h<CR>
但是这个特殊的用例是如此普遍,以至于实际上有一个选择:
:set autochdir
作为替代方案,有些人总是从当前项目的根目录打开 Vim;这也确保了短(且一致!)的路径。甚至还有一些插件会自动:cd
为您添加到项目目录中。
可能会影响一些插件,因此set autochdir
您可以使用它来自动更改目录。
autocmd BufEnter * silent! lcd %:p:h
好好享受。
从一本书:
cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%'
用法:
在命令模式下,键入 %% 它将扩展到当前路径。这适用于任何采用路径的命令