Подтвердить что ты не робот

Использование Emacs для $PAGER?

В UNIX есть много мест, где программы вызывают программу в $PAGER (обычно less или некоторая аналогичная команда) для отображения некоторого результата. Разумеется, многие из наиболее распространенных применений имеют замену Emacs (например, в случае man), но мне все же нравится использовать Emacs в качестве общего пейджера для всей системы. В идеале это означает, что вызовы PAGER попадают в временный буфер Emacs, подобный * Help *, буфер только для чтения, который вы можете перемещать и отклонять, нажав "q".

Я обычно запускаю оболочку через оболочку Mx, поэтому мой предполагаемый вариант использования заключается в том, что ввод команды типа "man foo" в окне * shell * приведет к созданию справочной страницы в другом окне, более или менее точно так же, как встроенная система * Help * работает.

4b9b3361

Ответ 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 вместо этого.