Удалить из курсора в конец строки на VI

Я знаю, что я, вероятно, просмотрел это миллион раз во всех документах VI, которые я прочитал, но я не могу найти команду delete from cursor to end of line.

241 голос | спросил Falmarri 29 12010vEurope/Moscow11bEurope/MoscowMon, 29 Nov 2010 23:58:30 +0300 2010, 23:58:30

6 ответов


371

Команда d w удалит из текущей позиции курсора в начало следующего символа слова. Команда d $ (обратите внимание, что это знак доллара, а не «S») удалит из текущей позиции курсора в конец текущей строки. D является синонимом d $ .

ответил Tok 30 22010vEurope/Moscow11bEurope/MoscowTue, 30 Nov 2010 00:00:32 +0300 2010, 00:00:32
32

Одна из приятных вещей о vi - его логическая структура команд. d, за которым следует команда движения d eletes для цели этого движения. $ перемещается в конец строки (мнемоника: как в регулярных выражениях). Поэтому d $ удаляется до конца строки. Аналогично, e перемещается в e nd текущего слова, а w перемещается в начало следующего w ога; поэтому de удаляет конец текущего слова, а dw дополнительно удаляет следующие пробелы.

ответил Gilles 30 22010vEurope/Moscow11bEurope/MoscowTue, 30 Nov 2010 00:33:20 +0300 2010, 00:33:20
20

Как уже упоминалось, вы можете использовать d $ или D ( shift - d ), чтобы удалить от позиции курсора до конца строки.

То, что я обычно нахожу более полезным, это c $ или C ( shift - c ), потому что это будет удалите из позиции курсора до конца строки и , чтобы поместить вас в режим [INSERT].

ответил Brad Johnson 8 TueEurope/Moscow2015-12-08T23:57:05+03:00Europe/Moscow12bEurope/MoscowTue, 08 Dec 2015 23:57:05 +0300 2015, 23:57:05
17

Вероятно, вы хотите использовать D. Переместите курсор на первый символ, который хотите удалить, затем нажмите shift-D. Все прошло. Фактически, он находится в буфере отсечки по умолчанию, поэтому вы можете снова вставить P или p.

Я использую Dp (удаление до конца строки, затем верните его), перейдите к концу какой-либо другой строки, затем снова нажмите p, чтобы вставить тот же текст в конец этой другой строки. Делает чудеса в конфигурационных файлах, где вам нужно разместить сложный URL-адрес в двух или более местах.

ответил Bruce Ediger 30 22010vEurope/Moscow11bEurope/MoscowTue, 30 Nov 2010 07:52:33 +0300 2010, 07:52:33
0

Я думаю, что ярлык режима вставки может пригодиться.

В режиме вставки, возможно, было бы лучше начать смены до конца строки (поместите это на свой ~ /.vimrc):

inoremap <C-l> & Lt; C = O & ° С

Итак, у вас есть, как было сказано, D в нормальном режиме и Ctrl + l в режиме вставки. Как вы видите, у вас также есть C , который начинает меняться до конца строки.

& л; C = O > ......... вставить обычное нажатие клавиши в режиме вставки

Я выбрал Ctrl - l , потому что l находится под пальцами. Ctrl - k уже используется для вставки орграфов.

Я искал через : h i_Ctrl для некоторых бесплатных привязок клавиш, и на самом деле это большая проблема, когда дело доходит до создания новых ярлыков для выполнения действий в vim.

ответил SergioAraujo 19 Jpm1000000pmFri, 19 Jan 2018 13:19:01 +030018 2018, 13:19:01
0

Чтобы удалить диапазон строк после позиции курсора, 3 D удалит курсор до конца строки, а также следующие две строки полностью (т. е. удаляет 3 строки после позиции курсора).

например. для следующего текста (курсор представлен как |),

Если в строке есть курсор |
Вот
мы
идти

Используя команду 3 D выведет:

Если есть курсор
идти
ответил Nick Bull 5 J000000Thursday18 2018, 16:51:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132