Emacs 从文件名列表中打开文件

Emacs 从文件名列表中打开文件

我有一个较大的 tex 项目,该项目分为几个 tex 文件。每次我想处理它时,我都会打开 emacs 并手动找到C-x C-f我想要处理的所有文件。

我想知道是否有办法从包含文件名列表的文件中打开文件(从命令行),例如

文件列表.txt:

file1.tex file2.tex file3.tex

然后做

cat files | emacs -nw

除了 emacs 不支持所使用的命令,因为它不喜欢重新分配 stdin。

有任何想法吗?

答案1

而是通过 xargs 传递它:

cat files | xargs emacs

xargs从 stdin 获取文本并将其作为参数传递给指定的程序。将files文件传输到 is 会导致它调用 emacs 类似:

emacs file1.tex file2.tex file3.tex

答案2

Collin Hockey 建议的另一种方法是使用 shell 中的命令替换。以下语法在 Bourne like shell 中有效(shbashzsh)。

emacs $( cat files )

或等效地(但可读性较差且更含糊)

emacs ` cat files `

不过,这仍然不是一个优雅的解决方案。我一般不是一名emacs用户,但我猜有些答案这里也许这就是你真正想要的。看看吧!

附言
如果文件名列表的长度超过字节,那么我和 Collin 的解决方案都无法正常工作getconf ARG_MAX。在我的系统上,这个长度大约是 2 MiB。

答案3

这实际上并不能解决您的问题,但可以作为替代方案。检查一下,desktop-save-mode如果在关闭 emacs 时打开了某些缓冲区,则在重新打开 emacs 时,它将重新打开您拥有的所有缓冲区。

相关内容