Utilizando o autocompletar do Linux com arquivos de lista de palavras AND do diretório atual

3

Eu configurei o preenchimento automático no meu .bashrc da seguinte forma:

complete -W "$(echo 'cat ~/.ssh_complete';)" scp

mas SOMENTE usou as palavras dadas no arquivo ~/.ssh_complete . Como é possível estender a definição de modo que a conclusão de tabulação em scp também use os nomes dos arquivos no diretório local.

Uma solução simples para o meu problema seria (nomes de arquivos e palavras na lista de palavras), eu não preciso de conclusão de tabulação para reconhecer o formato / detalhes do comando scp real. Novamente: Eu quero que a conclusão da tabulação mostre os nomes dos arquivos no diretório atual E mostre as entradas dadas no arquivo ~/.ssh_complete .

Quando há uma nova sugestão, edito o arquivo .bashrc , faço a fonte dele e tento concluir a tabulação em scp .

    
por Alex 16.01.2013 / 10:53

2 respostas

0

ok, se você escrever uma função como abaixo

function _scp_complete
{

 COMPREPLY=""
 COMPREPLY+=( $(cat ~/.ssh_complete ) )
 COMPREPLY+=( $( ls ) )

}

então

complete -F _scp_complete scp

o -F para completar significa executar a função indicada (_scp_complete) e então usar a matriz COMPRELINAR com cada elemento como uma conclusão

Na função, reiniciei o COMPREPLY para ficar em branco Então eu tiro o ~ .ssh_complete (cada linha se torna um elemento de COMPREPLY) em seguida, adicione a saída de ls.

    
por 22.01.2013 / 18:11
1

Conforme documentado , você pode combinar os dois com:

complete -o <comp-options> -W "$(cat ~/.ssh_complete)" scp

Em que <comp-options> permite especificar o tipo de comportamento desejado.

Eu me livrei do ridículo UUoC e ecoei para você.

    
por 16.01.2013 / 11:08