Вырезать и вставлять в Vim без перехода на следующую строку - PullRequest
3 голосов
/ 06 сентября 2011

Когда я вырезаю и вставляю в VIM, нажимая v, и иду к концу строки, используя $, и нажимаю d, следующая строка перемещается вверх к той же строке, которую я режу.

Как мне это остановить?

Ответы [ 4 ]

8 голосов
/ 06 сентября 2011

Он перемещается вверх, потому что вы удалили все символы, включая возврат строки / перевод.

В Vim, как обычно, есть несколько решений. Не существует «единственно верного пути», но вы можете попробовать следующие команды.

  • Вы можете использовать D (заглавная) в обычном режиме, который сотрет все до конца строки.

    См. :help D

  • Использование другого движения

    Что вы можете сделать вместо того, чтобы использовать $ , чтобы перейти к концу строки, используйте g _ . Он перейдет к последнему непустому символу строки и не выберет возврат строки.

    См. :help g_

    Итак v g _ d должно работать так, как вы хотите.

  • Использование Заменить

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

    Итак v $ r SPACE должно работать, но стирать замененные символы в регистре (для вставки позже например).

1 голос
/ 06 сентября 2011

Чтобы вырезать все от текущей позиции курсора до конца, используйте C .

:he C, вам помогут:

Удалить с позиции курсора до конца строки и [количество] -1 больше строк [в регистр x], и начать вставку.Синоним для c $ (не | linewise |).

Это вызовет текущую строку (при условии, что вы нажали C * в начале строки).1019 *), чтобы стать пустым, и содержимое (по умолчанию) заносится в регистр "


Редактировать: как отмечает Ксавье в своем комментарии (и его ответ )то же самое может быть достигнуто с D .Он также обрезает все от текущей позиции курсора до конца строки, но после этого не переходит в режим вставки.

0 голосов
/ 06 сентября 2011

Просто пропустите визуальный режим и поменяйте местами две другие команды, т.е.нажмите d $.

Это короче вашего начального и не нарушает вашу традицию введения других нажатий клавиш, с которыми вы, возможно, не знакомы.

0 голосов
/ 06 сентября 2011

Если вы используете эти последовательности нажатий клавиш, следующая строка не будет двигаться вверх.

v $ h d

Она движется вверх, потому что символ EOL $ также удаляется без перемещения курсора на 1 символ назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...