Abra el PDF desde la terminal usando el comando completado

0

Estoy acostumbrado a la forma en linux de abrir un PDF desde el terminal. Es decir, a través de, por ejemplo. %código%. La finalización del comando hace que esto sea bastante rápido. En particular, cuando hay muchos archivos con el mismo nombre pero con finales diferentes (como después de compilaciones de pdflatex). Desde macports tengo el bash-completed, pero no es efectivo para el comando evince sample.pdf en el sentido de que tengo que recorrer todos los archivos hasta obtener el PDF. ¿Hay alguna otra forma de abrir un PDF que permita emplear la finalización de bash? ¿O una forma de hacer que open ignore ciertos tipos de archivos?

    
pregunta user254985 07.02.2018 - 12:02

1 respuesta

3

open es un abridor de archivos genérico, por lo que una finalización genérica para open debe coincidir con cualquier elemento que open pueda abrir. Una solución es inventar un nuevo nombre de comando, alias it to 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

Luego, podría usar viewpdf para abrir y cerrar archivos PDF. Sin embargo, esto es bastante incompleto, ya que solo hace coincidir nombres de archivos no calificados con cualquier 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 guardarse en un archivo bash rc .

Si, en cambio, utiliza Z-Shell zsh , la finalización podría ser como

REVERT=$options[COMPLETE_ALIASES]
setopt COMPLETE_ALIASES
alias viewpdf=open
compdef '_files -g "*.(pdf|PDF)"' viewpdf
options[COMPLETE_ALIASES]=$REVERT
unset REVERT
    
respondido por el thrig 07.02.2018 - 23:14

Lea otras preguntas en las etiquetas