¿Cómo canalizar la salida de ciertos comandos a un localizador con zsh?


4

Con frecuencia estoy trabajando con subversion en la consola usando su cliente svn. Una de las tareas comunes es ver svn log; Sin embargo, su salida suele ser bastante masiva a pesar de la --limitopción. Me gustaría canalizar la salida a mi $PAGER(que es lesspara ser exactos), al igual que lo git loghace. Me pregunto si esto se puede lograr con zshfunciones avanzadas de finalización; es decir, cada vez que escribo

svn log path1 path2 path3<Enter>

la construcción de la tubería se agregará:

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?

Respuestas:


6

Puede hacer esto con una función de shell. Solo pon esto en tu ~/.zshrc.

svn() {
    if [ "$1" = "log" ]
    then
        command svn "$@" | less -FX
    else
        command svn "$@"
    fi
}

He probado eso con bashy p4, pero debería funcionar igual con zshy svn. Las -FXopciones para lessdecirle que se cierre si todo el archivo cabe en la primera pantalla y no cambiar a la pantalla alternativa. Esto hace que parezca que lessno se usó en absoluto si la salida cabe en una pantalla.


Me gusta la solucion.
ulidtko
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.