VSCode 的 Vim 插入符号位置在一个词之后而不是之前

Caret position with VSCode's Vim going after a word and not before

我刚刚从 VSCode 下载了 Vim 扩展程序,我遇到了一个简单但很烦人的问题(可能与我仍在入门的事实有关)。

Lorem ipsum dolor sit amet.
^

我将插入符号放在第一个字符 L 上,然后按 e 转到 Lorem 的末尾。 (用例添加一些东西添加行尾)。

如果我然后按 i 进入插入模式,我的插入符会在 Loremm 之前而不是之后。这很烦人,因为我不能轻易地在行尾添加文本。

我用的 Vim 对吗?

感谢您的澄清!

是的,这是 i 的正确行为,它用于在光标 之前 插入文本。如果要在光标 之后插入文本 ,正确的命令是 a。如果要在光标处插入文本,正确的命令是s.

Am I using Vim right ?

您根本没有使用 Vim,这至少部分解释了为什么您对非常正常和预期的行为感到恼火。

在常规 editors/IDEs 中使用 Vim 模拟器学习 Vim 是一个坏主意,原因有以下几个:

  • 他们不是 Vim,所以他们的行为肯定会以某种方式偏离 Vim。他们可能会错过 Vim 功能,或者对添加什么以及如何实现它有自己的看法等等。所有这些都会导致混乱。

  • 它们都以略微不同的方式实现了略有不同的 Vim 子集,因此在一个 IDE 中使用一个 Vim 模拟器,在另一个 IDE 中使用另一个 IDE =] 不会给你同样的体验。

  • 当它们被认为比 Vim 更方便时,它们往往会退回到宿主自身的功能,这将不可避免地产生错误的期望,一方面,隐藏真正有用的Vim 个功能。

  • 它们在设计时主要考虑了实际的 Vim 用户,作为一种轻松过渡到任何主机 editor/IDE 的方式。您不是 Vim 用户,因此您不属于目标人群。

  • Vim 是野兽。为了有效地使用它,有很多很多东西你必须忘记,还有很多东西你必须学习。值得庆幸的是,Vim 附带了一个令人难以置信的内置文档,包括一个非常详尽和温和的迭代教程,:help user-manual 将毫不费力地将您从菜鸟带到专业人士。 Vim 模拟器没有任何类似的东西,因此用户只能使用自己的设备,尝试他们在网上找到的随机东西,建立错误的假设等等。

    举个例子,VSCodeVim 没有 :help,在 Vim 中可以用来查看 [=10 的情况=].

    在 Vim 中学习 Vim 是唯一有意义的策略。

这是一个建议的方法:

  1. 如果您还没有,请根据需要多次 $ vimtutor 以掌握正确的基础知识。
  2. 按照vimtutor最后的提示,升级到用户手册:help user-manual。它将指导您逐步完成 每个 功能,从基本到高级。这不是小说,按照你自己的节奏,跳过章节,稍后再回来看,最重要的是,一路尝试。
  3. 关注反模式和低效行为,寻找改进,实践。冲洗。重复。