我想不时开始使用缓冲区(而不是总是使用制表符)。
我已经习惯使用快捷键 Ctrl+J 和 Ctrl+K 在选项卡之间移动。
有没有办法以智能处理选项卡或缓冲区的方式映射这些快捷方式?
有多个标签页时切换标签页,以及只有一个标签页的情况下切换缓冲区怎么样?!这可以通过一个简单的映射来完成:
:nnoremap <silent> <C-j> :<C-u>if tabpagenr('$') > 1<Bar>tabnext<Bar>else<Bar>bnext<Bar>endif<CR>
有一个有趣但未充分使用且半不切实际的选项,可让您切换到它所在的缓冲区,而不是在这里::help 'switchbuf'
.
:bn
这很有趣,因为(例如,所有命令都相同)的默认行为:b*
是将当前缓冲区替换为您要切换到的缓冲区,无论它是否已在其他地方显示。
它未被充分利用,因为它仅适用于:sb
-related 和 quickfix 命令。
这是半不切实际的,因为当您切换到的缓冲区尚未显示在某处时,:sb
会在新的拆分中打开它。
这里显然有改进的余地。
无论如何,你可以尝试这样的事情:
set switchbuf=useopen,usetab
nnoremap <C-j> :sbnext<CR>
或完全停止使用选项卡,因为它们的设计和适应方式不是您希望它们工作的方式。
This should work
:map <C-J> <Esc>:tabnext<CR>
This will present a numbered list and required number can be entered to access the required buffer
:nnoremap <C-J> :buffers<CR>:buffer<Space>