ventana de finalización dedicada de emacs

ventana de finalización dedicada de emacs

Para evitar confusiones, sólo ejecuto una "ventana" de emacs y por eso uso ventana en el sentido de emacs. Estoy buscando obtener una división de ventana que, digamos de 70 de ancho, contenga el búfer de finalización en la nueva división cuando inicio emacs. Creo que necesito tener una ventana dedicada. Lo que básicamente estoy tratando de lograr es lo siguiente.

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

C = donde trabajo normalmente. A = el buffer de finalización (también me gustaría tener mensajes y todo lo que emacs me arroja allí) B = un shell.

Ahora he agregado lo siguiente para este propósito en mi .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 

Me gustaría dividir la ventana derecha otra vez verticalmente y me gustaría poder especificar las dimensiones de cada ventana. Además, me gustaría que la propiedad dedicada de las terminaciones, mensajes, ... ventana (A) sea verdadera para que emacs no la reemplace.

He oído que mucha gente usa esta configuración, pero parece que no puedo encontrarla por ningún lado.

Respuesta1

Finalmente pude obtener lo que quería con lo siguiente en mi archivo .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)

Encontré lo que necesitaba en este archivo .emacs en github.

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

información relacionada