Я уже знаю, как сделать это с
:%s/\(\S\+\)^I\(\S\+\)/\2^I\1/
но я чувствую, что ввожу способ очень наполнить. Существует ли инструмент для очистки, более быстрый способ сделать это?
Если столбцы выровнены, вы можете использовать режим визуального блока, нажав Ctrl + V, а затем вырезать и вставить. Если столбцы не выровнены, сначала увеличьте ширину табуляции, чтобы она была длиннее, чем содержимое рассматриваемых столбцов.
Лучший способ сделать это в VIM - не делать этого с VIM и (повторно) использовать существующие инструменты для работы. * Специальное решение для NIX:
:%!awk -F \\t '{print $2 FS $1}'
Передаст содержимое файла с разделителями табуляции по конвейеру в awk
, и он будет печатать первые два столбца с заменой мест, разделенных разделителем полей (FS). awk
также можно найти для Windows.
П.С. Первоначально я хотел написать то же самое с cut
, но по какой-то причине в моей системе cut -f 2,1
(-d не требуется, поскольку TAB является разделителем по умолчанию) напечатал поля в том же порядке, не меняются местами: |