Я пытаюсь отсортировать содержание в своем текстовом файле с помощью команды
:1,$sort
Это приводит к строкам, расположенным в порядке на основе начального символа - символы, прописные буквы и затем строчные буквы
Теперь, если я использую
:1,$!sort
Я получаю другой порядок, который, кажется, не имеет смысла. Все выглядит перепутанным.
Таким образом, какова роль !
управлять здесь? Почему это портит все поведение сортировки? Согласно https://stackoverflow.com/a/1220118/2105986, это, как предполагается, оператор фильтра.
!
символ в vi
командный режим заставляет vi использовать внешнее приложение sort
отсортировать строки.
Ваша первая команда :1,$sort
причины vi
для использования это - внутренний механизм вида. В Вашей второй команде :1,$!sort
все строки проводятся и даются как стандартный вход к приложению sort
.
Просто попробуйте это vi
команда: :!ls -la
. Вы будете видеть вывод ls
и после нажатия Enter Вы возвращаетесь к vi
. Тот механизм должен обычно (например), компилировать код, написанный в vi
не закрываясь и вновь открыв файл.
Таким образом, Вы видите, с помощью !
в этом случае причины завершают различные механизмы. Человечность sort
утилита может отсортировать отличающийся, чем vi
внутренний.
Согласно тому ответу, 1,$!sort
исключая - версия режима. Вы вводите экс-режим путем ввода Q
в нормальном режиме. Нормальная версия режима этой команды 1G!Gsort
согласно этому, ТАК ответьте. Иначе, как хаос говорит, !
энергия причин, чтобы открыть оболочку и выполниться sort
в нем (таким образом, вызов sort
программа).