Як я можу швидко видалити рядок у VIM, починаючи з позиції курсору?


267

Я хочу мати змогу видалити залишок рядка, на якому я починаю, починаючи з позиції курсора у VIM. Чи є легка команда зробити це?

Щоб проілюструвати, це перед командою.

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

Це після команди

The q
     ^
     |----- Cursor is here.

Відповіді:


430

(Відредаговано, щоб включити хороші доповнення коментатора :)

Dабо його еквівалент d$видалить решту рядка і залишить вас у командному режимі. Cабо c$видалить решту рядка і переведе вас у режим вставки, і новий текст буде доданий до рядка.

Це частина vitutorі vimtutor, відмінно "читає" для початківців vim.


1
Вибух, я подумав, що це щось легко, я думав про якусь комбінацію, dа потім щось. Я подумав, що тут буде швидше опублікувати питання, а також скористатись іншими людьми, які за замовчуванням шукають в Інтернеті, перш ніж прочитати посібник.
Ентоні

2
Або Cєдиний "реальний" спосіб отримати курсор у зазначеному положенні, хоча це переводить вас у режим вставки.
Вальтер

1
@Anthony: Існують також « dслід що - то» -еквівалентним команди для D, де «що - то» є $рухом: d$.
ib.

2
А якщо ви хочете перейти у режим вставки, використовуйте C(або c$)
Бенуа

7
Я розумію, що на це рішення вже відповіли, але я гуглю за способом видалити цілий рядок з VIM і знайшов це. Варіант, який виявився, що я шукав, був ddіз командного режиму. Я сподіваюся, що це допоможе будь-яким іншим, хто наткнеться на це.
Фріто


21

Можливо, вам також буде цікаво C, він також видалить кінець рядка на кшталт D, але додатково він переведе вас у режим Вставка в місці розташування курсору.




5

Це дуже давнє питання, але оскільки VIM все ще є актуальним, щось слід з’ясувати.

Кожна відповідь та коментар тут станом на жовтень 2018 року посилається на те, що зазвичай було б відоме як "скорочена" дія, таким чином, використання будь-якого з них замінить те, що зараз є в реєстрі неназваних VIM . Цей регістр, як правило, трактується як буфер обміну копію / вставлення за замовчуванням, тому жоден з цих відповідей не працюватиме за бажанням, якщо ви видаляєте решту рядка, щоб потім вставити щось у те саме місце, оскільки все, щойно видалене, буде згодом вставлено замість того, що раніше було поховано.

Справжня команда видалення в контексті ОП є "_D(або "_Cякщо потрібен режим вставки). Це відправляє видалений вміст у регістр чорної діри , позначений "_, де він більше нікого не буде турбувати (хоча ви все одно можете скасувати цю дію за допомогою u).

При цьому все, що востаннє викручено, зберігається в реєстрі 0 , і навіть якщо його заміняють у неназваному реєстрі, його все одно можна вставити за допомогою "0p.

Дізнайтеся більше про реєстр чорних дір та регістри загалом для додаткової забави VIM!


4

Dабо ddвидаляє та копіює рядок до реєстру. Ви можете використовувати Vxлише те, що видаляє рядок і залишається у звичайному режимі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.