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.
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é: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:
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 :
Cloner le plugin dans un répertoire séparé:
$ cd ~/.vim $ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
Ajoutez à votre ~/.vimrc:
set runtimepath^=~/.vim/bundle/ctrlp.vim
Exécuter à la ligne de commande de Vim:
:helptags ~/.vim/bundle/ctrlp.vim/doc
- 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.
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.