Как выбрать из строки в строку в vi? - PullRequest
0 голосов
/ 14 сентября 2018

Я часто хочу выделить несколько строк в vi. например от строки 1 до строки 10.

Итак, что я обычно делаю, когда хочу перейти от строки к строке, я набираю :110, чтобы перейти к строке 110, например,

И, когда я хочу выбирать из строки в строку, я обычно нажимаю v, чтобы перейти в визуальный режим, а затем просто прокручиваю вниз, используя k или l.

Итак, для меня имеет смысл просто нажать v, а затем набрать :<line number>. но это не работает

Как выбрать строку X в строку Y в vi?

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Выбор сам по себе не имеет смысла; Вы обычно хотите вызвать команду на выбор. Многие команды, работающие с визуальным выбором, имеют соответствующую команду Ex . При этом прохождение визуального режима не требуется, если вы уже знаете точные диапазоны. Большим преимуществом визуального режима является то, что вы можете интерактивно и итеративно адаптировать выбранную область, если нет ни одного движения или текстового объекта.

Преимущество :help :range заключается в том, что вы можете кратко указать строки. Например, строки с 110 по 120 могут быть записаны как :110,120, но также как :110;+10.

0 голосов
/ 14 сентября 2018

Если вы установите как число, так и относительное число, станет легко увидеть целевую конечную строку.

:set number relativenumber

Итак, предположим, что вы находитесь в строке 10, а целевая строка показывает 11, вы начинаете свой выбор с заглавной буквы V, затем нажимаете 11j

V11j

Если в вашем блоке есть пустые строки до и после, просто введите vip (visuall внутренний абзац)

0 голосов
/ 14 сентября 2018

Предположим, вы хотите выделить из строки 10 в строку 20. Вы можете использовать:

1 0 G V 2 0 G

Разбивка:

  • 1 0 вводит 10 в буфер
  • G идет к номеру строки в буфере
  • V входит в режим визуальной линии
  • 2 0 вводит 20 в буфер
  • G переходит на номер строки в буфере

Источник и команда : здесь .

...