1

我在我的 中启用了以下映射init.vim

tnoremap <Esc> <C-\><C-n>
tnoremap <C-h> <C-\><C-n><C-w>h
tnoremap <C-j> <C-\><C-n><C-w>j
tnoremap <C-k> <C-\><C-n><C-w>k
tnoremap <C-l> <C-\><C-n><C-w>l

nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

这些极大地改进了 Vim 中的窗口导航。

但是,我注意到C-h在终端缓冲区中执行时不能按预期工作。在通常的终端会话上尝试此操作会产生Backspace作用。因此,它可能似乎是这些替代组合键之一,例如C-iforTabC-[for Esc。但是有什么方法可以C-h根据我的绑定在 Neovim 的终端会话中工作吗?

谢谢!

4

1 回答 1

3

这个问题已经在这里进行了广泛的辩论。原始 Vim 不依赖terminfo并包含自己的补丁来正确处理C-h序列。Neovim 确实在看terminfo

简而言之,修复是在 shell 中执行这些命令:

infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
tic $TERM.ti
于 2015-11-24T17:29:50.307 回答