繁体   English   中英

在bash脚本中使用emacs打开和关闭txt文件

[英]Open and close txt files with emacs in bash script

我编写了一个脚本,该脚本打开了我在工作期间需要的几个文本文件(例如日记本等)。 该脚本如下所示:

#! /bin/bash

DOCPATH=$HOME/Documents
NUMDOCPATH=$DOCPATH/Numerics

emacs $DOCPATH/UTA_WorkProtocol.txt &

emacs $NUMDOCPATH/NumProtocol.txt &

emacs $NUMDOCPATH/CITCOM/Protocol.txt &

效果很好,文件已正确打开。 但是,最后,我想创建另一个脚本来再次保存并关闭这些文件。 但是,我无法使用bash脚本找到任何命令来保存和/或关闭在后台运行的打开的emacs文件。 我会更方便的是只运行这样的脚本,而不是在每个txt文件中执行CX C,因为我可能也会向“ opening”脚本中添加新文件。

请更多有经验的人帮助我。 谢谢!

这有点骇人听闻,但bash脚本并不真正适合此类UI脚本。

#! /bin/bash

DOCPATH=$HOME/Documents
NUMDOCPATH=$DOCPATH/Numerics

emacs $DOCPATH/UTA_WorkProtocol.txt &
emacs $NUMDOCPATH/NumProtocol.txt &
emacs $NUMDOCPATH/CITCOM/Protocol.txt &

emacs   # *Not* in the background
kill $(jobs -p)

当您准备关闭所有emacs的后台实例时,只需关闭前台的实例即可。 这将导致最终的emacs退出,这将使脚本继续执行kill命令,这将杀死其余的后台作业。

请注意,最终的emacs可以是任何阻止脚本完成并且可以轻易杀死的命令。

您必须使用bash吗? 在Emacs lisp中很容易:

(defun open-files ()
  (interactive)
  (find-file "UTA_WorkProtocol.txt")
  (find-file "NumProtocol.txt")
  (find-file "CITCOM/Protocol.txt"))

(defun close-files ()
  (interactive)
  (save-buffers-kill-emacs)

然后打开一个Emacs实例并在Mx运行这些命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM