Как перемещать блок или столбец текста
У меня есть следующий текст как простой случай:
...
abc xxx 123 456
wer xxx 345 678676
...
что мне нужно переместить блок текста xxx в другое место:
...
abc 123 xxx 456
wer 345 xxx 678676
...
Я думаю, что я использую визуальный режим для блокировки столбца текста, какие другие команды переместить блок в другое место?
Ответы
Ответ 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