Vim重新映射F10键

3

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

nmap <F10> :!ls<CR>

然后我执行了 "source $MYVIMRC" 命令以加载 .vimrc 中的更改。但是在此之后,当我按下 F10 键时,它打印出 ^[[21~ 而不是执行映射。我尝试了所有的 noremap 组合,但都没有起作用。
将其重新映射到其他功能键不是一个选项,因为它们已经被映射到其他用途。
只是提供信息,在 Putty 配置选项中,在终端->键盘下,我将“功能键和小键盘”选项设置为“Linux”。
有什么建议可以让这个工作?
1个回答

5

看起来你的 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 可能会起作用。


$TERM 设置为 xterm 就像魔法一样好用。感谢 Laurence。 - Aswin Anand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接