簡單地說,我怎樣才能在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. 是否可以在C++中禁用鍵?
- 5. 是否可以禁用Controls:HoverButton?
- 6. 是否可以用鼠標使用vim
- 7. 在PyCharm中,是否可以禁用隱藏樣式標籤?
- 8. 如何在VIM中切換到REPLACE模式
- 9. 是否可以在WPF中重用網格模式/模板
- 10. 是否可以判斷`autoindent`是否設置在vim中?
- 11. 是否可以使用vim格式化文本
- 12. 是否可以使用VIM格式化C++代碼?
- 13. 用戶是否可以禁用html5 sessionStorage?
- 14. 是否可以使用Puppeteer禁用Websocket?
- 15. 是否可以在vim中使用多折標記?
- 16. 是否可以啓用bash_completion:!或者:r!在VIM中?
- 17. 是否有可能在R中的replace()中使用函數?
- 18. 是可以替換vim中的匹配模式嗎?
- 19. 是否可以在不禁用JavaScript的情況下禁用AJAX?
- 20. 是否可以在NavigationView中禁用可點擊的HeaderLayout?
- 21. 是否可以在Dynamics CRM(2013/2016)中以編程方式禁用審計?
- 22. 是否可以在android中以編程方式阻止/禁用出廠重置?
- 23. 是否可以在打字稿中使用nodejs樣式模塊?
- 24. 是否可以在Mongoose中引用兩個模式給彼此?
- 25. 是否可以在mongoosejs模式中填充自引用?
- 26. 是否可以在wdired模式(Emacs)中使用align-regexp?
- 27. 是否可以在x264中強制使用I_PCM模式?
- 28. 是否可以在Windows窗體中使用相機模式?
- 29. 是否可以在Google Container Engine中啓用ABAC模式(授權)?
- 30. 是否可以在MVVM模式中使用WindowsFormsHost?
對於什麼是值得的,我用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