Ошибка: для этого пользователя не запущен соответствующий VNC-сервер

Поместите это в исполняемый файл с именем «пейджер»:

#! /usr/bin/env bash

TEMP=/tmp/file-$$.txt
trap "rm -f $TEMP" EXIT HUP INT TERM

echo '-*- outline -*-' > $TEMP
cat "$@" >> $TEMP
emacs $TEMP 0<&1

Начальная строка временного текстового файла переводит emacs в режим структуры. Затем catдобавляет ноль -или -более указанного файла (с ). Наконец, редактор позволяет просматривать введенный текст в вашем любимом режиме, затем trap EXITочищает временный файл.

Нулевые файлы подразумевают чтение со стандартного ввода.

В обычных условиях git log | pagerне было бы хорошей поддержки, поскольку канал может мешать стандартному вводу, подключенному к клавиатуре. (Диагностика в этом случае :"стандартный ввод emacs :не является tty". )Ожидаем, что stdout будет подключен к терминалу, то есть pagerнаходится в конце конвейера. Учитывая, что 0<&1способен выйти из ситуации подключив стандартный ввод к тому же терминалу pty к которому подключен стандартный вывод, что позволяет успешно завершить сеанс редактирования.

0
19.03.2021, 21:40
1 ответ
1
28.04.2021, 22:58

Теги

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