Для сортировки строк в Vim вы можете использовать встроенный Сортировать команда, которая сортирует строки по определенному диапазону. Обычно все строки в документе сортируются, если не указан диапазон.
Например, если вы хотите отсортировать весь документ, используйте команду :Сортировать команда в НОРМАЛЬНОМ режиме. С другой стороны, если вы хотите отсортировать только определенные строки, используйте :x,y сортировка команда, где Икс и и определить диапазон по номеру строки Икс к и .
Сортировка — одна из важнейших функций, необходимых при редактировании документов. Vim не уступает любому продвинутому редактору, когда речь идет о предоставлении уникальных функций, таких как сортировка. Поэтому в этом руководстве я буду объяснять встроенные возможности Vim. Сортировать и как использовать ее различными способами для сортировки строк.
Примечание: Инструкции и команды, упомянутые в этом руководстве, выполняются в Linux (Ubuntu 22.04). Vim — кроссплатформенный текстовый редактор, и эти команды будут работать без каких-либо ошибок также в macOS и Windows.
Сортировать все строки
Чтобы отсортировать все строки в документе, выполните команду Сортировать команда в НОРМАЛЬНОМ режиме.
:Сортировать
По умолчанию Сортировать команда отсортирует строки в лексикографическом порядке.
Обратите внимание: если в вашем файле есть пустые строки, команда сортировки поместит пустые строки вверху фактической сортировки текста.
Сортировать выбранные строки
Чтобы отсортировать выбранные строки, сначала нам нужно выбрать их в режиме выбора. А чтобы включить режим выбора, нажмите в и выберите строки с помощью час , дж , к, и л клавиши или кнопки направления.
Vim также имеет режим выбора для конкретной строки, называемый ВИЗУАЛЬНАЯ ЛИНИЯ режим. Нажимать В (шифт+в) чтобы позволить ВИЗУАЛЬНАЯ ЛИНИЯ режим выбора строк.
После выбора строк вы увидите ‘ <, ' > в командной строке, которая представляет диапазон выбора. ' < указывал на первую линию визуального выделения, а « > указывает на последнее.
Теперь просто введите Сортировать команду и нажмите клавишу возврата, чтобы применить сортировку к выбранным строкам, как показано на следующем GIF-изображении.
Сортировка ранжированных линий
Диапазон строк может быть передан до Сортировать команда сортировки строк. :установить номер Команда может использоваться для активации номера строки в Vim, что упрощает идентификацию номера строки.
Например, чтобы отсортировать строки от строки номер 1 до строки номер 4, используйте команду :1,4 сорт команда.
: 1 , 4 Сортировать
Как видно из приведенного выше вывода, сортируются только указанные строки.
Сортировать в обратном порядке
Как упоминалось ранее, поведение по умолчанию Сортировать Команда заключается в сортировке строк в лексикографическом порядке. Чтобы отсортировать строки нелексическим способом, добавьте восклицательный знак ( ! ) после Сортировать команда.
:Сортировать !
Сортировать по локали
Компьютеры работают по всему миру, имеют разные языки, разные наборы символов и правил. Когда дело доходит до сортировки по локали, это имеет значение. Например, если вы живете в Японии и хотите отсортировать строки по этому языковому стандарту, вам необходимо указать его. Сортировать Команда также позволяет установить опцию локали с помощью л флаг.
Чтобы проверить текущий языковой стандарт сортировки, используйте команду :язык команда.
:язык
Для сортировки с использованием текущей локали используйте:
: удачи мне
Примечание: Эта опция может работать неправильно в системах на базе macOS.
Сортировать по номеру
Чтобы отсортировать строки по первому десятичному числу в строке, используйте команду н флаг с Сортировать команда. По умолчанию сортировка будет происходить в порядке возрастания.
:сортировать н
Для сортировки по убыванию используйте ! символ после команды.
:Сортировать ! н
Разница между Сортировать и сортировать n заключается в том, что команда сортировки лексически сортирует строки, игнорируя содержащиеся в них числа. Если вы хотите отсортировать по числам, добавьте н флаг с помощью команды сортировки.
Например, строки в следующем файле также содержат буквы и цифры. Когда мы сортируем его, применяя Сортировать только команда, эти строки будут отсортированы в алфавитном порядке. С другой стороны, применяя сортировать n Команда отсортирует строки по номерам, как показано на следующем изображении.
Некоторые другие варианты числовой сортировки упомянуты в следующей таблице.
ж | Сортировка чисел с плавающей запятой |
б | Сортировка двоичных чисел |
О | Сортировка восьмеричных чисел |
час | Сортировка шестнадцатеричных чисел |
Сортировать по меткам
В Vim метки используются для установки определенных позиций в файле для облегчения навигации по файлу с сотнями строк. Метки можно использовать для выполнения операции сортировки с помощью Сортировать команда.
Предположим, вы поставили две отметки а и б .
Итак, чтобы отсортировать все строки от отметки а помечать б , используйте следующую команду.
: 'а,' б Сортировать
Одинарная кавычка ( ' ) используется для доступа к меткам.
Сортировка по регулярному выражению (RegEx)
Регулярное выражение (RegEx) — это один из распространенных способов сортировки строк путем определения шаблона с помощью Сортировать команда.
Например, чтобы отсортировать строки по столбцу, содержащему буквы и цифры, используйте команду /[a-z]*[0-9]+/ узор с Сортировать команда. р флаг после Сортировать Команда используется для указания команде выполнять сортировку на основе упомянутого шаблона.
:сортировать р / [ а-я ] * [ 0 - 9 ] + /
Как вы можете видеть на изображении выше, последний столбец отсортирован в алфавитном порядке. Чтобы отсортировать столбец в числовом виде, просто вставьте н флаг.
Примечание: Я пропустил первые строки, определив диапазон из строки 2,5.
р Флаг позволяет сортировать файл по заданным шаблонам. Без р флаг, команда сортировки отсортирует все строки, не соответствующие шаблону.
Удалите повторяющиеся строки
Самый быстрый способ удалить повторяющиеся строки в файле — использовать команду Сортировать команда с помощью в флаг, который представляет уникальность.
:разнообразие ты
Обратите внимание, что использование этого метода для удаления повторяющихся строк также приведет к сортировке строк, что во многих ситуациях может быть нежелательным. Используйте альтернативные методы, такие как регулярное выражение, для удаления повторяющихся строк в файле без необходимости сортировки.
Сортировка строк по столбцу
Существует два метода сортировки строк в Vim по столбцам. Первый метод использует внешнюю команду сортировки Linux, а второй — встроенную команду сортировки.
Внешнюю команду проще реализовать по сравнению с командой сортировки по умолчанию. Обратите внимание, что внешние команды не являются командами Vim по умолчанию. Это означает любую команду, поддерживаемую операционной системой.
Давайте разберемся, как это работает в Vim.
Чтобы использовать любую внешнюю команду в Vim, ! Символ используется перед этой командой. Предположим, у нас есть файл, разделенный запятыми (CSV), и мы хотим отсортировать его по третьему столбцу. Команда будет
: %! Сортировать -т ',' -k3
% указывает весь буфер как выборку. -т Флаг используется для определения разделителя полей, который может быть запятой, двоеточием или даже пробелом. -к флаг — это ключ, указывающий позицию в строке, а к2 означает второе поле после указанного разделителя.
В примере я упомянул диапазон вместо % чтобы пропустить первую строку.
: 2 , 5 ! Сортировать -т ',' -k3
Внешний Сортировать Команда может быть полезна и во многих других отношениях, поскольку она предлагает различные варианты сортировки, такие как перетасовка, случайная сортировка и слияние. Чтобы узнать больше о команде сортировки Linux, используйте команду чувак помоги команда.
С другой стороны, чтобы использовать встроенную в Vim Сортировать команда, с командой сортировки будет использоваться шаблон регулярного выражения.
:Сортировать / \в^ ( . { - } , ) { 2 } /
В приведенной выше команде:
- \в представляет вертикальную вкладку
- ^ указывает на начало строки
- (.{-},) это группа, которая будет в которой .{-} это не жадная версия .* и , это поле разделения
- {2} представляет первые два столбца, которые нужно пропустить
Видно, что р Флаг не используется с шаблоном, что означает, что шаблон пропустит любой совпавший столбец и отсортирует столбцы после шаблона. В этом случае файл будет отсортирован по третьему столбцу. Опять же, в следующем примере, чтобы пропустить первую строку, я использовал диапазон 2,5.
Основное различие между .* и .{-} в том, что .{-} будет обрабатывать алгоритм первого совпадения по кратчайшему совпадению, в то время как .* будет максимально соответствовать. Например, в строке wxyz х.*у будет соответствовать всей строке, пока х.{-}у будет соответствовать только xy.
Сортировка строк без учета регистра
Если вы сортируете строки, начинающиеся с прописных и нижних букв, то команда сортировки сначала сортирует строки с заглавными буквами. Что ж, чтобы игнорировать чувствительность к регистру, используйте я флаг.
Как вы можете видеть на следующем изображении, несортированные и отсортированные строки с :Сортировать и :сортировать я команды.
Заключение
Сортировку в Vim можно легко выполнить с помощью встроенной функции Vim. Сортировать команда. По умолчанию строки сортируются в алфавитном порядке, однако, если вы хотите отсортировать их в обратном порядке, используйте оператор ! подпишите после команды. Команда сортировки обычно сортирует весь буфер; диапазон также можно определить с помощью разделителя-запятой. н флаг используется для числовой сортировки, а также для удаления повторяющихся строк в используется флаг. Кроме того, для улучшения процесса сортировки внешний Сортировать Команда также может быть использована в Vim.
Чтобы узнать больше о сортировке в Vim, запустите команду :помогите разобраться команда.