[0] [d] [$]よりも速く行をクリアします


18

行のテキストを消去するよりも速い方法はありますか

  • を押し0て最初にジャンプし、次に
  • d$行の終わりまで削除するために押す?

また、インデント以外のすべて削除する場合はどうなりますか?それを行う方法はありますか?

回答:


34

あなたが言ったように、複数の方法があり、現在の行をクリアまたは削除した後、次のアクションがどうなるかを考慮することもできます。

  1. dd 現在の行を削除します(明確ではありません)
  2. 0D 空白を含む現在の行をクリアします
  3. ^D空白を含まない現在の行をクリアします(^dg_末尾のスペースを節約します)
  4. 0C 空白を含む現在の行をクリアし、挿入モードにします
  5. ^C空白を含まない現在の行をクリアし、挿入モードにします(^cg_末尾のスペースを節約します)

ccまたはS、「autoindent」がそれぞれオフまたはオンの場合、4または5として機能します。

そのため、手元のアクションに合うものを使用してください。私はそれ0Dが行をクリアするための最速だと信じていますが、それをもっと速くするために、望むならそれを何かにマッピングすることができます。


7
@SuperScriptはS同義語であるcc
FDinoff

1
@akshayのすばらしい回答をありがとう。TYLTK、それは非常に最高でアップだ:vi.stackexchange.com/...
ロビーWXYZ

9

うん。Vimで気に入っていることが1つあるとすれば、それは「それができますか?」に対する答えです。ほとんど常に強調しています

0D 先頭にジャンプしてから、行末まで削除します。

^D (Ctrl + Dではなく)最初の非空白文字にジャンプし、最後まで削除します。

(PS私は今これを理解し、他の初心者と共有したいと考えました。もっと良い方法があれば教えてください。)


6

1つの(シフトされた)キーで行をクリアしますS

これにより、インデントも保持されます。

インデントの後の最初の位置、または行の先頭で挿入モードに入ります-行を置換するために必要なもの-したがって名前S-置換のように。

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.

S素晴らしい鍵です。
domi91c

3

かなさん「とVIM-textobjライン」プラグインは、あなたが持つ字下げした行に対して操作を使用することができますil(例dilで、改行なし)、または行全体al(例えばyal)。このアプローチの利点は微妙です:目的の操作のために両方のモーション(開始、終了)を考える必要がなく、テキストオブジェクトを直接指定します:i n l ine、a l ine。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.