Vim + Catalina

Vim + Catalina

Vim + Catalina

我刚刚切换到 MacOS Catalina,它有现成的 zsh 和 vim 8.1。

VIM - Vi IMproved 8.1 (2018 May 18, compiled Dec 13 2019 14:45:40)
Included patches: 1-503, 505-680, 682-1312
Compiled by [email protected]

我使用 Karabiner Elements 和 BetterTouchTool 将 Caps Lock 映射到delete_or_backspace并将 Delete 映射到delete_forward(又名fn+ delete)。

删除转发 => 大小写互换

我遇到一个问题,使用delete_forward( fn+ delete) 会将光标下的内容替换为相反的情况。

例如,假设我有以下文本:

func SomeFunc() {
  return true
}

无论我处于命令(?)模式还是处于插入模式,使用前向删除都会交换大小写,如下所示:

FUNC sOMEfUNC() {
  RETURN TRUE
}

我的delete_forward样子:

它似乎在所有其他程序中都按预期运行。这是我得到的转义序列:

cat 
hello^[[3~^[[3~^[[3~^[[3~^[[3~

那就是我输入 5 个字母(“hello”)然后按 5 次前进删除键。

另外,这是我从:set t_kDvim 内部获得的信息:

E846: Key code not set: t_kD

:echo $TERM揭示了以下内容:

ansi

:set term?给出:

  term=ansi

该怎么办?

我以前也见过这种情况,但我不知道是什么原因造成的,如果我按下 Esc 或退出并重新启动,它就会自行修复。在我的新电脑上...它一直存在。

我想这只是我意外启用的某种新的默认设置或选项。

无论如何,我的插件(sensible、syntastic、solarized、rust)似乎都无法加载,但我怀疑这不是它们的错。

答案1

您遇到的问题与终端设置有关,您可以在$TERM环境变量或:set term?Vim 中的选项中找到它。

您将该变量设置为ansi,这是一个功能相当差的终端设置,缺少很多颜色和对特殊键(如箭头键、删除键等)的支持。

您应该配置您的终端设置以使用功能更强大的终端,例如xterm或理想情况下xterm-256color

在聊天中,我们确定您很可能从 Terminal.app 中针对 Solarized 配色方案的配置文件中获取了此设置。由于配置文件包含所有内容(而不仅仅是配色方案)的设置,因此此ansi终端仿真设置随附于此。将其切换到xterm-256color并启动一个新 shell(以$TERM正确设置),您应该一切就绪了!

相关内容