Как присоединиться к каждой второй строке в Vim?

Я хотел бы присоединиться много (~1000) из строк, но только каждое нечетное со следующим. Вручную я мог сделать

Jj

500 раз и сделайте его. Однако, как я могу выполнить эти два оператора 500 раз в одной единственной команде? Ввод

500Jj

присоединится к следующим 500 строкам и затем спуску по одной строке.

Пример:

Я имею:

a
b
c
d
e
f
g
h

Я хочу:

a b
c d
e f
g h

Править: Я пытался отобразиться:

:map X Jj
500X

но по-видимому я должен прочитать отображающиеся документы снова. Не работает.

28
задан 11.06.2013, 21:17

4 ответа

я сделал бы это:

  1. начните записывать макрос 'q': qqJjq

  2. воспроизведите макрос 'q' 500 раз: 500@q

(на самом деле это не макрос, названный 'q', это - именованный регистр, названный 'q'. вместо в интерактивном режиме заполняются, которые регистрируются как в 1., Вы могли также сделать :let @q = "Jj" и затем сделайте 2.)

30
ответ дан 07.12.2019, 09:23

Сделать это на каждой строке файла:

:%normal J

или, короче:

:%norm J

Чтобы сделать это на просто части файла, выберите строки с V или получите диапазон некоторый другой путь:

:'<,'>global/^/normal J

или, короче:

:'<,'>g/^/norm J
24
ответ дан 07.12.2019, 09:23

Мы можем также играть с:

'<,'>g//s/.*\zs\n\ze.*/ /
0
ответ дан 07.12.2019, 09:23

Я не пользователь Vim, но проверка документов онлайн, на которые это похоже

500(Jj) 

мог бы работать, так как это анализирует вещи круглые скобки внутренностей как единица.

-1
ответ дан 07.12.2019, 09:23

Теги

Похожие вопросы