在 Vi 或 Vim 中从插入模式转到退出模式时,有没有办法不让光标向左移动一个空格?

在 Vi 或 Vim 中从插入模式转到退出模式时,有没有办法不让光标向左移动一个空格?

在我看来,更改模式不应该移动文本光标。有什么设置可以禁用此功能吗?

答案1

光标实际上并没有移动。在命令模式(即所谓的退出模式)下,它位于第三个(例如)字符上,而当您进入插入模式时,它位于第三个字符后面。

只有在插入模式下,进入替换模式(按键盘上的“插入”按钮)它才会移动::然后它会移动到当前位置的右侧字符(在本例中为第 4 个字符)。

答案2

我已经使用 vi、vim 和现在的 gvim 十多年了,我从来没有注意到这种变化。我使用i插入和a追加,输入的内容可以随意移动。这可能是一个小小的界面怪癖,你很快就会不再注意到它。

您可能更喜欢这里推荐的设置:

如何使用 Ctrl+X、Ctrl+C、Ctrl+V 在 Ubuntu 上的 GVim 中进行剪切/复制/粘贴?

我知道我会的。这些设置并没有真正解决您的问题,但如果您对 vim/gvim 的使用经验更熟悉,您可能不会太在意字符转换行为。

另一个选择:您可以尝试奶油色设置(http://cream.sourceforge.net/features.html)。如果您使用的是 Ubuntu 或 Debian,则可以使用 apt-get/aptitude/synaptic 安装一个软件包(该软件包名为 cream)。

答案3

imap <silent> <Esc> <C-O>:stopinsert<CR>

看起来工作得很好:)

此外,set virtualedit=onemore需要设置最佳行为。

我知道这个问题很老了但我想有些人可能会喜欢它。

相关内容