简单地说,我怎样才能在vim中完全禁用Replace模式?我从来没有使用过替换模式,但是当重新进入插入模式时,我有时会不小心误入了它。很自然地,在意识到我处于替换模式之前,我打字输入了几个字符。那么,是否有任何方法可以完全禁用替换模式,无论是通过配置设置还是通过?是否可以在vim中禁用Replace模式?
回答
您不能禁用取代模式,但您可以创建自动命令,将“替换”和“虚拟替换”模式更改为插入模式:
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
谢谢。我明天将在工作中尝试一下,看看它是如何发展的。 – coderintherye 2010-11-08 08:43:45
这很好,谢谢!只是给其他用户一个额外的提示,上面的代码通常会放在你的.vimrc文件中,至少这是我为我的。 – coderintherye 2010-11-08 20:15:36
这比'imap
不知道这是最好的方式,但你可以在你的.vimrc映射R和r落空:
map R <C-V><C-V>
map r <C-V><C-V>
编辑:或者这样:
map R <Nop>
map r <Nop>
您应该阅读':help
感觉好多了,谢谢!我将编辑我的回答 – 2010-11-05 22:14:00
当插入模式被更改为'
使用我键进入插入,而不是使用插入关键
这样,你就不会重新进入插入模式
在.vimrc只需添加imap <Insert> <Nop>
这将是足够
我发现这个解决方案更好。插入键进入插入模式工作,但在第二次插入命中禁用时替换模式。放置下两行到你的.vimrc
imap <Insert> <Nop>
inoremap <S-Insert> <Insert>
(由garyjohn @超级用户的网站提到)
- 1. 在切换标签页时,VIM是否可以记住模式?
- 2. 在REPLACE中使用模式
- 3. 是否可以在RichFaces中禁用AJAX?
- 4. 是否可以禁用Controls:HoverButton?
- 5. 是否可以用鼠标使用vim
- 6. 在PyCharm中,是否可以禁用隐藏样式标签?
- 7. 如何在VIM中切换到REPLACE模式
- 8. 是否可以使用VIM格式化C++代码?
- 9. 是否可以使用Puppeteer禁用Websocket?
- 10. 是否可以在vim中使用多折标记?
- 11. 是否可以在不禁用JavaScript的情况下禁用AJAX?
- 12. 是否可以在android中以编程方式阻止/禁用出厂重置?
- 13. 是否可以在Dynamics CRM(2013/2016)中以编程方式禁用审计?
- 14. 是否可以在Google Container Engine中启用ABAC模式(授权)?
- 15. WCF:是否可以在双工信道中使用流模式?
- 16. 是否可以在MVVM模式中使用WindowsFormsHost?
- 17. 是否可以在wdired模式(Emacs)中使用align-regexp?
- 18. 是否可以在Xcode6中模拟iphone6 +的缩放模式?
- 19. 内核模式 - 是否可以访问用户模式?
- 20. 是否可以禁用D的GC?
- 21. 是否可以禁用RESTEasy的RoleBasedSecurityFilter.java?
- 22. 是否可以禁用负向索引?
- 23. 是否可以从JavaScript内禁用JavaScript?
- 24. 是否可以使VIM显示行数?
- 25. 是否可以在iPhone中以编程方式启用热点模式?
- 26. 是否可以通过编程方式启用/禁用硬件?
- 27. 是否可以在Visual Studio中启用禁用的断点
- 28. 弹性:是否可以禁用某些领域的模糊性?
- 29. 是否可以在IE8中模拟Object.getOwnPropertyNames
- 30. 是否可以基于每个文件禁用次要模式(例如,flyspell)?
对于什么是值得的,我用Google搜索,并通过对SO其他一些问题去了,找不到这个要求或回答,也许我是唯一一个不使用替换模式并希望摆脱它的人,或者我的谷歌软件太弱。 – coderintherye 2010-11-05 21:44:27
那么你将如何替换单个字符?这是非常有用的:) – 2010-11-06 08:43:41
@Nicolas Viennot你可以用'r'替换单个字符,这个命令与替换模式无关。 – ZyX 2010-11-06 09:09:43