Запустить Emacs с сеансом R и параллельными окнами?

Я очень плохо разбираюсь в настройке emacs. Я хочу, чтобы, если я начинаю с файла, заканчивающегося на «.r», emacs запускается в развернутом виде, с двумя окнами бок о бок (вертикальное деление кадра), в одном файле исходного кода, а в другом - в интерпретаторе ESS R. Если я смогу понять этот пример, возможно, я смогу обобщить его на другие расширения и режимы. Я до сих пор не понимаю синтаксис хуков в elisp.


person wpkzz    schedule 19.12.2017    source источник


Ответы (1)


Обычный способ использования Emacs - это всегда запускать его, а не открывать и закрывать его все время.

Я предлагаю вам определить функцию, которая заставит существующий Emacs выглядеть так, как вы хотите:

(defun my-R-window-configuration ()
  "Prepare the current emacs frame for R work."
  (interactive)
  ;; maximimize the current frame:
  (set-frame-parameter nil 'fullscreen 'maximized)
  ;; keep just the current window, presumably containing the R code
  (delete-other-windows)
  ;; create ESS R interaction buffer and go there
  (ess-switch-to-end-of-ESS)
  ;; go back to the code
  (other-window 1))

Теперь вы можете выполнить M-x my-R-window-configuration RET в R буфере, чтобы получить то, что вы хотите.

person sds    schedule 19.12.2017
comment
Эй, спасибо, это неплохо. Поскольку мне еще удобнее вызывать emacs отдельно для каждого файла, я все равно буду искать ответ о том, как вызывать функцию при запуске, если имя открытого файла заканчивается определенным завершением. Но это решает 87,6% моих запросов. - person wpkzz; 20.12.2017