Vim重新映射F10键

时间:2011-01-16 06:27:24

标签: vim freebsd

我在FreeBSD上使用Vim 7.3。我通过Putty连接到这台机器。在使用Vim时,我无法重新映射 F10 键来执行我想要的操作。在我的.vimrc中,我做了以下内容:

nmap <F10> :!ls<CR>

然后我做了,“源$ MYVIMRC”加载.vimrc中的更改。当我在此之后按 F10 时,它会打印^ [[21~而不是执行地图。我尝试了noremap的所有组合,但没有任何作用。

将其重新映射到其他功能键不是一个选项,因为它们被映射用于其他用途。

仅供参考,在Putty配置选项中,在终端 - >键盘下,我已将“功能键和键盘”选项设置为“Linux”。

有什么建议可以让它发挥作用吗?

1 个答案:

答案 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可能会有效。