5

Я ищу способ использовать emacs в качестве команды пейджера в оболочке (например, с помощью man или для прокрутки вывода асинхронной команды с большим объемом вывода). Я использую emacsclient в качестве моего $ EDITOR, но emacsclient не может использовать stdin в качестве входного файла. Есть ли расширение emacs, которое делает это, или, если это не так, пейджер, который использует большинство команд перемещения и поиска в буфере emacs?

Я знаю, что мог бы просто использовать Mx term или Mx ansi-term и установить для моей переменной $ PAGER значение 'cat', но я надеюсь, что есть кое-что, что будет интегрировано с моей нынешней привычкой использовать emacs и xterm по отдельности.

2 ответа2

1

less поддерживает большинство привязок клавиш движения буфера emacs, но не привязок поиска из коробки. Вы можете использовать lesskey для настройки привязки клавиш в соответствии с emacs.

0

Вы можете использовать этот скрипт в качестве пейджера:

#!/bin/sh
t=$(tempfile -s .emacs-pager) || exit 1
cat - >> $t
echo 'reading into emacs...'
emacsclient "$t"
rm -f -- $t

Сохраните его как что-то вроде ~/bin/emacs_pager.sh, сделайте его исполняемым (например, chmod +x ~/bin/emacs_pager.sh), а затем установите его как значение для переменной среды PAGER (например, export PAGER=~/bin/emacs_pager.sh).

Примечание: приведенный выше скрипт оболочки был взят из этого поста Reddit: https://www.reddit.com/r/emacs/comments/2rr1ha/use_a_buffer_as_pager_from_shellmode/cnik8wb/

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