我想不时开始使用缓冲区(而不是总是使用制表符)。
我已经习惯使用快捷键,Ctrl + J&按Ctrl + K在标签之间移动。
有没有办法以智能处理标签或缓冲区的方式映射这些快捷方式?
答案 0 :(得分:2)
有一个有趣但未充分利用且半不切实际的选项,允许您切换到缓冲区而不是此处::help 'switchbuf'
。
这很有意思,因为:bn
的默认行为(例如,对于所有:b*
命令都是相同的)是将当前缓冲区替换为您要切换到的缓冲区,无论它是否已在其他位置显示或不。
它使用不足,因为它只适用于:sb
- 相关和快速修复命令。
这是不切实际的,因为当您切换到的缓冲区尚未显示在某处时,:sb
会以新的分割方式打开它。
这里显然有改进的余地。
无论如何,你可以尝试这样的事情:
set switchbuf=useopen,usetab
nnoremap <C-j> :sbnext<CR>
或完全停止使用标签,因为它们的设计和调整并不适合您希望它们如何工作。
答案 1 :(得分:2)
如果有多个切换标签怎么样,切换缓冲区只有一个标签页?!这可以通过简单的映射来完成:
:nnoremap <silent> <C-j> :<C-u>if tabpagenr('$') > 1<Bar>tabnext<Bar>else<Bar>bnext<Bar>endif<CR>
答案 2 :(得分:0)
这应该有效
:map <C-J> <Esc>:tabnext<CR>
这将显示一个编号列表,并且可以输入所需的数字以访问所需的缓冲区
:nnoremap <C-J> :buffers<CR>:buffer<Space>