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

Как перемещать блок или столбец текста

У меня есть следующий текст как простой случай:

...
abc xxx 123 456
wer xxx 345 678676
...

что мне нужно переместить блок текста xxx в другое место:

...
abc 123 xxx 456
wer 345 xxx 678676
...

Я думаю, что я использую визуальный режим для блокировки столбца текста, какие другие команды переместить блок в другое место?

4b9b3361

Ответ 1

Вы должны использовать поэтапный визуальный режим (Ctrl + v). Затем d удалить блок, p или p, чтобы вставить блок.

Ответ 2

Попробуйте ссылку .


Маркировка текста (визуальный режим)

  • v - начать визуальный режим, пометить строки, затем выполнить команду (например, y-yank)
  • v - начать визуальный режим Linewise
  • o - перейти на другой конец отмеченной области
  • Ctrl + v - начать визуальный режим блока
  • o - перейти в другой угол блока
  • aw - отметить слово
  • ab - блок a() (с фигурными скобками)
  • ab - блок {} (с скобками)
  • ib - внутренний() блок
  • ib - внутренний {} блок
  • Esc - выйти из визуального режима

Визуальные команды

  • > - сдвиг вправо
  • < - сдвиг влево
  • y - вычеркнуть (скопировать) текст
  • d - удалить выделенный текст
  • ~ - корпус коммутатора

Вырезать и вставить

  • yy - yank (копировать) строку
  • 2yy - yank 2 строки
  • yw - слово yank
  • y$ - yank до конца строки
  • p - поместить (вставить) буфер обмена после курсора
  • p - поместить (вставить) перед курсором
  • dd - удалить (вырезать) строку
  • dw - удалить (вырезать) текущее слово
  • x - удалить (вырезать) текущий символ

Ответ 3

  • В VIM нажмите Ctrl + V, чтобы перейти в режим Visual Block.
  • Выберите нужные столбцы с помощью arrow keys и нажмите x, чтобы вырезать их в буфере.
  • Переместите курсор в столбец 1 строки 1 и нажмите P (thats capital P) в командном режиме.
  • Нажмите Ctrl + Shift + b, чтобы войти и выйти из него. (источник)

Ответ 4

Одна из немногих полезных команд, которые я узнал в начале обучения VIM, - это : 1,3 мес. 5 Это означает перемещение текстовой строки с 1 по 3 на строку 5.

Ответ 5

Использование внешней команды awk.

%!awk '{print $1,$3,$2,$4}' test.txt 

С чистым vim

:%s,\v(\w+) (\w+) (\w+) (\w+),\1 \3 \2 \4,g

Другое решение vim с использованием глобальной команды

:g/./normal wdwwP