Подтвердить что ты не робот

VIM Выберите всю строку

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

  • скопируйте строку: y y
  • удалить строку: d d
  • введите строку: > > или < <
  • выберите текущий абзац: V a p или V i p
  • удалить из текущей строки в конец файла 0 d g
  • выделите текущую строку, чтобы увидеть, где находится мой курсор: используйте :set cursorline в .vimrc файле

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

Ответ 3

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

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

Итак, вы можете ввести

v0o$

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


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

Который был бы просто yy

Ответ 4

Просто измените порядок операций. У вас его почти нет.

^,v,$

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

0,v,$