Руководство по сортировке строк в Vim

Rukovodstvo Po Sortirovke Strok V Vim



Для сортировки строк в 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, запустите команду :помогите разобраться команда.