Emacs как пейджер?

1695
Justin Smith

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

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

4
Я искал решение для вас, но боюсь, что нет никакого способа прочитать STDIN. Похоже, довольно ограничение .... Joe Casadonte 14 лет назад 0
технически это обман следующего вопроса - http://superuser.com/questions/31404/how-to-make-emacs-read-buffer-from-stdin-on-start Darren Hall 14 лет назад 2

2 ответа на вопрос

1
Craig

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

0
Bryan Oakley

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

#!/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/

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