VIM выбрать всю строку

Как вы выбираете одну строку в VIM, когда ваш курсор находится в какой-то случайной точке этой строки?

Я знаю, что вы можете сделать (v, $), чтобы добраться до конца строки, или (v, ^), чтобы перейти к началу, но когда вы делаете (v, $, ^), это логически не выбирает весь строка, он выбирает от курсора до конца, затем переключает его на курсор до начала... Так что этот подход, конечно, не работает.


vim
person appleLover    schedule 06.09.2013    source источник
comment
Я действительно рекомендую вам vimtutor. Он был установлен с вашим Vim и учит вас всем основным вещам о Vim. Просто запустите vimtutor из командной строки.   -  person glts    schedule 07.09.2013
comment
FDinoff, скопируй, если я правильно помню.   -  person appleLover    schedule 07.09.2013
comment
Если все, что вы делаете, это копируете... разве yy недостаточно? Или без новой строки 0y$   -  person FDinoff    schedule 07.09.2013
comment
FDinoff, да, вы правы. Спасибо.   -  person appleLover    schedule 07.09.2013


Ответы (5)


Заглавная V выбирает текущую строку одним нажатием клавиши; два, если включить "shift" в shift+v.

person meagar    schedule 06.09.2013
comment
Ваш ответ немного отличается от того, что описывает вопрос: он включает в себя новую строку строки, т. Е. Когда вы delete выбор, здесь вся строка исчезает, тогда как при подходе к вопросу строка только очищается, но остается (пустой). - person Ingo Karkat; 07.09.2013
comment
Обратите внимание, что это не то, что ищет OP. Это выбирает новую строку (\r) в конце строки, но 0v$ нет. Вы можете попробовать это с p после вашего выбора. - person Kent; 07.09.2013

V будет прямым ответом. Однако мне редко приходится это делать, потому что выбор текущей строки обычно является частью более крупной задачи. Пример таких задач включает копирование строки и удаление строки. Как правило, есть лучший способ выполнить задачу в целом. Вот некоторые из задач, которые я могу придумать:

  • скопируйте строку: yy
  • удалите строку: dd
  • отступ строки: или
  • выберите текущий абзац: vap или vip
  • удалить с текущей строки до конца файла 0dG
  • выделите текущую строку, чтобы увидеть, где находится мой курсор: используйте :set cursorline в файле .vimrc

Одним из случаев, когда я использую V, является выделение нескольких строк, которые не являются абзацем или другим текстовым объектом. В этом случае вам может пригодиться совет: находясь в режиме выбора, вы можете использовать o для перемещения курсора между началом и концом выделения.

person Jason Jun Ge    schedule 08.09.2013
comment
Обычно мне приходится выбирать строку, чтобы выровнять часть текста, которую нельзя выбрать по более простым критериям. - person Hi-Angel; 25.02.2015
comment
Да, будет случай, когда нужен визуальный режим V :) Еще два совета, которые могут быть полезны: - если вы хотите сделать отступ для текущей строки и следующей строки, используйте ›j. Для удаления используйте dj. Я использую это довольно часто. - после того, как вы выполнили какую-то операцию и хотите повторно выбрать то, что вы выбрали ранее, используйте gv. Я использую это все время. - person Jason Jun Ge; 02.08.2015

Хотя это может быть больше нажатий клавиш.

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

Таким образом, вы можете ввести

v0o$

Чтобы выделить всю строку. Взгляните на :h visual-change


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

Что было бы просто yy

person FDinoff    schedule 06.09.2013
comment
добавьте этот noremap \v v0o$ в свой vimrc, чтобы вы могли использовать его как ярлык. - person Alan Dong; 17.02.2015

Просто измените порядок действий. У тебя почти получилось.

^,v,$

Или, как предложил @Kent: потому что ^ переходит к первому непустому символу, если в строке есть начальные пробелы:

0,v,$
person samsquanch    schedule 06.09.2013
comment
Я бы нажал 0v$, потому что ^ идет к первому непустому символу. если в строке есть начальные пробелы, пробелы не будут выбраны. - person Kent; 07.09.2013
comment
Кент, не могли бы вы объяснить логику, которую использует vim, когда видит код 0v$ - person appleLover; 07.09.2013
comment
0 перемещает курсор в начало строки v включает визуальный режим $ переходит в конец строки - person oromoiluig; 18.08.2016
comment
в каком режиме вы входите в это? - person Jas0n; 11.07.2020

Я знаю, что эта тема очень старая, но у меня только что был тот же вопрос. Этот поток появился первым, но я нашел ответ, отличный от любого найденного здесь. Используйте «V», чтобы выбрать целые строки. Это просто. Один символ для выбора всей текущей строки.

person downtime    schedule 25.06.2020