¿Cómo puedo hacer caso omiso de los comandos de movimiento ventana de una cierta ventana?
-
21-09-2019 - |
Pregunta
Así que por lo general tienen 3 buffers abiertos en Emacs.
- Una memoria intermedia para el código real que estoy escribiendo.
- Un tampón para la prueba de la unidad para dicho código.
- Un tercer tampón que muestra los resultados de la prueba de la unidad. Este buffer llega a existir debajo de las otras dos memorias intermedias cuando corro mi unidad de prueba C-x SPACE .
¿Cómo desactivo esta tercera memoria intermedia de tal manera que cuando se presiona C-x o Yo sólo estoy cambiando entre la memoria y el tampón 1 2? Actualmente, me cambio entre tampón 1, a continuación, el tampón 2, a continuación, Tampón 3, a continuación, tampón 1, etc. Para ser específico, quiero C-x o sólo cambiar entre tampón 1 y 2.
Gracias.
Solución
Una solución general a este (puede mirar) algo como lo siguiente:
(defvar ignore-windows-containing-buffers-matching-res '("\\*Help")
"List of regular expressions specifying windows to skip (if window contains buffer that matches, skip)")
(defadvice other-window (before other-window-ignore-windows-containing activate)
"skip over windows containing buffers which match regular expressions in 'ignore-windows-containing-buffers-matching-res"
(if (and (= 1 (ad-get-arg 0)) (interactive-p))
(let* ((win (next-window))
(bname (buffer-name (window-buffer win))))
(when (some 'identity (mapcar '(lambda (re)
(string-match re bname))
ignore-windows-containing-buffers-matching-res))
(ad-set-arg 0 2)))))
Personalizar la variable sea un ajuste de expresiones regulares los nombres de búferes que desea omitir.
Otros consejos
La respuesta de Trey va a hacer exactamente lo que quiere (por lo menos parece que va; no he probado). Una solución más genérica sería utilizar swbuff
, ya sea con o swbuff-x
mi propia swbuff-advice
. Información sobre los tres se encuentran en la Emacs Wiki swbuff página .