VIFM:在命令行模式下重新映射控制右侧/左侧



我不太喜欢命令行readline键盘快捷键,所以我希望重新映射C-Right/C-Left以前后导航一个单词,并重新映射C-BS和C-Del以前后删除一个单词。然而,在阅读了文档和诽谤之后,我不知道如何做到这一点。

目前,当在命令行中键入C-left/C-right时,光标不会移动,而是插入键代码(C-left=[1;5D,C-right=[1;5C(。我尝试过很多重映射,但我认为最适合的映射是:

cmap <C-right> <A-f>
cmap <C-left> <A-b>

我能够想出如何使用以下映射删除一个单词(在进一步审查时,VIFM手册中有关于映射BS的文档(:

cnoremap <BS> <C-w>
cnoremap <C-h> <C-w>

然而,我仍然不确定如何使用C-Del映射删除一个单词。当我对C-Del使用以下重映射时,结果是删除了光标左侧的一个字符。注意,当我使用其他C-*组合来删除单词forward时,重新映射实际上是有效的,这让我认为可能不可能重新映射C-Del:

cmap <C-Del> <A-d>

我在Arch Linux上使用的是VIFM 0.12版本。有什么建议吗?

文档中提供了尖括号表示法支持的键列表。并且不存在Ctrl与箭头键的组合。

请参阅这个GitHub问题,了解为什么以及如何解决它的例子:

" ctrl-right
cnoremap <esc>[1;5C <a-f>
" ctrl-left
cnoremap <esc>[1;5D <a-b>
" ctrl-del
cnoremap <esc>[3;5~ <a-d>

在这一点上,我仍然不确定这些序列在不同的终端类型中是否足够常见,以便进行硬编码而不会引起麻烦。

最新更新