防止在 Spacemacs 或 VI 中切换覆盖模式

防止在 Spacemacs 或 VI 中切换覆盖模式

我讨厌 VI 中的覆盖模式。我实际上从来不想覆盖,我只是想在键入之前按插入键确认我处于插入模式,无论我之前处于什么状态,而不用担心我可能会切换覆盖模式。

有没有办法将 vi 配置为永远不会切换到覆盖模式?那么插入键总是会切换插入模式吗?

我正在使用 Spacemacs,所以如果有人知道如何在 Spacemacs 中执行此操作,那将是最好的,但如果我无法获得 VI 语法,我确信我可以弄清楚如何将 vi 配置添加到我的 Spacemacs 配置文件中(我我现在对 Spacemacs 还很陌生)。

答案1

我相信您指的是替换模式。我面前没有 VI 来测试这一点。尝试一下它是否适合您:

function s:ForbidReplace()
    if v:insertmode isnot# 'i'
        call feedkeys("\<Insert>", "n")
    endif
endfunction
augroup ForbidReplaceMode
    autocmd!
    autocmd InsertEnter  * call s:ForbidReplace()
    autocmd InsertChange * call s:ForbidReplace()
augroup END

此脚本只是将替换模式切换回插入模式。参考链接这里

答案2

你为什么要使用insert键盘上的按键?只需按i。 (它永远不会将您切换到替换模式。最坏的情况是它会键入字母“i”,您可以按退格键。)

此外,当您处于插入模式时,屏幕底部vi会有一个小状态栏,显示“INSERT”。


Emacs 和vi非常不同,所以看到一个问题要求在两者上同样可行的解决方案有点奇怪。


如果您主要使用插入模式,vi您可能需要了解有关正常模式的更多信息

相关内容