2010-09-28 5 views
4

Dans un environnement Linux ou Mac, la fonction glob() de Vim ne correspond pas aux fichiers de points tels que .vimrc ou .hiddenfile. Est-il possible de faire correspondre tous les fichiers, y compris ceux cachés?Rendre glob() de Vim également les fichiers de points cachés

La commande J'utilise:

let s:BackupFiles = glob("~/.vimbackup/*") 

J'ai même essayé de placer le paramètre {flag} mystérieux 1 et pourtant il ne retourne pas encore les fichiers cachés.

MISE À JOUR: Merci ib! Voici le résultat de ce que je travaille sur: delete-old-backups.vim

+0

L'argument 'flag' optionnel permet d'ignorer les fichiers qui correspondent aux motifs d'option' wildignore' et de classer les résultats selon la valeur de l'option 'suffixes'. –

Répondre

3

C'est en raison de la façon dont fonctionne la fonction glob(): Un seul caractère étoile ne correspond pas à des fichiers cachés par la conception. Dans le shell, le style de globalisation par défaut peut être modifié pour le faire (shopt -s dotglob dans Bash), mais ce n'est pas possible dans Vim.

Cependant, on a plusieurs possibilités pour résoudre le problème. Le premier et le plus évident est de globaliser les fichiers cachés et non cachés séparément, puis de concaténer les résultats .

:let backupfiles = glob(&backupdir.'/*')."\n".glob(&backupdir.'/.[^.]*') 

(Veillez à ne pas chercher . et .. ainsi que les fichiers cachés.)

autre et probablement plus moyen pratique (mais moins portable, cependant) est d'utiliser extension backtick dans l'appel glob().

:let backupfiles = glob('`find '.&backupdir.' -maxdepth 1 -type f`') 

Cela force Vim pour exécuter la commande à l'intérieur pour obtenir la contre-apostrophes liste des fichiers. La commande find répertorie tous les fichiers (-type f) y compris ceux cachés, dans le répertoire spécifié (-maxdepth 1 interdit la récursivité).

+1

Cela fonctionne très bien. Merci! En guise de remarque, l'utilisation de 'find ~/.vimbackup/-mtime + 14' était ma première version mais maintenant que je travaille sur Windows aussi j'ai décidé de faire une version plus portable. – matpie

Questions connexes