vim:根据映射的按键发送制表符补全键

vim:根据映射的按键发送制表符补全键

要在不安装任何插件的情况下在缓冲区之间切换,一个好方法是输入

:b <tab>

它在状态栏中显示所有当前缓冲区名称,您可以使用光标键选择一个并输入。

但是:b <tab> 是 5 次击键,我想将其映射到 <leader>。

但以下设置不起作用。

:nnoremap <Leader>. :b <Tab>

它在状态栏中显示“:b ^I”但实际上并没有在状态栏上打开缓冲区名称。

有人知道为什么吗?

答案1

您需要设置wildcharm。尝试以下操作:

set wildcharm=<Tab>
nnoremap <leader>. :b <Tab>

至少在这里这是可行的。

答案2

<tab>我认为这与不是一个真正的论点有关:b

如果您放下标签,nnoremap <leader>. :b<space>您就可以点击<tab>来获取菜单。

您只需按 3 次键即可调出菜单,但您可能仍需要按<tab>更多次键来选择正确的缓冲区并点击<CR>。如果您想要第一个缓冲区,则至少需要按 4 次键,这相当不错,但如果您想要第 7 个或第 12 个缓冲区怎么办?

我可以建议另一种方法吗?

nnoremap <leader>. :ls<CR>:b<Space>

:ls通过此映射,将显示缓冲区列表 ( ) 并:b启动命令,等待缓冲区编号作为参数。,.5<CR>无论您想跳转到哪个缓冲区,都需要 4 次击键 ( )(当然,如果您有 10 个或更多缓冲区,则需要 5 次击键,但您明白我的意思)。

我不知道除了映射单个键(如或其他)之外如何使它变得更短<F11>

相关内容