1

Допустим, у меня есть 10 строк:

1. Foo
2. Bar
3. Baz
4. Quz
5. Qaz

Как я мог выбрать строки 1-3 и 4-5.

2 ответа2

3

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

Структура " <register><action> .

Основной пример:

Сделайте визуальный выбор с помощью <C-v> (блок) или <S-v> (строка). Выберите свой первый блок.

Дерните / вырежьте его в регистр с помощью "qy or "qx . q может быть любой буквой, это просто идентификатор регистра.

Сделайте то же самое для следующего блока, но с другим регистром. "wy или "wx .

Теперь оба выбора находятся в регистрах q и w соответственно. Перейдите в нужное место и вставьте их с помощью "qp or "wp .

Если вы хотите добавить содержимое регистра w регистр q , вы можете сделать следующее в командном режиме.

:let @q .= @w

Вы также можете дергать несколько строк, даже не входя в визуальный режим. Команда "<register><number><action><movement> . Скажем, если вы хотите восстановить текущую строку на 3 строки в регистре z , введите "z3yj" . Вы должны увидеть 4 lines yanked подтверждения в строке состояния.

1

Использование регистров было бы лучшим способом сделать это. Но если вы настаиваете на несмежном визуальном отборе, то вот плагин, который делает это -

http://www.vim.org/scripts/script.php?script_id=953

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .