Con frecuencia trabajo con subversion en la consola usando su cliente svn
. Una de las tareas comunes es la visualización svn log
; sin embargo, su producción suele ser bastante masiva a pesar de las --limit
opciones. Me gustaría canalizar la salida a mi $PAGER
(que es less
para ser exacto), tal como git log
lo hace. Me pregunto si esto se puede lograr con zsh
funciones avanzadas de finalización; es decir, cada vez que escribo
svn log path1 path2 path3<Enter>
Se adjuntará la construcción de las tuberías:
svn log path1 path2 path3 | $PAGER
Esto me parece la forma en que funcionan los alias, pero desde el "otro lado".
¿Es esto posible en zsh?
Respuesta1
Puedes hacer esto con una función de shell. Sólo pon esto en tu ~/.zshrc
.
svn() {
if [ "$1" = "log" ]
then
command svn "$@" | less -FX
else
command svn "$@"
fi
}
Lo probé con bash
y p4
, pero debería funcionar igual con zsh
y svn
. Las -FX
opciones para less
indicarle que salga si todo el archivo cabe en la primera pantalla y que no cambie a la pantalla alternativa. Esto hace que parezca que less
no se usó en absoluto si la salida cabe en una pantalla.