выделенное окно завершения emacs

выделенное окно завершения emacs

Чтобы избежать путаницы, я запускаю только одно "окно" emacs, поэтому я использую window в смысле emacs. Я хочу получить разделение окна, которое, скажем, шириной 70, содержит буфер дополнений в новом разделе, когда я запускаю emacs. Я думаю, мне нужно иметь выделенное окно. В основном я пытаюсь добиться следующего.

 +-----+---+
 |     | A |
 |     |---|
 |  C  | B |
 +-----+---+

C = там, где я обычно работаю. A = буфер завершения (я также хотел бы, чтобы там хранились сообщения и все, что мне выдает emacs). B = оболочка.

Для этой цели я теперь добавил в свой .emacs следующее:

(split-window-horizontally)   ;; want two windows at startup 
(other-window 1)              ;; move to other window
(shell)                       ;; start a shell
(other-window 1)              ;; move back to first window 

Я хотел бы разделить правое окно еще раз по вертикали и хотел бы иметь возможность указать размеры каждого окна. Также я хотел бы, чтобы выделенное свойство окон completions, messages, ... (A) было true, чтобы emacs не заменял его.

Я слышал, что многие используют эту настройку, но нигде не могу ее найти.

решение1

В конце концов мне удалось получить то, что я хотел, добавив следующее в мой файл .emacs.

(progn
  (interactive)
  (split-window-horizontally)
  (other-window 1)
  (split-window)
  (other-window 1)
  (eshell)
  (other-window 1)) ;; finally change back to scratch window



;; open temporary buffers in a dedicated window split
(setq special-display-regexps
        '("^\\*Completions\\*$"
          "^\\*Help\\*$"
          "^\\*grep\\*$"
          "^\\*Apropos\\*$"
          "^\\*elisp macroexpansion\\*$"
          "^\\*local variables\\*$"
          "^\\*Compile-Log\\*$"
          "^\\*Quail Completions\\*$"
          "^\\*Occur\\*$"
          "^\\*frequencies\\*$"
          "^\\*compilation\\*$"
          "^\\*Locate\\*$"
          "^\\*Colors\\*$"
          "^\\*tumme-display-image\\*$"
          "^\\*SLIME Description\\*$"
          "^\\*.* output\\*$" ; tex compilation buffer
          "^\\*TeX Help\\*$"
          "^\\*Shell Command Output\\*$"
          "^\\*Async Shell Command\\*$"
          "^\\*Backtrace\\*$"))
(setq grb-temporary-window (nth 1 (window-list)))
(defun grb-special-display (buffer &optional data)
  (let ((window grb-temporary-window))
    (with-selected-window window
      (switch-to-buffer buffer)
      window)))
(setq special-display-function #'grb-special-display)

Я нашел то, что мне было нужно, в этом файле .emacs на github.

https://github.com/garybernhardt/dotfiles/blob/master/.emacs

Связанный контент