Vim: более быстрый способ выбора блоков текста в визуальном режиме

Я использую vim в течение некоторого времени, и знаю, что выбор блоков текста в визуальном режиме так же прост, как SHIFT + V и перемещение клавиши со стрелкой вверх или вниз по очереди, пока я не достиг конец блока текста, который я хочу выбрать.

Мой вопрос: есть ли более быстрый способ в визуальном режиме выбрать блок текста, например, с помощью SHIFT + V, за которым следует указать номер строки, в которой я хочу, чтобы выбор остановился? (например, через :35, где 35 - номер строки, которую я хочу выбрать до - это, очевидно, не работает, поэтому мой вопрос состоит в том, чтобы найти, как можно сделать что-то похожее на это...)

Ответ 1

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

Например, v / f o o будет выбирать из вашей текущей позиции в следующий экземпляр "foo". Если вы действительно хотели перейти к следующему экземпляру "foo" в строке 35, например, просто нажмите n, чтобы развернуть выделение до следующего экземпляра и т.д.

Обновление

Я не часто это делаю, но знаю, что некоторые люди широко используют метки для визуального выбора. Например, если я на линии 5, и я хочу выбрать строку 35, я могу нажать m a, чтобы поместить отметку a в строке 5, затем : 3 5, чтобы переместить к строке 35. Shift + v, чтобы ввести визуальный режим линии, и, наконец, ` a, чтобы выбрать обратно, чтобы отметить a.

Ответ 2

G                       Goto line [count], default last line, on the first
                        non-blank character linewise.  If 'startofline' not
                        set, keep the same column.
                        G is a one of jump-motions.

V35G обеспечивает то, что вы хотите

Ответ 3

Vim - это язык. Чтобы действительно понять Вима, вы должны знать язык. Многие команды - это глаголы, а у vim также есть объекты и предлоги.

V100G
V100gg

Это означает, что "выберите текущую строку до и включая строку 100".

Текстовые объекты находятся там, где есть большая часть мощности. Они вводят больше объектов с предлогами.

Vap

Это означает "выбрать вокруг текущего абзаца", который выбирает текущий абзац и пустую строку после него.

V2ap

Это означает "выбрать вокруг текущего абзаца и следующего абзаца".

}V-2ap

Это означает "перейти к концу текущего абзаца, а затем визуально выбрать его и предыдущий абзац".

Понимание Vim как языка поможет вам получить лучший пробег.

После того, как вы выбрали вниз, вы можете комбинировать с другими командами:

Vapd

С помощью приведенной выше команды вы можете выбрать вокруг абзаца и удалить его. Измените d на a y для копирования или для c для изменения или для p для вставки.

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

Ответ 4

v35G выберет все из курсора до строки 35.

v помещает вас в режим выбора, 35 указывает номер строки, к которой вы хотите перейти G.

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

Ответ 5

Для выбора количества строк:

shift + v 9j - выберите 10 строк

Ответ 6

Shift+V n j или Shift+V n k

Это выбирает текущую строку и следующие/предыдущие строки n. Мне это очень полезно.

Ответ 7

v 35 j

текст добавлен для минимум 30 символов

Ответ 9

v%

выберет весь блок.

Играйте также:

v}, vp, vs и т.д.

См. справку:

:help text-objects

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

Ответ 10

Вы всегда можете использовать антецедентные числа для повторения действий:

  • В визуальном режиме введите 3 5 ↓, и курсор сдвинется вниз 35 раз, выбрав следующие 35 строк
  • В обычном режиме:
    • удалить 35 строк 3 5 d d
    • вставить 35 раз 3 5 p
    • отменить 35 изменений 3 5 u
    • и др.

Ответ 11

Вы можете нажать vi}, чтобы выбрать блок, окруженный скобками {}, где находится ваш курсор.

Неважно, где вы находитесь внутри этого блока (просто убедитесь, что вы находитесь в самом дальнем). Также вы можете изменить { на все, что имеет пару типа ) или ].

Ответ 12

} означает перемещение курсора в следующий абзац. поэтому используйте v} для выбора всего абзаца.

Ответ 13

Для выбора всего в визуальном: Тип Esc, чтобы быть уверенным, что он находится в нормальном режиме

:0 

введите ENTER, чтобы перейти к началу файла

vG

Ответ 14

Это может пригодиться, чтобы знать:

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

Сегодня я увидел этот замечательный отзыв от здесь:

 :5mark < | 10mark > | normal gvV
 :5mark < | 10mark > | normal gv

Вы также можете использовать reset границы визуальных блоков:

m< .......... sets the visual mode start point
m> .......... sets the visual mode end point

Ответ 15

просто нажмите Shift v line number gg

пример: ваша текущая строка в строку 41 Просто нажмите Shift v 41 gg