Очистить строку быстрее, чем [0] [d] [$]


18

Есть ли более быстрый способ стереть текст в строке, чем

  • нажмите, 0чтобы перейти к началу, затем
  • нажатием d$удалить до конца строки?

Кроме того, что если я захочу удалить все, кроме отступа? Есть способ сделать это?

Ответы:


34

Как вы сказали, есть несколько способов, и вы также можете принять во внимание, каким будет ваше следующее действие после очистки или удаления текущей строки.

  1. dd удалит текущую строку (не ясно)
  2. 0D очистит текущую строку, включая пробелы
  3. ^Dочистит текущую строку, не включая пробелы ( ^dg_экономит конечный пробел)
  4. 0C очистит текущую строку, включая пробелы, и переведет вас в режим вставки
  5. ^Cочистит текущую строку без пробелов и переведет вас в режим вставки ( ^cg_экономит конечный пробел)

ccили Sбудет работать как 4. или 5., если 'autoindent' выключен или включен соответственно.

Поэтому используйте все, что подходит под действие. Я считаю, что 0Dэто самый быстрый способ очистить линию, но вы можете сопоставить это с чем-то, если хотите, чтобы сделать это еще быстрее.


7
@SuperScript Sявляется синонимомcc
FDinoff

1
Спасибо за отличный ответ, @akshay; TYLTK - это самое лучшее: vi.stackexchange.com/…
Робби Wxyz

9

Ага. Если есть что-то, что мне нравится в Vim, так это ответ на вопрос «Могу ли я сделать это?» почти всегда решительное да .

0D Переходит к началу, затем удаляет через конец строки.

^D (не Ctrl + D) перейдет к первому непробельному символу, а затем удалит его до конца.

(PS Я понял это только сейчас и хотел поделиться с любыми другими новичками. Пожалуйста, дайте мне знать, если есть лучший способ.)


6

Очистить строку с одним ключом (сдвинуты): 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

С помощью плагина Kana " vim-textobj-line " вы можете использовать операции над строкой с отступом с il(например dil) или со всей строкой без перевода строки, с al(например yal). Преимуществом этого подхода является тонким: вместо того, чтобы думать о двух движений (начало, конец) для требуемой операции необходимо указать текстовый объект непосредственно : я п л НСИ, а л НСИ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.