2014-06-07 57 views
1

使用Vim,我想在插入模式下高效地刪除文本。我可以使用Backspace或我可以使用CTRL + h。這是什麼意思?我應該停止使用退格鍵並且只能使用CTRL + h要有效編輯?如果是,那麼我應該禁用Backspace在我的.vimrc中(就像我對箭頭鍵所做的那樣)?如何在插入模式下高效地刪除Vim中的文本

謝謝。

+2

不要試圖堅持任意的規則,並要求隨機的陌生人有更多的隨意規則。如果你對''感到滿意,那麼使用它,如果你對''感到滿意,就使用它,如果你對箭頭感到滿意,就使用它們。如果*你*覺得你目前的做法效率低下,尋找更好的方法(首先在':help'中)。如果你絕對必須禁用某些鍵來強制自己使用其他「更好」的鍵,可以考慮尋求專業人士的幫助:簡單的事實「方式」比方式「a」更好應該是足夠的激勵。 – romainl

回答

0

不,在我看來,如果你犯了一個錯誤,與按CTRL-h相比,簡單地按回退一兩次是非常簡單和有效的。以下是一些其他插入模式快捷方式http://usevim.com/2012/12/14/vim-101-insert-mode-shortcuts/,例如CTRL-w,用於刪除光標前的單詞。不使用箭頭鍵是更多高效,因爲沒有時間浪費你的手來回移動。這似乎不適用於退格,因爲替代方案更爲複雜(兩鍵組合對一個),以獲得相同的結果。

:help ins-special-keys

免責聲明:6個月Vim的用戶

3

您可以隨時使用Ctrl-o做一個普通模式命令。例如,如果您開始一個句子,並決定要刪除它並重新開始,則可以在插入模式下輸入Ctrl-o d(

說實話,我一直在使用vim至少5年,我從來沒有覺得這需要。我認爲vim的關鍵技巧是讓進入正常模式非常簡單。 Esc實在有點痛苦,它在大多數鍵盤上都很遙遠。我將Capslock重新映射到Ctrl以幫助完成此操作。這使得Ctrl-[快捷鍵很容易進入正常模式。您還可以使用inoremap kj <Esc>來輸入kj離開插入模式(即使使用代碼,您在打字時也很少鍵入kj)。

最終的解決方案是將Capslock重新映射爲Escape。我發現,雖然映射Capslock到Ctrl在許多其他程序中更有用,所以綁定在一般情況下更有用。

+1

看一看[xcape](https://github.com/alols/xcape) - 它允許您在Caps Lock中擁有* both *控制和轉義(取決於您是按組合還是單獨按下) - 這真的很棒! –

+0

這是一個非常有趣的工具。我唯一擔心的是當我打開caplock準備好使用ctrl做一個快捷方式時,然後改變主意 - 會釋放大寫鎖定併發送意外的轉義引起問題? –

+0

如果您在釋放之前按住足夠長的鍵,它將發出控制權,而不是逃脫。因此,如果您在按下按鈕後改變主意,只需稍等片刻再放開即可(延遲可配置)。這可能聽起來很複雜,但它的工作原理是:-) –

2

Vim是一個模態編輯器。這意味着在正確的任務中使用正確的模式是有好處的。

一般的經驗法則:

  • 你在插入模式輸入進行快速修正 - 用退格鍵(或者<c-w>
  • 需要刪除/改變一個單詞或更大的東西,你也許應該跳回到正常模式並用動作做一個d或者用一個動作做一個c
  • 需要刪除很多行,然後才能打出宏或ex命令。 e.g :g/foo/d

幾件事情要記住:

  • 你應該只在插入模式的短脈衝。正常模式應被視爲您的默認模式或「正常」模式
  • 通過.命令使您的更改正常工作通常是一個好習慣。例如使用daw,>ciw,並通過.
  • 重複更改Vim的模態性質使得撤銷歷史很好而粗獷。濫用插入模式將使撤消歷史記錄不太有用。
+1

很好的回答!我只會添加建議,使切換模式儘可能簡單,主要是將Escape鍵移到非常方便的位置(例如Caps Lock)。 –