1

У меня есть список в файле, и, скажем, я хочу отправить его в командлет sort (который предназначен только для описания целей, любой командлет может выступать в качестве фильтра)

Моя настройка оболочки vim:

set shell=powershell
set shellcmdflag=-command

Что я сейчас делаю:

:.,.+5w c:\out.txt| r !cat c:\out.txt | sort

Это работает, но слишком многословно, и мне не нравится, что мне нужно указывать имя файла дважды. На самом деле, я хотел бы регулярно использовать VIM :%!sort но отображается ошибка "E485 - не удается прочитать файл .../Temp/Vi..tmp»

Он также не может выполнить внешнюю сортировку с помощью :w !sort по :

powershell -command "sort <C:/Users/MMILIC~1.ITR/AppData/Local/Temp/VIi696.tmp"
...
The '<' operator is reserved for future use.

В этом случае проблема заключается в том, что PowerShell не поддерживает < перенаправление, но я не вижу никакой опции в vim для его настройки (кроме создания собственной команды и использования VimL).

1 ответ1

0

Нет <? Нет проблем! Используйте функцию системы Vims system() !

Vim Help:

 system({expr} [, {input}])
 Get the output of the shell command {expr}...

В частности, для сортировки я бы порекомендовал функцию внутренней sort Vims. (:h sort) Большую часть времени я использую его для визуальных выборов: select :sort<CR> , done.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .