Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim重新映射F10键_Vim_Freebsd - Fatal编程技术网

Vim重新映射F10键

Vim重新映射F10键,vim,freebsd,Vim,Freebsd,我在FreeBSD上使用Vim 7.3。我用油灰连接这台机器。在Vim上工作时,我无法重新映射F10键以执行我想要的操作。在.vimrc中,我执行了以下操作: nmap <F10> :!ls<CR> nmap <CTRL-V><F10> :!ls<CR> nmap:!ls 然后我使用“source$MYVIMRC”将更改加载到.vimrc中。当我在这之后按F10时,它打印^[[21~而不是执行映射。我尝试了所有noremap的组合

我在FreeBSD上使用Vim 7.3。我用油灰连接这台机器。在Vim上工作时,我无法重新映射F10键以执行我想要的操作。在.vimrc中,我执行了以下操作:

nmap <F10> :!ls<CR>
nmap <CTRL-V><F10> :!ls<CR>
nmap:!ls
然后我使用“source$MYVIMRC”将更改加载到.vimrc中。当我在这之后按F10时,它打印^[[21~而不是执行映射。我尝试了所有
noremap
的组合,但都不起作用

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

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


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

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

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

nmap <F10> :!ls<CR>
nmap <CTRL-V><F10> :!ls<CR>
nmap:!ls
其中,
按CTRL-V,然后按F10。这将导致缓冲区中出现类似于
^[[21~
的内容。没关系,此映射应该可以工作(至少对于该终端)


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

$TERM
设置为
xterm
效果很好。谢谢Laurence。