2013-07-26 4 views
5

Иногда я хочу очистить строку в vim, а не удалять ее.Короткая команда для очистки текущей строки?

До:

foo 
bar 
lineToClear 
baz 

После

foo 
bar 

baz 

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

Я знаю, я ленив.

Существует ли команда, которая просто очищает всю строку, а не только символы после курсора?

Может быть какой-то Containment -образный тип прямого интерфейса мозга?

ответ

6

Вы можете использовать S. Он очищает линию, затем помещает вас в режим вставки. Если вы не хотите делать режим вставки, 0D будет самым быстрым набором команд.

Как упоминалось выше, вы можете создать собственное сопоставление, выполнив одну из следующих команд. Первый аргумент (S/D) можно изменить на все, что вам нужно.

:nnoremap S S<Esc> 

или

:nnoremap D 0D 

Reference

+1

Да, и так как вы не использовали 'S' до, @CoryKlein, вы можете переназначить его, чтобы очистить строку: ': nnoremap SS '. – glts

+1

'S' определенно хороший вариант, но FWIW я уже знал об этом. Я не упоминал об этом в своем вопросе, потому что «D» уже более эффективен в среднем случае - иногда требуется только один ключевой штрих, где «S» гарантированно требуется два в «только ясном случае использования строки» из-за к требованию нажать «Ctrl-C» или «ESC» после этого. –

+2

Что ж, вы пойдете, @CoryKlein, вы не можете стать более эффективными. Только личные сопоставления могут привести к дальнейшей оптимизации (потому что в Vim нет такой команды «очистить строку»). – glts

-1

Существует немного лучше, чем 0D. Это еще два ключа, но не требует shift или пройдя весь путь до верхней строки нажать 0:

просто только:

dd 
+3

'dd' была моей первой мыслью. Однако Кори сказал: «Иногда я хочу ** очистить ** строку в vim _rather than_ delete it». –

Смежные вопросы