web-dev-qa-db-fra.com

Comment obtenir des compléments / suggestions en temps réel dans un terminal Linux?

J'aimerais avoir quelque chose de similaire à everything dans Windows (en utilisant locate): chaque fois que j'appuie sur une touche, la liste de fichiers qui correspond aux entrées actuelles est mise à jour immédiatement.

Je me demande s'il est possible de compléter le texte en temps réel dans un terminal et comment dois-je procéder?

Pour être plus clair, supposons que cette fonction soit implémentée en tant que "foo", puis, lorsque je tape foo a et que je clique sur TAB dans la ligne de commande, la liste de tous les fichiers dont le nom contient a, alors si je continue à taper b (maintenant la commande devient foo ab), la liste de fichiers automatiquement (sans avoir besoin de cliquer sur autre chose) est mise à jour avec celles contenant ab, et ainsi de suite.

4
username123

Ce post Unix & Linux décrit ce que vous voulez:

... Je suis tombé sur un excellent outil universel: Finder Fuzzy en ligne de commande .

Il vous permet principalement de "rechercher fuzzy" des fichiers (vérifiez l'animation rich gif à l'aide du lien ci-dessus), mais vous permet également de lui fournir des données textuelles arbitraires et de filtrer ces données. L'idée des raccourcis est donc simple: il suffit de gérer un fichier avec des chemins d'accès (qui sont des raccourcis) et de filtrer ce fichier en fuzzy. Voici comment cela se présente: nous tapons la commande cdg (à partir de “cd global”, si vous voulez), obtenons une liste de nos signets, sélectionnons celui qui est nécessaire en quelques frappes de touche et appuyez sur Entrée. Le répertoire de travail est remplacé par l'élément sélectionné:

cdg

C'est extrêmement rapide et pratique: en général, je tape simplement 3-4 lettres de l'élément requis, et toutes les autres sont déjà filtrées.


Ce n'est peut-être pas ce que vous cherchez, mais l'éditeur Vim avec le plugin CtrlP peut être utilisé pour cela:

enter image description hereenter image description hereenter image description here

Vous aurez besoin d'installer l'un de vim, vim-nox, vim-gnome, vim-gtk ou vim-athena pour que cela fonctionne. Les instructions d'installation pour CtrlP sont fournies dans son site web :

  1. Cloner le plugin dans un répertoire séparé:

    $ cd ~/.vim
    $ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
    
  2. Ajoutez à votre ~/.vimrc:

    set runtimepath^=~/.vim/bundle/ctrlp.vim
    
  3. Exécuter à la ligne de commande de Vim:

    :helptags ~/.vim/bundle/ctrlp.vim/doc
    
  4. Redémarrez Vim et vérifiez :help ctrlp.txt pour connaître les instructions d'utilisation et les détails de configuration.

Si vous n'avez jamais utilisé Vim auparavant, cela peut être un peu intimidant. Exécutez vimtutor pour vous en faire une idée.

3
muru

Vous pouvez écrire vos propres scripts de fin pour votre shell.

Par exemple, bash utilise des scripts/fonctions de shell simples. Installez bash-completions si vous ne l'avez pas encore fait et jetez un oeil à /usr/share/bash-completion/completions pour quelques exemples.

Dans votre script, vous pouvez simplement appeler locate pour obtenir une liste de correspondances et les renvoyer.

0
kraxor