Как отсортировать числовые и буквенные столбцы в Vim
Использование Vim 6.0. Скажем, я редактирую этот файл:
sdfsdg
dfgdfg
34 12
2 4
45 1
34 5
Как отсортировать второй столбец?
Ответ 1
Если у вас есть доступная оболочка, выберите свои номера и запустите команду
:'<,'>!sort -n -k 2
Если вы наберете это в визуальном режиме, после ввода двоеточия маркеры '<,' > будут автоматически активироваться, и вам придется только набирать оставшуюся часть.
Этот тип команд (: [motion]!) называется фильтрацией. Вы можете узнать больше, посоветовавшись с помощью vim:
:h filter
Ответ 2
Сортировка всех строк во втором столбце N с помощью команды Vim sort, например.
Это будет сортировать числа, игнорируя текст, сопоставляемый заданным regexp. В вашем случае это второй столбец.
Ответ 4
Сортировка по второму столбцу, выбрав его в визуальном режиме (например, Control + v), затем запустите:
!sort
или сортировать по третьему столбцу
sort -k 3
или
:sort /.*\%3v/
Альтернативно выберите строки, которые вы хотите сортировать, с помощью команды Shift + v. Затем введите
!sort -k 3n
или используйте приведенный ниже код, чтобы сообщить Vim пропустить первые два слова в каждой строке и отсортировать по следующему:
:%sort /^\S\+\s\+\S\+\s\+/
или, например, сортировать по 8-й строке:
:sort /.*\%55v/
"Виртуальная" спецификация - это абсолютное число столбцов, которое обрабатывает пробелы + вкладки как один символ (вкратце, он не учитывает вкладки как восемь пробелов),