Comment accéder aux fichiers récemment utilisés en choisissant dans une liste?

8

Je voudrais avoir une touche pour afficher une liste des fichiers récemment utilisés pour en choisir un à modifier.

  • De quoi ai-je besoin pour fournir cela?

Et liés,

  • Comment gérer l'historique des fichiers récemment utilisés à utiliser?
  • Cela devrait prendre en charge l'exclusion des noms de fichiers ou des sous-répertoires.
Volker Siegel
la source
Pourriez-vous développer un peu ce que vous entendez par "assistance excluant ..."? Voulez-vous dire que vous souhaitez afficher une liste de tous les fichiers, à l'exception de certains correspondant à un modèle, ou que vous souhaitez exclure certains fichiers de jamais apparaître dans la liste? (La dernière option est ce que fait la réponse de @ muru autocmd; la première semble que ce serait plus utile et peut-être plus facile à réaliser.)
Kyle Strand
@KyleStrand Je pensais à la première variante, excluant un fichier si le chemin correspond à l'un d'une liste de modèles. Par exemple, les motifs pourraient ressembler à quelque chose *.tmp,/tmp/*,/mnt/foo/*.
Volker Siegel

Réponses:

10

Vous pouvez utiliser la :browsecommande pour cela:

:browse oldfiles

Pour une frappe, mappez-la:

nnoremap <Leader>o :browse oldfiles<cr>

Ensuite, vous pouvez appuyer sur Leader oen mode normal pour afficher une liste de fichiers.

De :help v:oldfiles:

                                        v:oldfiles oldfiles-variable
v:oldfiles      List of file names that is loaded from the viminfo file on
                startup.  These are the files that Vim remembers marks for.
                The length of the List is limited by the ' argument of the
                'viminfo' option (default is 100).
                When the viminfo file is not used the List is empty.

Ainsi, pour limiter à, disons, 50 fichiers, vous pouvez définir viminfo:

set viminfo+='50

Je ne vois pas de moyen facile d'exclure des fichiers de cela, à part désactiver en viminfoutilisant autocmd:

autocmd BufNew *.sh set viminfo=

Cela a l' énorme défaut de désactiver tout l'historique pour toute session impliquant la correspondance de fichiers.

muru
la source
C'est une fonctionnalité impressionnante dont je n'avais jamais entendu parler.
Kyle Strand
Serait-il possible de combiner la browsecommande avec uniteet / ou PipeCmdde réaliser le filtrage souhaité par OP?
Kyle Strand
@KyleStrand Je n'ai jamais utilisé non plus, donc je ne sais pas.
muru
4

Découvrez la fonction MRU de Ctrl-P . Une fois que vous l'avez installé, tapez :CtrlPMRUFileset il ouvrira un viseur flou au bas de l'écran que vous pouvez rechercher flou.entrez la description de l'image ici

CharlesL
la source