удалить от курсора до конца строки в `vi`

<p>я знаю, что, вероятно, просматривал это миллион раз во всех прочитанных мною документах <code>vi</code>, но, похоже, не могу найти команду удаления от курсора до конца строки.</p>

<p>команда <kbd>d</kbd><kbd>w</kbd> удалит из текущей позиции курсора в начало следующего символа word. команда <kbd>d</kbd><kbd>$ (обратите внимание, это знак доллара, а не 's') удалит из текущей позиции курсора до конца текущей строки. d это синоним d$</kbd>,.</p>

<p>как уже упоминали другие: вы можете использовать <code>d$ или d (shift-d) удалить с позиции курсора до конца строки.что я обычно нахожу более полезным, это c$</code> или <code>c</code> (<kbd>shift</kbd>-<kbd>c</kbd>), поскольку он будет удалять из позиции курсора до конца строки <em>и</em> переведет вас в режим [insert].</p>

<p>одна из замечательных особенностей vi - это логическая структура команд. <code>d</code> с последующей командой движения <strong>d</strong> выбирает цель этого движения. <code>$ перемещается в конец строки (мнемоника: как в регулярных выражениях). так d$</code> удаляет до конца строки. аналогично, <code>e</code> перемещается в <strong>e</strong> nd текущего word, а <code>w</code> перемещается в начало следующего <strong>w</strong> ord; поэтому <code>de</code> удаляет конец текущего word, а <code>dw</code> дополнительно удаляет следующие пробелы.</p>

<p>возможно, вы захотите использовать d. переместите курсор на первый символ, который вы хотите удалить, затем нажмите shift-d. все прошло на самом деле, он находится в буфере вырезания по умолчанию, так что вы можете вставить его обратно в p или p.</p><p>я использую dp (удалить до конца строки, затем положить его обратно), перехожу в конец какой-то другой строки, затем снова p, чтобы вставить тот же текст в конце этой другой строки. работает чудеса в конфигурационных файлах, где вам нужно поместить несколько сложных url-адресов в двух или более местах.</p>

<p>чтобы удалить диапазон строк после позиции курсора, <kbd>3</kbd><kbd>d</kbd> удалится из курсора до конца строки, а также полностью из следующих двух строк (т.е. удалит 3 строки после позиции курсора).</p><p>например для следующего текста (курсор представлен как <code>|</code>),</p><pre><code>if there's a cursor |in the line here we go </code></pre><p>используя команду <kbd>3</kbd><kbd>d</kbd> будет выводить:</p><pre><code>if there's a cursor go </code></pre>

<p>я думаю, что ярлык режима вставки может пригодиться.</p><p>в режиме вставки, возможно, было бы лучше начать изменять до конца строки (поместите это на свой <code>~/.vimrc</code>):</p><pre><code>inoremap <c-l> <c-o>c </code></pre><p>итак, у вас, как уже было сказано, <kbd>d</kbd> в обычном режиме и <kbd>ctrl</kbd>+<kbd>l</kbd> в режиме вставки. как вы можете видеть, у вас также есть <kbd>c</kbd> это начинает меняться до конца строки.</p><pre><code><c-o> ......... insert normal keystroke in insert mode </code></pre><p>я выбрал <kbd>ctrl</kbd>-<kbd>l</kbd> потому что <code>l</code> под вашими пальцами. <kbd>ctrl</kbd>-<kbd>k</kbd> уже используется для вставки орграфов.</p><p>я искал через <code>:h i\_ctrl</code> для некоторых бесплатных сочетаний клавиш, и это на самом деле большая проблема, когда речь идет о создании новых ярлыков для выполнения действий в vim.</p>