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

Как перевернуть линии визуального выделения в vim?

Я хочу сделать визуальный выбор и перевернуть его так, чтобы первая строка выбора была внизу. From:

<other_stuff>
The
wheels
go
round.
<more_stuff>

Визуальный выберите отправку, а затем переверните:

<other_stuff>
round.
go
wheels
The
<more_stuff>

Любая идея, как это сделать просто. Я бы предпочел не устанавливать плагин для этого.

4b9b3361

Ответ 1

Когда вы делаете визуальный выбор, Vim автоматически делает закладки '< и '> в начале и конце блока соответственно, поэтому вы можете делать то, что хотите, несколькими способами.

В нормальном режиме: '>dd'<P

Как команда ex: :'>d | '<-1 put

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

изменить

Упс, я неправильно понял вопрос и думал, что вам нужна только последняя строка, поставленная в начале, но вы хотите, чтобы весь блок изменился на противоположный. Простейшее решение, если вы находитесь в системе unix:

:'<,'>!tac

Он прокладывает линии через программу unix "обратная кошка".

Ответ 2

В соответствии с :help 12.4 вы можете пометить первую строку с помощью mt, перейти к последней строке, которую хотите изменить, а затем использовать команду :'t+1,.g/^/m 't

Ответ 3

Для тех, кому удобнее Визуальный режим:
 1. Определите номер строки над выбором, который вы хотите перевернуть, используя :set nu.
 2. Используйте Shift-V, чтобы выделить выделение, которое вы хотите перевернуть (визуальный режим).
 3. :g/^/m <Line number from step 1>.

Обратите внимание, что в визуальном режиме он будет автоматически отображаться как    :'<,'>g/^/m <Line number>, когда вы вводите команду из 3.

Эта команда работает, перемещая выделение по одной строке за раз в номер строки, который вы ему даете. Когда второй элемент вводится в указанный номер строки, он подталкивает первый до номера строки + 1. Затем третий подталкивает первый и второй вниз и так далее, пока весь список не будет вдавлен в однострочное число, в результате чего обратный упорядоченный список.