Visualización de la salida amplia del terminal en tmux

Visualización de la salida amplia del terminal en tmux

Disfruto usando psql con Tmux y Vim, usando Vim para editar mis consultas y enviarlas a psql en otro panel de Tmux. Este es un flujo de trabajo fantástico, muy superior a una GUI como DBeaver en mi opinión.pero:

No se necesitan muchas columnas para que psql no pueda mostrar los resultados correctamente, y las líneas ajustadas en una salida de psql parecen desastrosas.

Hasta ahora mis opciones son:

modo extendido

Con \xpuede ver las filas una a la vez mostradas más como un objeto JSON. Esto está bastante bien, pero es terrible para comparar filas entre sí.

Hacer la fuente más pequeña

Con un poco de alegría, ctrl -a veces puedo alejarme lo suficiente como para que los resultados se muestren en una sola línea. No hace falta decir que esta no es realmente una solución viable.

Haz que tmux corte los extremos de las líneas largas.

Como se muestraaquíes posible hacer que Tmux trunque filas en lugar de ajustarlas.

Esto es genial si solo me interesan las primeras columnas. Pero en realidad no es una forma sostenible de trabajar. ¿Qué pasa si quiero comparar columnas al final?


¿Alguien puede pensar en alguna vía que pueda explorar y que no haga que mis colegas que usan GUI se rían de mí por mi forma terriblemente inadecuada de ver tablas anchas?

No tiene que ser específico de psql o Tmux. Quizás sólo sea una forma de hacer que el terminal sea más ancho en general.

Respuesta1

Considerarpspg- buscapersonas creado por el desarrollador de PostgreSQL Pavel Stěhule.

Este buscapersonas fue diseñado principalmente para clientes de bases de datos terminales. Tiene muchas funciones útiles para paginar datos tabulares, como fijar columnas mientras se desplaza hacia la derecha. pspg se puede usar con otros clientes de base de datos o incluso con archivos csv como se muestra en el ejemplo en la página del proyecto github.

Para comenzar a usar pspg, instálelo y exporte PAGER o PSQL_PAGER en su entorno (tomado de la página del proyecto):

#for Postgres 10 and older
export PAGER="pspg"

#for postgres 11 and newer
export PSQL_PAGER="pspg"

o agregar lo siguiente a~/.psqlrc

\setenv PAGER pspg

También podría estar interesado en abrir el buscapersonas en el panel dividido, mientras mantiene su shell psql listo para otras consultas.

~/bin/pspg-wrapper

#!/usr/bin/env bash
if [[ $TMUX ]]
then
    tempfile=$(mktemp)
    cat - > "$tempfile"
    tmux splitw -p 50 "pspg $tempfile"
    unlink "$tempfile"
else # 
    pspg -F
fi

~/.psqlrc

\setenv PAGER ~/bin/pspg-wrapper

Si psql se está ejecutando entmuxluego abrepspgen el panel dividido; de lo contrario, simplemente ejecute pspg. -Fsignifica imprimir en stdout directamente, si la salida se ajusta a una sola pantalla

Respuesta2

segúneste comentarioPodemos desplazarnos hacia la izquierda/derecha utilizándolo less -Scomo nuestro buscapersonas.

Dado que psql respeta la PAGERenvvar, una buena forma de bajo impacto de lograr el desplazamiento hacia la izquierda/derecha podría ser crear un alias como:

alias psql="PAGER='less -S' psql"

Esto permite utilizar las teclas izquierda/derecha para moverse a través de tablas anchas en la salida de psql. Esto me parece una solución bastante buena.

información relacionada