如果我在这里使用不正确的术语,我很抱歉,我只使用了几个月的emacs。
我刚刚在重新格式化的macbook上重新安装了Aquamacs,并且遇到了最奇怪的问题。
我打开一个.py文件,并使用C-c!打开一个python shell。所以我(如预期的那样),顶部窗口中的.py文件和底部窗口中的python shell。
如果我然后在.py文件中运行C-c C-c(py-execute-buffer),则两个窗口交换位置。我的意思是,.py文件缓冲区在底部窗口中打开一个新缓冲区,而python shell在顶部窗口中打开一个新缓冲区。所以基本上,他们交换头寸。反复使用C-c C-c再次将窗口交换回来...所以他们正在改变位置。此外,两个窗口(顶部和底部)都有选项卡中的缓冲区(.py文件和python shell)。
我还没有对默认设置进行任何修改,我已经遇到了2.3a和2.3的问题(2.3以前在机器上没有这个问题,所以我尝试回滚。 ..无济于事。)
有谁知道如何阻止这种行为?提前谢谢!
答案 0 :(得分:2)
将以下内容添加到Aquamacs中的Emacs init文件中,以防止它交换缓冲区:
(defadvice py-execute-buffer
(around keep-buffers-same activate)
"Don't swap buffers in Aquamacs."
(save-window-excursion
ad-do-it))
答案 1 :(得分:1)
您还可以尝试将以下内容添加到emacs init文件中:
(setq py-split-windows-on-execute-p nil)
在运行任何py-execute- *之后,这将阻止当前窗口分裂。 (这也意味着如果python shell不在你的某个窗口中,它就不会显示出来。)
答案 2 :(得分:0)
我不使用Aquamacs并且无法重现您描述的行为,但是,请尝试使用此代码将其中任何一个窗口切换为“专用”。将窗口锁定到缓冲区是我在启动和运行emacs时想要做的第一件事。也许这会对你有帮助。
将代码添加到'.emacs',然后'标记'(选择)区域'S-<按键>'然后'M-x eval-region'来评估它..或者保存并重新启动emacs。
(global-set-key [pause] 'window-dedication-toggle)
(defun window-dedication-toggle (&optional window force quiet)
"toggle or ensure the 'dedicated' state for a window"
(interactive)
(let* ((toggle t) (window (if window window (selected-window))) (dedicated (window-dedicated-p window)))
(cond ((equal force "on") (setq toggle (eq dedicated nil)))
((equal force "off") (setq toggle (eq dedicated t))))
(if toggle (progn
(setq dedicated (not dedicated))
(set-window-dedicated-p window dedicated)
(if (not quiet)
(message "window %sdedicated to %s" (if (not dedicated) "no longer " "") (buffer-name)))))))