删除键正在改变Vim中的字母大小写

时间:2010-07-12 17:38:03

标签: vim

我正试图进入Vim。我在OS X的终端上运行它。

无论何时我点击删除键,它只是更改该字母的大小写而不是删除它。当我通过SSH连接到我的服务器并在那里使用Vim时,它会正常删除。

任何想法可能出错?

6 个答案:

答案 0 :(得分:18)

问题

Del 键在GNU / Linux上的^[[3~终端中生成代码urxvt,并且可能在OS X终端中生成类似的代码。

我的理论是Vim由于某种原因无法识别删除键的任何键绑定,而只是尝试将字符串^[[3~解释为输入。 ^[ Esc 键的键码(使您进入正常模式),~是用于更改字母大小写的Vim命令(从正常模式)

您可以按 Ctrl + V Esc Ctrl + 确认我提到的密钥代码V Del 来自Vim中的插入模式。 Ctrl + V 表示下一个字符应作为文本插入,而不是由编辑器解释。

解决方案

至于解决方案,请尝试编辑Vim配置文件(大概是~/.vimrc):

  

vim ~/.vimrc

并将以下代码附加到其中:

nmap <Ctrl-V><Del> x
imap <Ctrl-V><Del> <Ctrl-V><Esc>lxi

我希望这会有所帮助:)

答案 1 :(得分:2)

问题是我的.vimrc中有

set term = ansi

接受了这一切,一切都很好 - 对不起烦恼,谢谢!

答案 2 :(得分:1)

好吧,这需要我永远解决。使用vim时,我在macOSx上的Iterm2中通过gnu屏幕访问Centos5系统。删除键不仅改变了字母大小写,并导致vim延迟,而且箭头键也无效。我认为问题仅在于Centos5机器上的旧配置,但可能与iterm或gnu屏幕有关,但我在任何Centos6系统上都没有这个问题。

什么不起作用: 我编译了vim 7.4,但是并没有解决它,所以不要沿着那条路走。 我还尝试了这些无效的配置

"set term=ansi
"set backspace=indent,eol,start
"set nocompatible
"fixdel

":if &term == "xterm"
":if &term == "xterm-256"
":  set t_kD=^V<Delete>
":endif

"nmap <Ctrl-V><Del> x
"imap <Ctrl-V><Del> <Ctrl-V><Esc>xi

我终于找到了解决方案。

解决方案:在.vimrc中设置以下内容

set term-builtin_xterm

此外,您可能还会注意到在同一系统上存在256种颜色。因此,如果有帮助,您可以检查TERM环境变量echo $TERM。如果它是xterm,则可以将其切换为256色,例如export TERM='xterm-256color使该相同系统的配色方案恢复正常。 reference

答案 3 :(得分:0)

我遇到了同样的问题,vim 突然以不同的方式解释了键。 我的答案是环境变量 $TERM 在我的终端中以某种方式“愚蠢”了。

我添加了

export TERM=xterm-color

到 ~/.bashrc (在我的情况下)并修复了所有与密钥有关的问题; DEL按预期工作等

我不需要在 ~/.vimrc 中添加或更改任何内容

我应该提到这对我来说不仅仅是 vim 的影响 - 例如,如果你还看到 'less' 的行为不同,你可能和我有同样的原因。

答案 4 :(得分:-1)

我经常在我的OSX机器上使用vim(vim版本7.2.108),我没有这个问题。尝试重命名你的vimrc文件,然后重新加载vim,看看问题是否仍然存在。如果在重命名vimrc文件后没有问题,那么您的问题就在该文件中。

在我的机器上,我的vimrc文件几乎是空的:

set ruler
set tabstop=2
set cindent
set number
syntax on

答案 5 :(得分:-1)

在我在vim fandom website上找到解决方案之前,这些解决方案都不适合我。

这些解决方案用于解决与箭头键类似的问题,除了删除键问题外,我还遇到过这种情况。

解决方案8为我修复了此问题,问题是我每次进入正常模式时都将<Esc>映射到<Esc>l以便向右移动光标,这显然导致使用包含^[(这是转义码),其中包括箭头键(^[OA ^[OB等)和删除键(^[[3~),这些键可能会被误解。

从我的.vimrc中删除有问题的行即可解决此问题。