![在 Vi 或 Vim 中从插入模式转到退出模式时,有没有办法不让光标向左移动一个空格?](https://linux22.com/image/1226317/%E5%9C%A8%20Vi%20%E6%88%96%20Vim%20%E4%B8%AD%E4%BB%8E%E6%8F%92%E5%85%A5%E6%A8%A1%E5%BC%8F%E8%BD%AC%E5%88%B0%E9%80%80%E5%87%BA%E6%A8%A1%E5%BC%8F%E6%97%B6%EF%BC%8C%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E4%B8%8D%E8%AE%A9%E5%85%89%E6%A0%87%E5%90%91%E5%B7%A6%E7%A7%BB%E5%8A%A8%E4%B8%80%E4%B8%AA%E7%A9%BA%E6%A0%BC%EF%BC%9F.png)
在我看来,更改模式不应该移动文本光标。有什么设置可以禁用此功能吗?
答案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
需要设置最佳行为。
我知道这个问题很老了但我想有些人可能会喜欢它。