2012-08-28 18 views
19

Realizo todo el trabajo de mi terminal en emacs y preferiría utilizar las herramientas mucho más ricas para moverse por la salida que "menos". Peor aún, cada vez que las páginas de aplicaciones están dentro de emacs, es terriblemente molesto porque es una terminal tonta.Desactivar todas las paginación en git

Si bien puedo cambiar cosas como "git help rm" para "M-x man git-rm", preferiría desactivar todas las paginación de todo en git. Entonces no tengo que buscar los encantamientos correctos.

git config --global core.pager cat 

Parece que no hace el truco.

git config --global man.viewer "man -P cat" 

causa problemas porque "man -P cat" no es un ejecutable válido.

¿Cómo puedo hacer que git simplemente descargue su salida?

+0

'git -c core.pager = cat log' funciona bien para mí. –

+0

Realmente me gustaría poder marcar dos respuestas como correctas, porque hay dos cosas que debes hacer para lograr esto. El primero es apagar core.pager (ver la respuesta de kan). El segundo es cambiar la búsqueda del hombre (ver la respuesta de geoff). Marqué a Geoff como la respuesta correcta porque ya había averiguado la primera, pero no pude obtener la segunda. –

+4

Agregué '(setenv" PAGER "" cat ")' a mi archivo de inicio de Emacs y todo acaba de funcionar. No se requiere configuración específica de git. Esto tiene el beneficio adicional de que en un shell git normal funciona con su buscapersonas habitual. –

Respuesta

6

De la lectura de la página de manual git help parece que debería ser capaz de

git config --global man.viewer catman 
git config --global man.catman.cmd "man -P cat" 

El valor de configuración man.viewer es un nombre de herramienta, no una línea de comandos (parcial). Entonces man.catman.cmd da el comando para usar para la herramienta catman.

Parece que establecer core.pager en cat debe encargarse de todo lo demás.

+0

Este es el que me faltaba. ¡Gracias por descubrir el paso adicional que necesitaba para que funcione! –

1

Puede probar alias git='git --no-pager'. O si eso no funciona por alguna razón dentro de emacs, podría crear un script de shell git en algún lugar anterior de su PATH que llame al git --no-pager real.

+0

Esta fue mi primera oportunidad y resolvió algunos de los problemas, pero no todos. Esto es más o menos equivalente a establecer core.pager al gato de arriba. –

10

Para desactivar la paginación para todos los comandos, establecer core.pager o GIT_PAGER-cat.

(c) http://www.kernel.org/pub/software/scm/git/docs/git-config.html

adición. También preguntó acerca de git help. En realidad no es un buscapersonas de git, es $MANPAGER. Entonces quizás para ti será suficiente hacer PAGER=cat.

PAGER=cat git help log funciona sin buscapersonas.

+1

'GIT_PAGER = cat git log' funcionó bien para mí –

+0

Como mencioné en la pregunta original, esto no resolvió todos los problemas. Sin duda es una solución a parte del "problema", por lo que un voto positivo está en orden. –

+0

Funciona bien también si configura 'GIT_PAGER' en una cadena vacía:' GIT_PAGER = git log' (al menos desde git 1.8.x). –

Cuestiones relacionadas