2011-03-08 56 views
1

如果我處於插入模式並擊中C-l(在正常模式下清除我的搜索),Vim會將^ L插入緩衝區。我從不想要這種行爲。我如何禁用它?我不想映射每一個可能的命令,我只是不想在每次犯錯時插入垃圾。如何讓Vim永遠不會插入轉義碼

+0

你爲什麼要這樣對待比任何其他錯字什麼不同?要麼改善你的打字方式,以免在製作拼寫錯誤或改正拼寫錯誤時使用。 – jamessan 2011-03-08 01:26:20

+0

^L不是「垃圾」,它是一個完全合法的ASCII字符。 – 2011-03-08 01:37:51

+0

正如你所描述的那樣,這個入口在兩種不同的模式下意味着兩種不同的東西。你如何期望vim理解你想要的?實際上,想想這樣 - 如果vim具有這樣的功能,爲什麼它不具有稱爲「糾正我的代碼」的功能?這種禮賓服務功能在哪裏結束? – kvista 2011-03-08 01:42:28

回答

2

如果您在插入模式下遇到特定Ctrl組合的問題,可以隨時將其關閉: :imap ^L <Nop>此處Nop爲「無操作」。

如果讓你感到沮喪,我建議在試圖戒除習慣時關閉它。每當你看到^ L時,它可能會起到某種強化的作用,並認爲「噢,我再次做到了這一點」。

話雖如此,插入模式下有很多真的有用的Ctrl組合,你可以用它來做有用的操作,所以我不建議把它們全部關掉。

Ctrl-L(和Ctrl-Z就此而言),是真正有用的鍵重新映射到找到有用的。它們僅在插入模式爲默認模式時使用,而不是普通模式 - 請參閱:h insertmode

Ctrl-L也非常適合重新映射,因爲它很容易按住home行並重新映射它應該不干涉任何事情。

將它用於某些您認爲有用的東西會增強肌肉記憶力,並且應該阻止您意外按壓它。

+0

'Ctrl-L'默認重畫屏幕。如果你打算重新映射這個,我強烈建議在你的映射的末尾添加一個重繪。 – 2011-03-08 11:25:21

+1

Ctrl-L在正常模式下重繪,但不在插入模式下重繪。我提出的建議是使用Ctrl-L和Ctrl-Z作爲插入模式映射。 – PDug 2011-03-09 10:05:50

1

那麼你爲什麼不

:inoremap <C-l> <C-o><C-l> 

,是一個快樂的傢伙? C-o暫時'暫停'插入模式,因此您可以在不實際離開插入模式的情況下執行'正常模式'命令。

嚴重低估

:he <C-o> 

:WQ

相關問題