Ouvrir le dernier fichier dans le répertoire avec vim

1

J'écris un journal et nomme les fichiers selon le mode AAAA-MM-JJ.markdown. Lorsque je veux modifier quelque chose à la dernière entrée, je voudrais l'ouvrir avec un raccourci, au lieu d'écrire la date complète (la finalisation de bash n'aide pas du tout).

Comment puis-je ouvrir le dernier fichier (par ordre alphabétique) dans vim?

Martin Ueding
la source

Réponses:

2

Si c'est vraiment le dernier fichier:

vim $(find . -type f  -maxdepth 1 | sort | tail -n 1)

Ou pour être plus précis sur les fichiers de démarques:

vim $(find . -name "*.markdown" -maxdepth 1 | sort | tail -n 1)

Vous pouvez bien sûr créer un alias pour cela dans votre profil bash.

alias newest='vim $(find . -name "*.markdown" -maxdepth 1 | sort | tail -n 1)'

Edité parce que xargs et vim causent de sérieux problèmes après l'avoir quitté. Je dois savoir pourquoi. J'avais aussi des backticks auparavant, mais utiliser $()au lieu de backticks est la nouvelle façon de faire.

slhck
la source
ça m'a l'air bien. Mais cela arrive si j'ai le nom de fichier suivant: "2011-05-19.markdown; rm -rf ~"? Xargs n'est-il pas précaire?
Martin Ueding
Qui aurait un tel nom de fichier? :) Si vous voulez l'appeler ainsi, il xargsest bien sûr peu sûr. Mais: il s'avère que vous ne pouvez pas utiliser xargset vimensemble de toute façon. Voir mon post édité ci-dessus, cela devrait être plus facile.
Slhck
Comme je l'ai appris sur #bash, vous ne devriez pas demander "Qui a ces noms de fichiers?" mais sécurisez votre code pour qu’il puisse le gérer.
Martin Ueding
@queueoverflow Assez, je plaisantais :) Merci pour l'édition!
Slhck
findne retourne pas la sortie triée, ainsi le tail -n 1retournera le dernier élément dans la sortie de find qui n'est pas nécessairement le fichier le plus récent. Ajouter un | sortaprès finddevrait répondre à cela.
Burhan Ali
1
vim "$(ls -1 *.markdown | tail -n 1)"

Fonctionne avec des espaces dans les noms de fichiers, et n’a besoin ni de findce qui est récursif par défaut, ce qui pourrait ne pas être ce que vous voulez, ni de la sortsortie lsalphabétique par défaut.

DevSolar
la source