我在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中的Windows导航。
但是,我注意到C-h
在终端缓冲区中执行时没有按预期工作。在通常的终端会话上尝试此操作会导致Backspace
操作。所以可能它似乎是这些替代组合键之一,例如C-i
的{{1}}或Tab
的{{1}}。但根据我的绑定,有没有办法让C-[
在Neovim的终端会话中工作?
谢谢!
答案 0 :(得分:3)
这个问题已经被广泛讨论here。原始Vim不依赖于terminfo
,并且包含自己的补丁以正确处理C-h
序列。 Neovim确实会考虑terminfo
。
简而言之,修复程序正在shell中执行这些命令:
infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > $TERM.ti
tic $TERM.ti