0 votes

Ouvrir un PDF à partir du terminal en utilisant la complétion de commande

J'ai l'habitude d'ouvrir un PDF sous Linux à partir du terminal. C'est-à-dire, via par exemple evince sample.pdf . La complétion de commande rend cette opération assez rapide. En particulier lorsqu'il y a beaucoup de fichiers avec le même nom mais des terminaisons différentes (comme après les compilations de pdflatex). Depuis macports, j'ai la complétion de commande bash, mais elle est inefficace pour la commande open dans le sens où je dois parcourir tous les fichiers jusqu'à ce que j'obtienne le fichier PDF. Existe-t-il un autre moyen d'ouvrir un PDF qui permette d'utiliser la complétion bash ? Ou un moyen de faire open ignorer certains types de fichiers ?

3voto

thrig Points 777

open est un outil générique d'ouverture de fichiers, de sorte qu'une complétion générique pour open doit correspondre à n'importe quoi open peut s'ouvrir. Une solution de contournement consiste à inventer un nouveau nom de commande, alias il à open puis spécifiez que la nouvelle commande doit compléter les fichiers PDF.

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

Vous pourriez alors utiliser viewpdf pour ouvrir les fichiers PDF par tabulation. Cependant, cette méthode est plutôt incomplète car elle ne correspond qu'aux noms de fichiers non qualifiés par un chemin de répertoire. Avec plus de complexité :

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

Qui doit être sauvegardé dans a bash fichier rc .

Si vous utilisez plutôt le Z-Shell zsh l'achèvement pourrait ressembler à

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X