Macos vim中处于插入模式的箭头键

Macos vim中处于插入模式的箭头键,macos,vim,iterm2,iterm,Macos,Vim,Iterm2,Iterm,当我在vim中处于插入模式时,我使用箭头键,它会发送一封信和一个回车。例如,按↑ 它发送: A 它看起来像A\n,但我不确定它到底发送了什么字符/代码。为什么会发生这种情况,有没有办法禁用这种情况 您可能处于vi兼容模式。尝试:设置不兼容 如果这使它能够正常工作,请将设置为nocompatible放在vimrc文件的顶部,使其默认为该行为。您可能处于vi兼容模式。尝试:设置不兼容 如果这能使它按您的意愿运行,请将设置为不可兼容的放在vimrc文件的顶部,使其默认为该行为。终端发送的向上箭头的

当我在vim中处于插入模式时,我使用箭头键,它会发送一封信和一个回车。例如,按↑ 它发送:

A


它看起来像
A\n
,但我不确定它到底发送了什么字符/代码。为什么会发生这种情况,有没有办法禁用这种情况

您可能处于vi兼容模式。尝试
:设置不兼容


如果这使它能够正常工作,请将
设置为nocompatible
放在vimrc文件的顶部,使其默认为该行为。

您可能处于vi兼容模式。尝试
:设置不兼容


如果这能使它按您的意愿运行,请将
设置为不可兼容的
放在vimrc文件的顶部,使其默认为该行为。

终端发送的向上箭头的通常顺序是
OA
^[OA
^[/code>顺序表示
键,也相当于
Ctrl>)+[

如果您的Vim无法识别此序列为向上箭头,它将执行此序列:
,它将离开插入模式并进入正常模式,然后
O
在当前行上方插入新行并进入插入模式,然后插入文字
a
,因为您将再次处于插入模式

您可以通过在插入模式下键入
Ctrl+V
,然后键入向上箭头来确认这确实是您的终端发送Vim的序列。(在插入模式下,按字面插入下一个字符。)我希望您会看到插入的
^[OA
序列

然后,您可以使用
:set
命令检查Vim认为向上箭头的顺序。我希望您会看到如下内容:

t_ku  <Up>           ^[OA
:verbose
部分要求Vim告诉您它是从哪里设置的,这样您就可以看到vimrc或某个插件是否正在覆盖它。如果Vim没有显示这些,则表示它来自shell中的
$TERM
变量

因此,看看Vim外部设置了什么
$TERM
,看看这是否正确。您是否在某个地方明确地设置了它?它是shell的初始化文件之一,还是来自终端仿真器本身

也可能与您使用的是tmux还是screen有关,在这种情况下,您应该再次检查
$TERM
是否在tmux或screen内部以及外部都设置正确


希望所有这些提示都能引导您朝着正确的方向解决这个问题。如果您不明白,请将您的发现作为对此答案的评论发布,我将用您可以尝试的更具体的解决方法更新它。

终端发送向上箭头的通常顺序是
OA
^[OA
(the
^[
序列表示
键,也相当于
Ctrl+[

如果您的Vim无法识别此序列为向上箭头,它将执行此序列:
,它将离开插入模式并进入正常模式,然后
O
在当前行上方插入新行并进入插入模式,然后插入文字
a
,因为您将再次处于插入模式

您可以通过在插入模式下键入
Ctrl+V
,然后键入向上箭头来确认这确实是您的终端发送Vim的序列。(在插入模式下,按字面插入下一个字符。)我希望您会看到插入的
^[OA
序列

然后,您可以使用
:set
命令检查Vim认为向上箭头的顺序。我希望您会看到如下内容:

t_ku  <Up>           ^[OA
:verbose
部分要求Vim告诉您它是从哪里设置的,这样您就可以看到vimrc或某个插件是否正在覆盖它。如果Vim没有显示这些,则表示它来自shell中的
$TERM
变量

因此,看看Vim外部设置了什么
$TERM
,看看这是否正确。您是否在某个地方明确地设置了它?它是shell的初始化文件之一,还是来自终端仿真器本身

也可能与您使用的是tmux还是screen有关,在这种情况下,您应该再次检查
$TERM
是否在tmux或screen内部以及外部都设置正确


希望所有这些提示都能引导您朝着正确的方向解决这个问题。如果您不明白,请将您的发现作为对此答案的评论发布,我将用您可以尝试的更具体的修复方法更新它。

@Chritian--同样的事情。也许它与iterm2发送的代码有关?不确定到底发送了什么,但我知道在我的linux系统上tem,如果我做了
:设置compatible
,那么它就会表现出你所描述的行为。我相信几年前我有一个同事也有同样的问题。我想这发生在他身上,因为他会用
vi
别名运行它,这会导致它在vi模式下打开。@Chritian——同样的事情。也许它与iterm发送的代码有关2?不确定到底发送了什么,但我知道,在我的linux系统上,如果我执行
:设置compatible
,那么它就会表现出你描述的行为。我相信,几年前我有一位同事也遇到过同样的问题。我想这件事发生在他身上,因为他会使用
vi
别名运行它,从而导致它在vi模式下打开。@David542我很好奇你的发现…你最终发现了导致箭头键在插入模式下行为不正常的错误配置吗?最终是什么?我很高兴我的答案似乎能帮上忙!干杯!这似乎是正确的,我尝试时我的代码也是什么。感谢你的广泛回答:
t\u kd我很好奇你的发现……你最终发现了导致arr的错误配置吗