0

我想不时开始使用缓冲区(而不是总是使用制表符)。

我已经习惯使用快捷键 Ctrl+J 和 Ctrl+K 在选项卡之间移动。

有没有办法以智能处理选项卡或缓冲区的方式映射这些快捷方式?

4

3 回答 3

2

有多个标签页时切换标签页,以及只有一个标签页的情况下切换缓冲区怎么样?!这可以通过一个简单的映射来完成:

:nnoremap <silent> <C-j> :<C-u>if tabpagenr('$') > 1<Bar>tabnext<Bar>else<Bar>bnext<Bar>endif<CR>
于 2013-06-26T06:15:12.497 回答
2

有一个有趣但未充分使用且半不切实际的选项,可让您切换到它所在的缓冲区,而不是在这里::help 'switchbuf'.

:bn这很有趣,因为(例如,所有命令都相同)的默认行为:b*是将当前缓冲区替换为您要切换到的缓冲区,无论它是否已在其他地方显示。

它未被充分利用,因为它仅适用于:sb-related 和 quickfix 命令。

这是半不切实际的,因为当您切换到的缓冲区尚未显示在某处时,:sb会在新的拆分中打开它。

这里显然有改进的余地。

无论如何,你可以尝试这样的事情:

set switchbuf=useopen,usetab
nnoremap <C-j> :sbnext<CR>

或完全停止使用选项卡,因为它们的设计和适应方式不是您希望它们工作的方式。

于 2013-06-25T20:53:25.180 回答
0

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>
于 2013-06-25T20:42:44.587 回答