Question Emacs ouvre des fichiers à partir d'une liste de noms de fichiers


J'ai un grand projet tex qui est séparé en plusieurs fichiers tex. Chaque fois que je veux y travailler, j'ouvre les emacs et manuellement C-x C-f tous les fichiers sur lesquels je veux travailler.

Je me demandais s'il y avait un moyen d'ouvrir les fichiers (à partir de la ligne de commande) à partir d'un fichier contenant une liste de noms de fichiers, par exemple

filelist.txt:

file1.tex file2.tex file3.tex

alors fais

cat files | emacs -nw

sauf que emacs ne supporte pas la commande utilisée car elle n'aime pas que stdin soit réaffecté.

des idées?


4
2018-03-25 04:32


origine


Check-out client emacs vous ne lancez donc pas de nouveaux emacs à chaque fois, mais ouvrez simplement les fichiers dans un emacs déjà en cours d'exécution. - Tom


Réponses:


Passez-le à travers xargs à la place:

cat files | xargs emacs

xargs prend le texte de stdin et le passe en argument au programme spécifié. La tuyauterie files le fichier dans est fait appeler quelque chose comme emacs:

emacs file1.tex file2.tex file3.tex

4
2018-03-25 04:41





Une alternative à la suggestion de Collin Hockey est d'utiliser la substitution de commandes dans votre shell. La syntaxe suivante fonctionne dans Bourne comme des shells (sh, bash, zsh & c.).

emacs $( cat files )

ou de manière équivalente (mais moins lisible et plus ambiguë)

emacs ` cat files `

Pas encore une solution élégante, cependant. Je ne suis généralement pas un emacs utilisateur, mais je suppose que certaines des réponses ici pourrait être ce que vous voulez vraiment. Regarde!

PS
Ni la mine ni la solution de Collin ne fonctionneront correctement si la liste des noms de fichiers est plus longue que getconf ARG_MAX octets. Sur mon système, c'est environ 2 Mio.


4
2018-03-25 05:49





Cela ne résoudra pas votre problème mais sera une alternative potentielle. Check-out desktop-save-mode Si vous ouvrez certains tampons lorsque vous fermez emacs, en rouvrant emacs, il rouvrira tous les tampons que vous aviez.


1
2018-05-18 04:49