Как выбрать / удалить до конца файла в vim / gvim?


42

Случайно мне удалось скопировать и вставить абзац в vim миллион раз. Как выбрать, а затем удалить текст из моей текущей позиции в конец файла?

В Windows это будет Ctrl-Shift-End, а затем Delete.


Вим отменил. Нажмите u.
Кусалананда

Ответы:


49
VGx

Войдите в визуальный режим, перейдите в конец файла, удалите.

В качестве альтернативы вы можете сделать:

Vggx

Удалить из текущей позиции в начало файла.


1
Тьфу, я никогда не буду помнить все эти ярлыки Vim. Ярлыки Windows намного более интуитивно понятны.
ripper234

Лично я считаю Vim более интуитивным. V, войдите в визуальный режим G, почти как «go», до конца файла. И х, удали.
Марк Шимански

10
@ ripper234: не пытайтесь запоминать «фрагменты» для выполнения конкретных задач, сосредоточьтесь на подкомандах. Это часть магии vim: использование этих небольших команд для создания более сложных и сложных вещей. Это почти бесконечно гибко.
Рейд

И это действительно помогает потратить время и прочитать соответствующие разделы справки vim с помощью: h command-you-need-help-for
Gjallar

1
Чтобы добавить к этому: бегите vimtutorиз командной строки, чтобы познакомиться с ними @ ripper234
Бернхард

48

dудаляется и Gперемещается в конец файла, поэтому dGудаляется до конца файла. Он включает в себя всю текущую строку, хотя; если вы находитесь на средней линии и хотите сохранить все до текущей позиции, вам нужно использовать метод Марка


+1 Другой способ сохранить часть текущей строки D<enter>dG: Dудалить в EOL, <enter>перейти к следующей строке, dGудалить в EOF.
Джим Л.

8

Еще один метод: :.,$d

Это означает, что в режиме ex, адрес текущей строки до конца и удалить.


7

Вы также можете просто напечатать, uчтобы отменить изменения, которые привели к ошибочному копированию-вставке.


не всегда возможно, см. «выбор». Представьте, что вы написали некоторый код в конце файла (и хотите, чтобы он где-то еще), dG позволяет вставлять с помощью p | P
relascope

2
vGx

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

В случае выбора в пределах одной строки вы должны использовать:

v$x

Который входит в Визуальный режим ("v") и переходит в конец строки ("$") и удаляет ("x") от текущей позиции до конца строки.


0

Vggx не работал для меня, но vG $ d работал. vG $ выбирает EOF (последний символ последней строки), а затем любую команду, которую вы хотите выполнить.

= Этот подход (команда после выбора), кажется, работает лучше. Конечно, я использую Vim 8.1 на Windows 10 и несколько лет спустя.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.