我希望能够告诉emacs以只读模式打开文件 或者通过提供命令行参数在自动恢复模式下,例如:
emacs -A file1 file2 file3 ...
应以自动恢复模式打开文件
emacs -R file1 file2 file3 ...
应该以只读模式打开文件
我找到了以下内容:
(defun open-read-only (switch)
(let ((file1 (expand-file-name (pop command-line-args-left))))
(find-file-read-only file1)))
(add-to-list 'command-switch-alist '("-R" . open-read-only))
(defun open-tail-revert (switch)
(let ((file1 (expand-file-name (pop command-line-args-left))))
(find-file-read-only file1)
(auto-revert-tail-mode t)))
(add-to-list 'command-switch-alist '("-A" . open-tail-revert))
这个问题是它一次只适用于一个文件。
即。
emacs -R file1
有效,但
emacs -R file1 file2
不起作用。
如何更改上述功能以便他们可以 在指定的模式下同时打开几个文件? 有人可以建议一个简单而优雅的解决方案吗?
答案 0 :(得分:4)
只需使用command-line-args-left
中的项目,直到下一次切换:
(defun open-read-only (switch)
(while (and command-line-args-left
(not (string-match "^-" (car command-line-args-left))))
(let ((file1 (expand-file-name (pop command-line-args-left))))
(find-file-read-only file1))))
BTW,请注意,这将打开相对于前一个目录的每个文件。