Как направить вывод поиска по конвейеру в качестве входных для diff?

Запуск в конвейере

Попробуйте:

quickedit() (  trap 'rm ~/temp$$' exit; vim ~/temp$$ >/dev/tty; cat ~/temp$$ )

Ключ в том, что для нормального использования vim vim требует, чтобы стандартный вывод был терминалом. Мы достигаем этого с помощью перенаправления > / dev / tty .

В целях безопасности я помещаю временный файл в домашний каталог пользователя. Для получения дополнительной информации см. Часто задаваемый вопрос Грега 062 . Это избавляет от необходимости использовать непонятное имя файла.

Пример:

Когда открывается vim , я набираю Эта функция выполнена успешно. и сохраните файл.Результат на экране выглядит следующим образом:

$ quickedit | grep succeeded
This function succeeded.

Несмотря на то, что вывод quickedit перенаправлен в конвейер, vim по-прежнему работает нормально, потому что мы предоставили ему прямой доступ к / dev / tty .

Запуск программы из vim

Как я упоминал в комментариях, vim может передать файл команде по конвейеру. Например, из vim введите команду : w! Pandoc -o file.pdf (Примечание: пробел между w и! Обязателен).

3
16.10.2015, 12:44
0 ответов

Теги

Похожие вопросы