Resposta curta: Não, não com shells clássicos como zsh
ou bash
, como normalmente seu shell e terminal são entidades diferentes.
Resposta longa: talvez. O que acontece normalmente é você digitar um comando e pressionar Enter - agora seu shell forks e executa o comando especificado. Então o shell tem não idéia do que está acontecendo, o shell não sabe o que será gravado no terminal ou o que o programa executado fez, se iniciou outros programas, escreveu no seu terminal ou qualquer coisa. / p>
Existem duas soluções possíveis para o seu problema:
- Capture toda a saída dos comandos executados e use-a de alguma forma para fins de conclusão (pode ser feito, mas provavelmente não deve ser feito)
- Use um terminal diferente que suporte 'completando' a partir do seu "buffer de shell".
Uma solução para 2 é, por exemplo, usar emacs e multi-term
e apenas usando M - / como você faria normalmente para completar as coisas do terminal. Outros terminais podem oferecer uma solução semelhante.
Mas você realmente precisa desse tipo de conclusão? A conclusão do shell hoje em dia pode completar man pages, comandos, pids, sockets, opções de comandos, caminhos de arquivos de sistemas remotos e muito mais. Isso pode já ser suficiente para o seu caso de uso ou pode ser melhorado para o seu problema específico.