_files -W /Volumes
Consulte a documentação de _path_files
.
OK, um pouco de experiência: uso um Mac e faço o máximo possível na CLI.
Em particular, eu frequentemente coloco um pendrive USB, cp
ou mv
um arquivo, e depois desejo imediatamente ejetar (desmontar e desconectar) o arquivo. Isso geralmente pode ser feito em um punhado de pressionamentos de tecla, exceto para desmontá-lo, o que requer (em 10.7) indo para um espaço vazio da área de trabalho (geralmente dois espaços de pelo menos), selecionando o disco e pressionando "command-e". Francamente, esse procedimento de desmontagem é, em várias ordens de magnitude, a parte mais tediosa e demorada do processo.
Seria muito mais natural e eficiente simplesmente poder digitar, digamos:
ej<tab> J<tab>
Digamos que meu stick USB seja montado em / Volumes / Jefferson. O que eu esperaria dos meus 6 toques no teclado é o seguinte:
eject /Volumes/Jefferson
Isso deve executar o comando:
diskutil unmount /Volumes/Jefferson
Então, escrevi uma pequena função:
eject() {
diskutil unmount /Volumes/$1
}
E uma função de conclusão para acompanhar:
compdef '_files -g "/Volumes/*"' eject
Há um problema com isso, no entanto. A função _files
gera caminhos completos. Agora, eu poderia alterar a linha da minha função "eject" para diskutil unmount $1
, e as coisas funcionariam, mas não tenho capacidade de digitar a primeira letra do nome do ponto de montagem, pois o caminho começa com / Volumes /. Por exemplo, se eu digitar J<tab
, receberei o preenchimento automático dos arquivos no PWD. Eu teria que digitar /Volumes/J<tab>
para obter a conclusão desejada.
Então, existe uma função de conclusão que pega nomes de arquivos de uma localização específica pré-definida, ao invés de gerar caminhos completos?
Eu realmente gostaria de baixar isso para 6 teclas.
_files -W /Volumes
Consulte a documentação de _path_files
.
Tags zsh autocomplete osx