普通模式命令gf转到光标当前位于的路径为
的文件。
,这意味着您需要明确地导航回去,以便稍后再返回。
,并且可能需要在当前缓冲区中写入更改。而是在新的tabview中在光标下打开文件?

评论

启用“隐藏”选项(设置为隐藏)可让您远离未保存的缓冲区。对我来说,这极大地提高了生产率,对于停止如此依赖拆分和制表符至关重要。

#1 楼

编辑:建议为垂直拆分情况很好地对称映射,因为Vim默认情况下为水平拆分情况有两个映射。

有几种方法可以编辑“光标下的文件”,尽管您肯定可以像@ alexander-myshov所提到的那样,重新映射gf以在新的选项卡页面中进行编辑,这意味着您可以通过两种方式在新的选项卡页面中对其进行编辑,但是没有办法在当前窗口中对其进行编辑,有时您可能想要这样做。使用标准映射并不难,但是如果您想将其中的一个重新映射到gf,我建议您切换这些映射,以免丢失其中的一个。在光标下编辑文件名的方法有以下几种:



gf-在同一窗口中编辑光标下的现有文件

C-Wf-编辑拆分窗口中光标下的现有文件

C-WC-F-在拆分窗口中光标下的现有文件

C-Wgf-在新选项卡页面中光标下的现有文件

没有用于垂直分割光标下的现有文件的标准映射,但是可以通过先垂直分割窗口然后在当前窗口中的光标下编辑文件来实现。


C-Wv + gf-在垂直分割的窗口中的光标下编辑现有文件

如上所示,在下面的文件编辑中有两个默认映射光标水平分割。因此,您可以将其中一个重新映射到上面的键串,从而扩展映射组以覆盖垂直拆分大小写。您当然可以绑定任何东西,但这似乎很好地完成了对称性:nnoremap <C-W><C-F> <C-W>vgf。现在您有了



gf-在同一窗口中的光标下编辑现有文件

C-Wf-在拆分窗口中的光标下编辑现有文件

C-WC-F-在垂直分割的窗口中用光标编辑现有文件


如果光标下的文件名后面带有行号,则也可以转到文件中的特定行。如果您具有

filename:10


,则可以编辑文件,并使用gF将光标移至第10行。对于拆分的C-WF和对于选项卡页的C-WgF都是等效的。在这里完成垂直分割的对称性并不是那么简单,但是我建议使用nnoremap <C-W><C-S-F> <C-W>vgF获得的C-WC-SF映射,从默认映射中模仿F或Shift + f作为候选。

:是一个示例,您可以使用非文件名字符的任何字符(请参阅:h 'isfname')。

扩展wildchars
,根据您的'path'选项,在当前目录中查找更多位置
根据您的'suffixesadd'选项,在文件名中添加文件扩展名根据您的'includeexpr'选项修改给定的filname以找到匹配项。

:help gf上了解更多信息以及这些各种选项的帮助主题。


如果文件名在游标名称下不存在的文件下,最好将标准编辑命令与<cfile>配合使用,例如

:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage


以及这些命令e您可以使用诸如:spl+10 filename将光标移动到特定行或使用:tabe+/cologne filename之类的操作将光标移动到模式的第一个匹配项。

评论


+1带有清晰说明的最佳评论,远胜于涉及多个主题的文档。

–爱概率
16年2月2日在4:13

#2 楼

只需为此使用绑定:

在新窗口中打开(拆分):

nnoremap gf <C-W>f
vnoremap gf <C-W>f


在新选项卡中打开:

nnoremap gf <C-W>gf
vnoremap gf <C-W>gf


还请检查以下内容:
:help CTRL-W_gf

评论


这些绝对对您有用吗? Vim似乎不希望我将gf重新映射到其他东西。即使nnoremap gf:echo“ hello” 仍会在新缓冲区中的光标下打开文件(是的,我来自vimrc)。

– tandrewnichols
16-2-22在14:35

啊,没关系-我有一个插件在干扰。

– tandrewnichols
16-2-22在15:05