aquamacs: окна меняются на C-C C-C (режим Python) - PullRequest
2 голосов
/ 11 августа 2011

Я извиняюсь, если использую здесь неправильную терминологию, я использую emacs всего несколько месяцев.

Я только что переустановил Aquamacs на macbook, который я переформатировал, и у меня возникла самая странная проблема.

Я открываю файл .py и использую Cc!открыть оболочку Python.Таким образом, у меня есть (как и ожидалось), файл .py в верхнем окне и оболочка python в нижнем окне.

Если я затем запускаю Cc Cc (py-execute-buffer) в файле .py,два окна меняются местами.Я имею в виду, что буфер файлов .py открывается в нижнем окне в новом буфере, а оболочка python открывается в верхнем окне в новом буфере.Так что в основном они меняются местами.Повторное использование Cc Cc снова меняет окна ... так что они перетасовывают позиции.Кроме того, в обоих окнах (верхнем и нижнем) есть вкладки (файл .py и оболочка python) во вкладках.

Я не внес никаких изменений в настройки по умолчанию, и у меня возникла проблема с2.3a и 2.3 (2.3 был на машине ранее и не имел этой проблемы, поэтому я попытался откатиться ... безрезультатно).

Кто-нибудь знает, как остановить это поведение?Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

Добавьте следующее в файл инициализации Emacs в Aquamacs, чтобы предотвратить его замену буферов:

(defadvice py-execute-buffer
  (around keep-buffers-same activate)
  "Don't swap buffers in Aquamacs."
  (save-window-excursion 
    ad-do-it))
1 голос
/ 21 июля 2012

Вы также можете попробовать добавить следующее в ваш файл инициализации emacs:

(setq py-split-windows-on-execute-p nil)

Это предотвратит разбиение текущего окна после запуска любого py-execute- *.(Это также означает, что оболочка python не будет отображаться, если ее еще нет в одном из ваших окон.)

0 голосов
/ 11 августа 2011

Я не использую Aquamacs и не могу воспроизвести описанное вами поведение, однако, попробуйте этот код, чтобы переключить любое из окон как «выделенное». Блокировка окон в буферах - это первое, что я хотел сделать, когда начал работать с Emacs. может быть, это поможет вам здесь.

добавьте код в «.emacs», затем либо «отметьте» (выберите) регион «S- », а затем «Mx 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)))))))
...