2013-08-20 126 views
4

是否有一种快速(自动)的方式来使用emacs从目录中的所有文件创建一个长文件? IE在emacs中连接多个文件

>Text_1.txt 

>{contents of Text_1} 

>Text_2.txt 

>{contents of text2} 


>FinalResult.txt 
>{contents of Text_1 
>contents of Text2} 

回答

4

如何:

(defun insert-my-files() 
    (interactive) 
    (let ((dir (read-directory-name "Directory to insert: "))) 
    (mapC#'(lambda (file) 
       (let ((file-full (concat dir file))) 
       (insert-file-contents file-full))) 
      (cddr (directory-files dir))))) 

M-x insert-my-files调用它,它会插入您提供的目录内容。

+0

谢谢你做到了。 – LinkReincarnate

+0

我在'read-directory-name'前面添加了'file-name-as-directory',因为我第一次尝试使用这个函数时会粘贴一个目录名而没有正向结尾的斜杠,这会产生一个错误,因为这个函数会考虑到目录名以正向结尾斜线结尾。 – lawlist

2

我不知道,如果你把它的快捷方式,但insert-file可以用来插入一个文件到已有的缓冲区。

对于你虽然谈论的特定情况下,以最快的方式可能是通过命令行:cat * > FinalResult.txt

+0

不确定编辑被拒绝的原因,但我已按照您的建议纠正了我的代码。谢谢! – Tyler