你怎么从'在Vim中

我使用Vim安装在Unix模式下的windows。感谢这个网站,我现在使用gf命令转到光标下的文件。

我正在寻找一个命令:

  1. 返回上一个文件(类似 到Ctrl+T for ctags),或
  2. <李>重新映射gf 自动启动新文件
64849 次浏览

Ctrl-转变-6是1。

:e#↲是另一个。

我使用Ctrl-O

只需要使用:e#后面跟着输入——这基本上是说编辑最后一个(最近的)文件。

我不知道你问题第二部分的答案,但我可以帮你回答第一部分。使用

:e#

Vim维护它正在编辑的文件(缓冲区)列表。如果你输入

:buffers

它将列出您当前正在编辑的所有文件。列表中旁边有%的文件就是当前文件。旁边有#的是备用文件。:e#将在当前文件和备用文件之间切换。我没有输入那么多,而是将F2映射到:e#,这样我就可以轻松地在当前文件和备用文件之间切换。我将该命令添加到.vimrc中,将其映射到F2

nmap `<F2> :e#<CR>`

我经常使用Ctrl-6来实现这一点。

它很方便,因为它允许我在两个文件之间快速来回跳转。

当你打开一个新文件时(使用女朋友: n或其他命令),旧文件仍保留在缓冲区列表中。你可以用: ls列出打开的文件

如果你想在vim中轻松地在缓冲区之间导航,你可以创建一个这样的映射:

nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>

现在你可以在带有Alt+Alt+的缓冲区之间切换。

关于映射的完整文档在这里:

:help map.txt

我还没有看你的女朋友命令,但我想象它使用e::找命令 假设这是正确的,只需将e::找替换为:新(或: vnew用于垂直分割),文件将在一个新窗口中打开,而不是原来的窗口 < p >。

"Switch between header and cpp
nmap ,s :find %:t:r.cpp<CR>
nmap ,S :new %:t:r.cpp<CR>
nmap ,h :find %:t:r.h<CR>
nmap ,H :new %:t:r.h<CR>
nmap ,F :new =expand("<cfile>:t")<CR><CR>
nmap ,d :new =expand("<cfile>")<CR><CR>

您可能想使用CTRL-W gf在新选项卡中打开文件。

你可以像往常一样使用:bd关闭新打开的文件,或者使用CTRL-6和其他常用的方法更改缓冲区。

我得到了CTRL-Wf来工作 我花了这么长时间来完善这些命令的映射,却发现它们有内置的版本,这真令人沮丧

使用gf进入文件,使用:bf返回文件