VIM:如何从与已打开文件相同的位置打开另一个文件

时间:2016-02-09 21:30:16

标签: vim

假设我在我的主目录中。我打开一个深层嵌套目录结构中的文件:

vim /some/really/long/path/file.txt

现在,在vim中,我想从同一个长位置开始与另一个文件进行垂直拆分(但我不想将当前目录更改为该路径,我仍然想要在主目录中)。

外行(像我一样)会做类似的事情:

:vsp /some/really/long/path/file2.txt

但我想从你们所有的VIM天才那里找到,有更简单的方法吗?

同样,如果我有多个文件已经打开,驻留在不同的路径中,VIM可以自动为所有位置分配某种内部变量吗?然后当我想用其中一个位置的文件之一启动一个新的VSP或SP时,我只是使用那些内部变量?

3 个答案:

答案 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 打开所需文件。