【问题标题】:Vim remap F10 keyVim 重新映射 F10 键
【发布时间】:2011-06-09 21:39:07
【问题描述】:

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

nmap <F10> :!ls<CR>

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

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

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

有什么建议可以让它工作吗?

【问题讨论】:

    标签: vim freebsd


    【解决方案1】:

    听起来您正在使用的 termcap/terminfo 和/或 $TERM 的值正在阻止 Vim 将您的终端为 F10 发送的字符序列识别为 F10。

    简单的解决方法是映射字符序列。在您的 .vimrc 中,键入以下内容:

    nmap <CTRL-V><F10> :!ls<CR>
    

    &lt;CTRL-V&gt;&lt;F10&gt; 是按 CTRL-V,然后按 F10。这将导致类似^[[21~ 的内容出现在您的缓冲区中。没关系,这个映射应该可以工作(至少在那个终端上)。

    “正确”的解决方法是更改​​ $TERM、您的 termcap 或 terminfo 数据库的值,以便 Vim 知道 ^[[21~ 是 F10。将$TERM 设置为xterm 可能会起作用。

    【讨论】:

    • $TERM 设置为xterm 就像一个魅力。谢谢劳伦斯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多