2012-01-12 86 views
4

我使用aquamacs 90%的时间编辑R文件与ESS(Emacs讲话统计)。在这种模式下,我发现有一个分割窗口是必不可少的,这样我就可以同时查看源代码和R缓冲区(终端窗口)。因此,每次启动aquamacs时,都需要执行以下步骤:拆分窗口,选择正确的窗口,将缓冲区切换到*R*,返回到文件。我如何在会话中保存此设置?默认分割窗口布局

谢谢。

+1

使用'C-h k'并发出键绑定来查看底层命令,然后将它们添加到'.emacs'文件中。它不应该太麻烦... – aL3xa 2012-01-13 03:03:27

+0

不错,谢谢。我添加了'(split-window-side-side)',它独立工作,但不知何故'(switch-to-buffer“* R *”)具有副作用,可以将布局恢复为一个小)窗口。 – baptiste 2012-01-13 03:31:12

回答

4

存在C-C C-z(ess-switch-to-end-of-ESS),它分割并切换到ess下级缓冲区的末尾。我一直在使用它。

+0

humm,试了一下,什么都没发生。 – baptiste 2012-02-22 07:43:26

+0

@baptiste你是什么意思?如果你的R会话已经启动并且缓冲区被隐藏,它应该切换到它的结尾。它不启动proc。添加为功能可能是个好主意。 – VitoshKa 2012-02-23 13:55:51

+0

好吧,它现在有效。这将是很好,如果它也开始R. – baptiste 2012-02-23 19:09:43

2

有很多包做这种事情。看起来layout-restore可能是最合适的,但您可能需要查看Category Windows页面的“切换窗口配置”标题下的Emacs wiki中的所有条目。

5

试试这个:

(defun open-r-project() 
    (interactive) 
    (delete-other-windows) 
    (split-window-horizontally) 
    (R) 
    (ess-change-directory "~/projects/") 
    (next-multiframe-window) 
    (find-file "~/projects/") 
    (previous-multiframe-window) 
) 

(global-set-key (kbd "C-c r") 'open-r-project) 

但是请注意,这是我的第一个LISP功能。我不知道如何使项目目录参数工作。明天再试。哦,并注意我正在使用ESS的SVN版本。

+0

伟大的功能,谢谢!你能想出如何更新函数来传递参数给它吗? – daroczig 2012-04-15 14:00:30

+0

@daroczig你的意思是通过minibuffer自动传递文件夹路径?嗯,嗯......这是在我的TODO列表中。 =) – aL3xa 2012-04-15 18:01:29

+0

绝对!太好了,如果你有时间实施这个(或者有一些想法如何去做),请回报。 – daroczig 2012-04-15 19:11:18