如果我處於插入模式並擊中C-l(在正常模式下清除我的搜索),Vim會將^ L插入緩衝區。我從不想要這種行爲。我如何禁用它?我不想映射每一個可能的命令,我只是不想在每次犯錯時插入垃圾。如何讓Vim永遠不會插入轉義碼
回答
如果您在插入模式下遇到特定Ctrl組合的問題,可以隨時將其關閉: :imap ^L <Nop>
此處Nop爲「無操作」。
如果讓你感到沮喪,我建議在試圖戒除習慣時關閉它。每當你看到^ L時,它可能會起到某種強化的作用,並認爲「噢,我再次做到了這一點」。
話雖如此,插入模式下有很多真的有用的Ctrl組合,你可以用它來做有用的操作,所以我不建議把它們全部關掉。
Ctrl-L(和Ctrl-Z就此而言),是真正有用的鍵重新映射到你找到有用的。它們僅在插入模式爲默認模式時使用,而不是普通模式 - 請參閱:h insertmode
Ctrl-L也非常適合重新映射,因爲它很容易按住home行並重新映射它應該不干涉任何事情。
將它用於某些您認爲有用的東西會增強肌肉記憶力,並且應該阻止您意外按壓它。
'Ctrl-L'默認重畫屏幕。如果你打算重新映射這個,我強烈建議在你的映射的末尾添加一個重繪。 – 2011-03-08 11:25:21
Ctrl-L在正常模式下重繪,但不在插入模式下重繪。我提出的建議是使用Ctrl-L和Ctrl-Z作爲插入模式映射。 – PDug 2011-03-09 10:05:50
那麼你爲什麼不
:inoremap <C-l> <C-o><C-l>
,是一個快樂的傢伙? C-o暫時'暫停'插入模式,因此您可以在不實際離開插入模式的情況下執行'正常模式'命令。
嚴重低估
:he <C-o>
:WQ
- 1. mysql插入/更新永遠插入永不更新
- 2. 永遠不會調用NPAPI插件
- 3. 如何讓RestTemplate永遠不會拋出異常
- 4. 代碼永遠不會達到
- 5. 代碼將永遠不會執行C
- 6. touchesBegan函數永遠不會被輸入
- 7. Quickblox - QBMessageListener永遠不會進入processMessage()
- 8. SimpleOnGestureListener永遠不會進入onFling(...)方法
- 9. ValueEventListener永遠不會被輸入
- 10. Python多處理永遠不會加入
- 11. For循環永遠不會輸入
- 12. 的JavaScript永遠不會進入else塊
- 13. 使用innerHTML插入的腳本是否永遠不會執行?
- 14. 貓鼬插入永遠不會返回單元測試
- 15. QtCreator語義問題警告代碼永遠不會被執行
- 16. NumberPicker自定義DialogPreference的值永遠不會保存(或永遠不能恢復)
- 17. WIF聯盟和域:永遠不會進入自定義SecurityTokenHandler
- 18. 爲什麼代碼執行永遠不會進入catch塊(java)?
- 19. PaintComponents()永遠不會調用
- 20. CoCreateInstance()永遠不會返回
- 21. QThread永遠不會啓動
- 22. onLongClickListener永遠不會trigered
- 23. onReceive永遠不會調用
- 24. didFailToReceiveAdWithError永遠不會觸發
- 25. Asynctask永遠不會完成
- 26. clCreateBuffer()永遠不會失敗
- 27. onCreateDrawableState永遠不會調用
- 28. MySqlConnection.StateChange永遠不會獲取
- 29. Facebook SessionState永遠不會FBSessionStateCreatedTokenLoaded
- 30. 「在」永遠不會關閉
你爲什麼要這樣對待比任何其他錯字什麼不同?要麼改善你的打字方式,以免在製作拼寫錯誤或改正拼寫錯誤時使用。 – jamessan 2011-03-08 01:26:20
^L不是「垃圾」,它是一個完全合法的ASCII字符。 – 2011-03-08 01:37:51
正如你所描述的那樣,這個入口在兩種不同的模式下意味着兩種不同的東西。你如何期望vim理解你想要的?實際上,想想這樣 - 如果vim具有這樣的功能,爲什麼它不具有稱爲「糾正我的代碼」的功能?這種禮賓服務功能在哪裏結束? – kvista 2011-03-08 01:42:28