2012-04-19 24 views
5

Recuerdo en un video de Git-tutorial que el terminal del usuario (probablemente ZSH) se dividió en dos; uno para los comandos de terminal estándar, y debajo de eso había algo así como la representación gráfica del registro de Git. Siempre fue visible en la parte inferior de la terminal con bonitos colores.Git Iniciar sesión ZSH Terminal

terminal screen.

¿Cómo es posible dividir la pantalla del terminal en dos y visualizar el registro de Git (algo así como git log --pretty=format:'%h : %s' --graph) en la pantalla del terminal?

ACTUALIZACIÓN: Encontré el video en Vimeo, http://vimeo.com/16018419. Estoy tratando de hacer exactamente la misma configuración en mi terminal ZSH.

+1

Desde el video se ve como que está haciendo la división de la ventana en la pantalla de GNU. Si mira alrededor de 6:28, también tiene que actualizar manualmente la pantalla de alguna manera. Usted podría lograr eso simplemente haciendo una división de pantalla estándar y presionando q/arriba para volver a ejecutar el comando; también podría ejecutarlo en un bucle para hacer eso automáticamente cada 10 segundos o lo que sea. – Dougal

+0

Sí, parece que está actualizando manualmente. En este punto, puedo ir con la actualización manual, no hay problema. ¿Estás seguro de dividir la pantalla GNU? Creo que está haciendo otra cosa. Si miras la barra de desplazamiento a la derecha, se cubre de arriba a abajo. Y él está refrescando, no escribiendo un comando de shell. No sé, quizás tengas razón, pero creo que está haciendo algo diferente. –

+1

Si miras la barra de título de la terminal, dice la pantalla, y esas líneas de estado me parecen una pantalla. Y la barra de desplazamiento está en Terminal.app/iTerm.app, no en la pantalla, por lo que tiene sentido que cubra todo. No estoy seguro de cómo se está refrescando (tiene razón al decir que no está volviendo a ejecutar un comando de shell), pero volver a ejecutar debería tener el mismo efecto ... tal vez tiene un proceso en segundo plano para escribir en un archivo y está haciendo algún editor encantamiento para volver a cargar el archivo (o simplemente volver a ejecutar el comando dentro del editor), no estoy seguro. – Dougal

Respuesta

6

con tmux, puede dividir el panel zsh -c while :; do sleep 60; git log ...; done y esto debería lograr una salida de registro git automágicamente refrescante en un panel.

suministre [-vh] [porcentaje] a panel dividido para dividir vert u horiz con un porcentaje dado del terminal. iirc, se divide desde el lado inferior y/o derecho del terminal, por lo tanto, ajuste el porcentaje en consecuencia.

esto debería tener el efecto deseado de tener git log en un panel al lado de $ EDITOR (o abajo), con las dimensiones adecuadas y actualizar automágicamente cada minuto. siéntase libre de alterar o limpiar la sintaxis para satisfacer sus necesidades.

EDITAR: reaparecer un panel en tmux se puede hacer con el tmux builtin respawn-pane. puede enlazar una clave algo como esto para conseguir un simple atajo

-n M-r-panel de reaparición git -t clave bind-: 0,1 [comando]

en este ejemplo, asumo 3 cosas. primero, que tiene una sesión de tmux con nombre (llamada git, pero esto es arbitrario ya su elección usando rename-session en tmux o iniciando la sesión con new-session -s name). segundo, que el registro de git (que es lo que queremos actualizar) está en la ventana del índice 0 (esta es la primera ventana abierta en una sesión, por defecto, a menos que establezca base-index en otro) y el panel del índice 1.

así que aquí, vuelve a aparecer el segundo panel de la primera ventana en la sesión "git" presionando alt-r. si usa el ciclo que proporcioné antes, esto no es necesario porque el registro se actualizará después de cada suspensión. eso puede considerarse un desperdicio para algunos, por lo que puedes decidir reaparecer arbitrariamente este panel a tu antojo.

[comando] es opcional. tmux respawn-pane ejecutará el comando que se dio cuando el panel se generó al principio. en este ejemplo, será el bucle while por defecto. si omite el ciclo y en su lugar solo usa split-pane [-hv] [percent] "git log ...", entonces no proporcione el parámetro de comando opcional ya que el panel lo ejecutará inteligentemente. proporcionar el parámetro de comando a respawn-pane tendrá prioridad sobre el comando inicial utilizado al generar el panel.

por último, si no se proporciona el parámetro de comando para split-pane inicialmente, tmux se ejecutará cualquier valor es default-command.

por lo que hay una explicación demasiado detallada de cómo hacer lo que este video hace de múltiples maneras.

2

git log --oneline --graph --decorate --color=always para la salida de registro de git.

La función de división de terminales depende de su consola.

+0

Conozco el comando de registro de Git. Utilizo ZSH en Ubuntu 12 y Mac OS X 1.7 y estaba buscando dividir la terminal en dos y mostrar ese registro de Git en la parte inferior de la terminal. Gracias de todos modos :) –

+0

@BurakErdem entonces tu pregunta parece pertenecer a SuperUser. – KurzedMetal

1

bien,

él está utilizando iTerm en Mac, la división se hace por defecto, sólo tiene que ir de menú o utilizar cualquier comando corto. Puede tomar esto con terminator en ubuntu/linux. Si desea continuar utilizando gnome-terminal, puede usar screen o tmux para simular esto.

En log, está usando tig (http://jonas.nitro.dk/tig/): una herramienta de navegación git. Se puede instalar fácilmente. Por cierto, puede usar watch para actualizar automáticamente su registro, para que pueda tener un "autolog" en otra parte de su terminal. ;)

watch git log --graph 

Aquí, estoy usando tmux en mi consola:

Using tmux with some applications

Cuestiones relacionadas