Apri PDF dal terminale utilizzando il completamento del comando

0

Sono abituato al modo linux di aprire un PDF dal terminale. Cioè, per es. %codice%. Il completamento dei comandi lo rende abbastanza veloce. In particolare quando ci sono molti file con lo stesso nome ma finali diversi (come dopo le compilation in pdflatex). Da macports ho il bash-completion, ma è inefficace per il comando evince sample.pdf nel senso che devo scorrere tutti i file fino a ottenere quello PDF. C'è un altro modo di aprire un PDF che permetta di utilizzare il bash-completamento? O un modo per fare in modo che% co_de ignori determinati tipi di file?

    
posta user254985 07.02.2018 - 12:02
fonte

1 risposta

3

open è un generico file-opener-thing, quindi un completamento generico per open deve corrispondere a qualsiasi cosa che open può aprire. Una soluzione alternativa consiste nell'inventare un nuovo nome comando, alias in open e quindi specificare che il nuovo comando deve completare i file PDF.

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

Potresti quindi usare viewpdf in file PDF completi da tabulazioni. Tuttavia questo è piuttosto incompleto in quanto combacia solo con nomi di file non qualificati con qualsiasi percorso di directory. Con più complessità:

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

Che dovrebbe essere salvato in un file bash rc .

Se si usa invece la% di Z-Shell% co_de, il completamento potrebbe essere simile a

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

Leggi altre domande sui tag