最近我发现我在Vim中"错误地使用了标签".我一直试图在Vim中使用缓冲区,因为通过MiniBufExplorer辅助,但我发现它很痛苦,因为从正常模式更改缓冲区需要多少次击键.使用选项卡,我可以在正常模式下执行gt或gT在选项卡之间来回跳转,我也NUMBERgt可以转到特定选项卡.
使用缓冲区,我要么必须使用:bn,:bp或者使用MiniBufExplorer 进入命令模式,使用Ctrl + k或Ctrl + Up跳到缓冲区窗口,使用h和向左或向右滚动l然后点击Enter以选择我想要的缓冲区.或者我可以做一些涉及领导序列的事情,但它总是需要从主行中移除多个手指.那是一个真正的痛苦.
如何在正常模式下获得等效的切换标签,以便在正常模式下切换缓冲区,这样我可以做gn/ gpfor :bn/ :bp和NUMBERgnfor :buf NUMBER?
Eri*_*son 45
将其添加到.vimrc中
map gn :bn<cr>
map gp :bp<cr>
map gd :bd<cr>
Run Code Online (Sandbox Code Playgroud)
需要注意的是重新映射gp和gd,但也许你不关心这个(:help gp,:help gd).
有关如何映射关键笔划的更多信息,请参见:help map-overview和:help map.txt.
顺便说一句,我个人用<leader>而不是g映射.我的目标<leader>是;.这把我的<leader>钥匙放在主页上,这让我愿意用各种各样的东西来映射<leader>. :help mapleader如果你想改变你的<leader>钥匙.
Nic*_*son 42
我通常在缓冲区之间切换的方法是使用:buffer带有内置自动完成功能的命令,例如:b prof<Tab>切换到folder/path/LoginProfileFactory.php.
你可以开始输入你需要的缓冲区文件名的任何部分,这很好.
不太经常,我实际上记得我想要的缓冲区的数量,我使用的东西像:b 3或:3b.我看到你提到你不喜欢:buf 3,所以Rumple Stiltskin:3b可以选择你喜欢的款式.
Fri*_*ner 15
我在.vimrc中有以下几行:
nnoremap <silent> <tab> :if &modifiable && !&readonly && &modified <CR> :write<CR> :endif<CR>:bnext<CR>
nnoremap <silent> <s-tab> :if &modifiable && !&readonly && &modified <CR> :write<CR> :endif<CR>:bprevious<CR>
Run Code Online (Sandbox Code Playgroud)
现在使用Tab可以转到下一个缓冲区,并转到上一个Shift-Tab.
icc*_*c97 15
这是基于Nick Knowlson的回答,但我想在那里扩展我的评论......
键入
:b <Tab>(注意空格),然后使用Tab或←/ 循环打开缓冲区→.
...让我们在我使用的所有其他编辑器和浏览器中更接近Ctrl+ Tab.
它实际上在某些方面甚至更好,然后你可以用←/ →箭头向后和向前.它避免了拇指+手指fu键入Ctrl+ Shift+ Tab以向后浏览编辑器和浏览器中的选项卡.
NB Shift+ Tab就是这样Tab
这实际上类似于Windows 10中的Win+ Tab,一旦你第一次打开窗口,然后你可以使用箭头键移动.
编辑:我还有两个使用缓冲区的技巧:
从这个回答我在我的.vimrc:
nnoremap <leader>bb :buffers<cr>:b<space>
Run Code Online (Sandbox Code Playgroud)
它会打开:ls/ :buffers命令并预先键入,:b这样您就必须输入缓冲区编号,因为您将看到包含所有缓冲区及其编号的列表.
我也有
nnoremap <leader><tab> :b#<cr>
Run Code Online (Sandbox Code Playgroud)
它在当前和最近使用的缓冲区之间切换,这有点像cd -在目录之间来回切换时做的
ske*_*ept 12
我使用插件unimpaired.vim
它定义映射[b并]b跳转到列表中的上一个和下一个缓冲区.
对于跳转到特定缓冲区,我知道的最佳选择是你提到的那个: :b<number>
如果你进入另一个缓冲区,你可以通过输入快速回来 <c-^>
扩展Rumple Stiltskin的答案,例如,如果您知道要获取的文件位于缓冲区中4,则可以快速到达
4Ctrl-^
Run Code Online (Sandbox Code Playgroud)
在我的英国键盘上,我实际上可以做到4Ctrl-6,正如我所说的那样
:help CTRL-^
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您可以看到缓冲区编号
:buffers
Run Code Online (Sandbox Code Playgroud)
我使用LustyExplorer:我<leader>b打开一个缓冲区列表,然后打开我要打开的缓冲区名称中的几个字母enter.简单.
但是,您没有"错误地使用选项卡",您正在以您希望的方式使用选项卡.如果它对你有用,为什么要经历痛苦的学习"正确的方式"?
我使用 F9 和 F10 在具有此映射的上一个/下一个缓冲区之间移动:
map <F9> :bprevious<CR>
map <F10> :bnext<CR>
Run Code Online (Sandbox Code Playgroud)
对我来说,这是切换缓冲区的最快方法。