我在FreeBSD上使用Vim 7.3。我通过Putty连接到这台机器。在使用Vim时,我无法重新映射 F10 键来执行我想要的操作。在我的.vimrc中,我做了以下内容:
nmap <F10> :!ls<CR>
然后我做了,“源$ MYVIMRC”加载.vimrc中的更改。当我在此之后按 F10 时,它会打印^ [[21~而不是执行地图。我尝试了noremap
的所有组合,但没有任何作用。
将其重新映射到其他功能键不是一个选项,因为它们被映射用于其他用途。
仅供参考,在Putty配置选项中,在终端 - >键盘下,我已将“功能键和键盘”选项设置为“Linux”。
有什么建议可以让它发挥作用吗?
答案 0 :(得分:3)
听起来你的termcap / terminfo和/或你正在使用的$TERM
值正在阻止Vim识别终端为F10发送的字符序列为F10。
简单的解决方法是映射字符序列。在.vimrc中,键入以下内容:
nmap <CTRL-V><F10> :!ls<CR>
<CTRL-V><F10>
按CTRL-V后按F10。这将导致缓冲区中出现^[[21~
之类的内容。没关系,这个映射应该有效(至少在那个终端上)。
“正确”修复将更改$TERM
,您的termcap或terminfo数据库的值,以便Vim知道^[[21~
是F10。将$TERM
设置为xterm
可能会有效。