Answers:
编辑:建议为垂直拆分情况很好地对称映射,因为Vim默认情况下有两个针对水平拆分情况的映射。
有多种方法可以编辑“光标下的文件”,并且您当然可以gf像@ alexander-myshov所提到的那样在新标签页中重新映射以进行编辑,这意味着您有两种方法可以在新标签页中对其进行编辑,在当前窗口中进行编辑,有时您可能还想这样做。使用标准映射并不难,但是如果您想将其中之一重新映射到gf,我建议您切换这些映射,以免丢失其中之一。
在光标下编辑文件名的一些方法是
没有用于垂直分割光标下的现有文件的标准映射,但是可以通过先垂直分割窗口然后在当前窗口中的光标下编辑文件来实现。
如您在上面看到的,在水平分割中,有两个默认的映射用于在光标下方编辑文件。因此,您可以将其中之一重新映射到上面的键串,从而扩展映射组以覆盖垂直拆分大小写。您当然可以绑定任何东西,但这似乎很好地完成了对称性:nnoremap <C-W><C-F> <C-W>vgf
。现在你有
如果光标下的文件名后面带有行号,则也可以转到文件中的特定行。如果你有
filename:10
您可以编辑文件,并使用将光标移至第10行gF。等效的是真正C-WF的分裂,C-WgF对于一个标签页。在这里,完成垂直分割的对称性并不是那么简单,但是我建议C-WC-S-F使用nnoremap <C-W><C-S-F> <C-W>vgF
,从默认映射中模仿F或Shift+ f作为候选者获得的映射。
这:
是一个示例,您可以使用任何不是文件名字符的字符(请参阅参考资料:h 'isfname'
)。
所有这些命令都附带有苹果酱,例如
'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
当然,借助这些功能,您可以使用:spl+10 filename
将光标移至特定行或:tabe+/cologne filename
将光标移至图案的第一个匹配项之类的功能。
只需为此使用绑定:
在新窗口中打开(拆分):
nnoremap gf <C-W>f
vnoremap gf <C-W>f
在新标签页中打开:
nnoremap gf <C-W>gf
vnoremap gf <C-W>gf
还要检查一下:
:help CTRL-W_gf
gf
到其他内容。甚至nnoremap gf :echo "hello"<CR>
仍然在新缓冲区中的光标下打开文件(是的,我来自vimrc)。
'hidden'
选项(set hidden
)可使您远离未保存的缓冲区。对我来说,这是极大的生产力提升,对于停止如此依赖拆分和制表符至关重要。