2011-12-06 7 views
12

Hay muchos lugares en UNIX donde los programas llaman al programa en $ PAGER (generalmente less o algún comando similar) para mostrar algunos resultados. Es cierto que muchos de los usos más comunes tienen un reemplazo de Emacs (en el caso de man, por ejemplo), pero aún me gustaría una forma general de usar Emacs como mi buscapersonas en todo el sistema. Lo ideal sería que las llamadas a PAGER terminen en un búfer temporal de Emacs similar a * Ayuda *, un búfer de solo lectura que puede navegar y cerrar pulsando "q".

Normalmente ejecuto un shell a través de Mx shell, así que mi caso de uso previsto es escribir un comando como "man foo" en la ventana * shell * mostrará la página man en otra ventana, más o menos exactamente como el sistema integrado * Help * funciona.

+4

'less' es' más', pero también hay 'más' otro buscapersonas con encuadernaciones tipo emacs y un bonito color. – Daimrod

Respuesta

5

Para uso general de $PAGER, te puede interesar e-sink.

Para el caso específico de las páginas man, es mejor usar el modo man integrado de Emacs como se indica. Tengo esto en mi .bashrc:

man() 
{ 
    if [ "$TERM" == "eterm-color" ]; then 
     emacsclient -e "(man \"$1\")"; 
    else 
     command man "[email protected]"; 
    fi 
} 

Puesto que se utiliza shell-mode en lugar de ansi-term-mode como hago que o bien tienen que hacer este uso emacsclient todo el tiempo, o hacer algo como (setenv "WITHIN_EMACS" "1") en su archivo .emacs lo que puede cambiar en el $WITHIN_EMACS en su lugar.

+2

No necesita configurar su propia variable, emacs establece 'INSIDE_EMACS' para usted en' M-x shell'. Consulte [el manual] (https://www.gnu.org/s/libtool/manual/emacs/Interactive-Shell.html) – brontitall

+0

+1. Prefiero 'ansi-term-mode', así que no me di cuenta. –