假设我在我的主目录中。我打开一个深层嵌套目录结构中的文件:
vim /some/really/long/path/file.txt
现在,在vim中,我想从同一个长位置开始与另一个文件进行垂直拆分(但我不想将当前目录更改为该路径,我仍然想要在主目录中)。
外行(像我一样)会做类似的事情:
:vsp /some/really/long/path/file2.txt
但我想从你们所有的VIM天才那里找到,有更简单的方法吗?
同样,如果我有多个文件已经打开,驻留在不同的路径中,VIM可以自动为所有位置分配某种内部变量吗?然后当我想用其中一个位置的文件之一启动一个新的VSP或SP时,我只是使用那些内部变量?
答案 0 :(得分:12)
试试这个:
:vs %:p:h/otherfile
as %:p:h
为您提供当前文件的路径。
有关详细信息,请参阅:help %:p
。
答案 1 :(得分:3)
编辑同一目录中的另一个文件:
nnoremap <key> :vs <C-R>=expand('%:p:h')<CR>
使用映射:
{{1}}
答案 2 :(得分:0)
如果您想要比输入命令更多的导航,一个方便的选项可能是使用嵌入式浏览命令,该命令打开一个窗口,其中包含当前缓冲区中文件目录中的列表文件。然后,您可以使用光标导航,并在要以垂直分割打开的文件上按 v 。
一种方便的方法是映射浏览命令,例如:
" open embedded file system navigator
map <leader>\ :Explore<cr>
按&lt; leader&gt; \ 并导航至该文件,然后按 v 。
对于某些版本的vim,在按 v 后,“浏览”窗口会保持打开状态 - 在这种情况下,如果您想避免额外的负担来关闭浏览窗口,您可以先使用:vsp 执行垂直拆分,调用:Expore ,然后按 Enter 打开所需文件。