gpt4 book ai didi

vim - 如何在 Windows 8 上的 Cygwin 中禁用 Vim 的 'vi compatible' 模式?

转载 作者:行者123 更新时间:2023-12-01 22:08:44 25 4
gpt4 key购买 nike

我在 Windows 8(64 位)上使用 Cygwin 1.7.22(32 位)。在 Cygwin 中,我使用的是 Vim 7.3.1152,这是默认版本。

看似错误的行为:

  1. 当我按I进入插入模式时,左下角没有显示-- INSERT --。事实上,它什么也没说。不过,它的行为确实正确。

  2. 当我在插入模式下使用退格键删除字母时,字母不会消失,但光标会向左移动。

  3. 当我在插入模式下使用箭头键时,它会输入字母 A、B、C 和 D,而不是移动光标。箭头键在插入模式之外正常工作。

如何让 Vim 按照我的预期运行?

最佳答案

创建一个包含以下内容的 ~/.vimrc 文件,将 vim 置于不兼容模式(实际上,仅存在该文件就足够了。)

set nocompatible

您所看到的行为是 vi 过去的行为方式。这些不是错误。

看看:h no兼容

<小时/>

在 vim 兼容模式下尝试尽可能地模拟 vi。

  1. --insert-- 不是 vi 的一部分,因此不会以兼容模式显示。
  2. 我相信 vi 对屏幕进行了延迟重绘,并且直到您退出回到正常模式后才更新。此外,退格键仅可用,也仅适用于在当前插入模式下输入的内容。总的来说,它不是很用户友好。
  3. 箭头键作为转义序列发送到 vim(转义后跟几个字母)。让 ^[ 为转义符。 ^[OA 在我的计算机上,它可能在你的计算机上类似。 vim 将此视为转义(返回到正常模式),O(在当前行上方添加一行)和 A,即您在屏幕上看到的输入的 A。这只是意味着兼容模式下的 vim 无法正确解释转义字符。很可能是因为 vi 没有解释它们(也不是为了使用它们而设计的)。
<小时/>

set no兼容修复了问题 1 和 3。

我认为 set backspace=indent,eol,start 应该可以解决问题 2。

关于vim - 如何在 Windows 8 上的 Cygwin 中禁用 Vim 的 'vi compatible' 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18115644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com