2013-02-25 82 views
1

我有一个关于emacs启动行为配置的问题。我对lisp没有任何想法,我只是爱emacs进行编辑。指定emacs启动行为

我想什么有如下:

  1. 我打电话的Emacs像emacs FILE
  2. Emacs将打开一个名为FILE
  3. Emacs窗口拆分上框架窗口水平
  4. 它打开文件FILE.abc
  5. 转到底部框架并打开FILE.xyz
  6. 最佳回来上部框架

我当时一看这里: how to create a specific window setup on in .emacs ,它通过的一半。但是,宏观事物并不适用于我的情况,因为我需要传递一个参数。任何帮助不胜感激。

+0

读http://emacswiki.org/emacs/KeyboardMacros#toc5 - 宏执行过程中提示。 – aartist 2013-02-25 18:07:01

+1

你称之为“框架”的东西在emacs中被称为“窗口”。 – sds 2013-02-25 18:25:49

回答

1

一般来说,如果你只是在“访问”(如Emacs已经存在 - 已有40年 - 称其他地方已知的操作 - 已有30年 - 作为“开放”)文件,你会发现自己可以更好地服务于Emacs 。

下面是函数(未经测试):

(defun open-two-files (file) 
    "Open FILE.abc in the top window and FILE.xyz in the bottom window. 
http://stackoverflow.com/questions/15070481/specifying-emacs-startup-behavior" 
    (interactive "FEnter file base name: ") 
    (let ((old-window (selected-window)) 
     (new-window (split-window-below))) 
    (find-file (concat file ".abc")) 
    (select-window new-window) 
    (find-file (concat file ".xyz")) 
    (select-window old-window))) 

你需要把它变成你的~/.emacs.el

现在,如果你已经打开emacs,你需要做M-x open-two-files RET foo RET来打开foo.abcfoo.xyz

如果你想开始一个新的Emacs会话,类型emacs --eval '(open-two-files "foo")'

+0

您还可以使用'command-switch-alist'(请参阅http://emacswiki.org/emacs/EdiffMode中的示例)简明命令行语法 – Necto 2013-02-25 18:47:33

+0

Hi @sds, 感谢您的回复。一个问题,但。我遵循你所说的,但在接到电话后,我得到“符号的函数定义是无效的:拆分窗口下面”的消息,没有任何反应。认为这是因为我想要的文件不存在,所以我使用另一个编辑器创建了它们,但这没有帮助。任何线索? – 2013-02-25 18:55:57

+0

@SimonRighley:这可能是因为你的Emacs不像我的那么新。 “C-h k C-x 2”告诉你什么? – sds 2013-02-25 19:16:01