Использование Emacs для $PAGER?
В UNIX есть много мест, где программы вызывают программу в $PAGER (обычно less
или некоторая аналогичная команда) для отображения некоторого результата. Разумеется, многие из наиболее распространенных применений имеют замену Emacs (например, в случае man
), но мне все же нравится использовать Emacs в качестве общего пейджера для всей системы. В идеале это означает, что вызовы PAGER попадают в временный буфер Emacs, подобный * Help *, буфер только для чтения, который вы можете перемещать и отклонять, нажав "q".
Я обычно запускаю оболочку через оболочку Mx, поэтому мой предполагаемый вариант использования заключается в том, что ввод команды типа "man foo" в окне * shell * приведет к созданию справочной страницы в другом окне, более или менее точно так же, как встроенная система * Help * работает.
Ответы
Ответ 1
Для общего использования $PAGER
вас может заинтересовать e-sink.
Для конкретного случая man-страниц лучше использовать встроенный режим Emacs, как вы заметили. У меня это в моем .bashrc
:
man ()
{
if [ "$TERM" == "eterm-color" ]; then
emacsclient -e "(man \"$1\")";
else
command man "[email protected]";
fi
}
Так как вы используете shell-mode
, а не ansi-term-mode
, как я, вам либо придется использовать это emacsclient все время, либо сделать что-то вроде (setenv "WITHIN_EMACS" "1")
в вашем файле .emacs
, чтобы вы могли включить $WITHIN_EMACS
вместо этого.