0 votos

Abrir el PDF desde el terminal utilizando el completamiento de comandos

Estoy acostumbrado a la forma linuxera de abrir un PDF desde la terminal. Es decir, a través de, por ejemplo evince sample.pdf . La finalización de comandos hace que esto sea bastante rápido. En particular, cuando hay muchos archivos con el mismo nombre pero diferentes terminaciones (como después de las compilaciones de pdflatex). De macports tengo el bash-completion, pero es ineficaz para el open en el sentido de que tengo que recorrer todos los archivos hasta llegar al PDF. ¿Existe otra forma de abrir un PDF que permita emplear el comando bash? O una forma de hacer open ¿Ignorar ciertos tipos de archivos?

3voto

thrig Puntos 101

open es un abridor de archivos genérico, por lo que una terminación genérica para open debe coincidir con cualquier cosa open puede abrir. Una solución es inventar un nuevo nombre de comando, alias a open y luego especificar que el nuevo comando debe completar los archivos PDF.

bash-4.4$ alias viewpdf=open
bash-4.4$ complete -f -X '!*.@(pdf|PDF)' viewpdf

A continuación, puede utilizar viewpdf para abrir archivos PDF con pestañas. Sin embargo, esto es bastante incompleto, ya que sólo coincide con los nombres de archivo no calificados con ninguna ruta de directorio. Con más complejidad:

alias viewpdf=open
function _viewpdf()
{
   local word=${COMP_WORDS[COMP_CWORD]}
   COMPREPLY=($(compgen -f -X "!*.@(pdf|PDF)" -- "${word}"))
}
complete -d -X '.[^./]*' -F _viewpdf viewpdf

Que debe ser guardado en a bash archivo rc .

Si en lugar de ello utilizas el Z-Shell zsh la finalización podría ser así

REVERT=$options[COMPLETE_ALIASES]
setopt COMPLETE_ALIASES
alias viewpdf=open
compdef '_files -g "*.(pdf|PDF)"' viewpdf
options[COMPLETE_ALIASES]=$REVERT
unset REVERT

0 votos

Gracias por la respuesta, @thrig. Sólo para aclarar: esto funciona de forma análoga a este ¿verdad? ¿Veo correctamente que esto no depende de la terminación bash de macports, sino simplemente de la complete comando.

0 votos

Sí, pero tendrá que asegurarse de que está utilizando una versión moderna de bash y no el antiguo que Apple envía bajo /bin

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X