Vim 的 End/Home 键无效的解决方法
On 2012-09-12 16:53:18 By SoliVim 的 End/Home 键无效的解决方法
很多人习惯用 End
键和 Home
键来定位到一行的行尾和行首。但在 gnome-terminal 终端下使用 Vim 进行编辑时,可能会碰到 End
键和 Home
键无效的问题。具体表现为,在按下 End
键时 Vim 会在当前行的上方插入新行并追加一个字母 F
;按 Home
键时类似,只是字母 F
变成了 H
。
出现这个问题的原因是,当按下 End
或 Home
键时,终端会向 Vim 发送一个转义序列,而 Vim 却没有正确的将该转义序列转化成对应的按键。
可以通过设置 Vim 的 term 类型来解决这个问题。因为 gnome-terminal 是兼容 xterm 的,所以只需把 Vim 的 term 设置为 xterm 即可。一般情况下,Vim 会根据 TERM
环境变量来设置自己的 term 类型;如果没有指定 TERM
环境变量,则默认为 ansi 。
具体的解决方法如下:
使用 Vim 命令
在 Vim 中运行如下命令:
:set term=xterm
这种方法仅对当前 Vim 有效。关闭 Vim 后再打开,则问题依旧。
修改 Vim 配置文件
把上述命令写入 ~/.vimrc
。这样,每次用 Vim 打开文件,都不会再出现问题了。
设置环境变量 TERM
在终端的配置文件中加入如下内容:
export TERM=xterm
配置文件可能有如下几个:
~/.bashrc
~/.bash_profile
/etc/bashrc
/etc/bash.bashrc
仅需添加到其中一个就行,不用都添加。至于添加到哪个,请根据自己系统的情况决定。
最后一种方法是比较推荐的。因为可以同时为其他依赖 TERM
环境变量的命令或程序提供定义。
有的人可能会使用多个或多种系统。这样,使用第二种方法,然后在各个系统中共享一份 ~/.vimrc
会更方便一些。
本文主要参考了这篇文章(http://stackoverflow.com/questions/1523746/fix-home-and-end)。