arquivos abertos do Emacs de uma lista de nomes de arquivos

4

Eu tenho um projeto largish tex que é separado em vários arquivos tex. Toda vez que eu quero trabalhar nele eu abro o emacs e manualmente C-x C-f todos os arquivos que eu quero trabalhar.

Eu queria saber se existe uma maneira de abrir arquivos (a partir da linha de comando) de um arquivo contendo uma lista de nomes de arquivos, algo como

filelist.txt:

file1.tex file2.tex file3.tex

faça

cat files | emacs -nw

exceto que o emacs não suporta o comando usado, pois não gosta que o stdin seja reatribuído.

alguma ideia?

    
por crasic 25.03.2012 / 06:32

3 respostas

4

Passe pelos xargs em vez disso:

cat files | xargs emacs

xargs tira o texto de stdin e passa como argumentos para o programa especificado. Piping o arquivo files em faz com que ele chame o emacs algo como:

emacs file1.tex file2.tex file3.tex
    
por 25.03.2012 / 06:41
4

Uma alternativa à sugestão do Collin Hockey é usar a substituição de comandos no seu shell. A seguinte sintaxe funciona em Bourne como shells ( sh , bash , zsh & c.).

emacs $( cat files )

ou equivalentemente (mas de forma menos legível e mais ambígua)

emacs ' cat files '

Ainda não é uma solução elegante, no entanto. Eu não sou geralmente um usuário emacs , mas eu acho que algumas das respostas aqui pode ser o que você realmente quer. Dê uma olhada!

PS
Nem a minha nem a solução de Collin funcionarão corretamente se a lista de nomes de arquivos for maior que getconf ARG_MAX bytes. No meu sistema que é aproximadamente 2 MiB.

    
por 25.03.2012 / 07:49
1

Isso realmente não resolverá seu problema, mas será uma alternativa em potencial. Confira desktop-save-mode Se você tiver certos buffers abertos quando fechar o emacs, ao reabrir o emacs ele reabrirá todos os buffers que você tinha.

    
por 18.05.2012 / 06:49

Tags