Pregunta

En Emacs, Cx o me lleva a la siguiente ventana.

¿Qué macro de teclado me lleva a la ventana anterior en Emacs?

¿Fue útil?

Solución

eso seria C-- C-x o

En otras palabras, Cx o con un argumento de -1.Puede especificar cuántas ventanas mover insertando un argumento numérico entre C-u y el comando, como en C-u 2 C-x o. (C-- es un atajo para Cu - 1)

Otros consejos

También puedes intentar usar windmove, que te permite navegar a la ventana de tu elección según la geometría.Tengo lo siguiente en mi archivo .emacs para cambiar ventanas usando la tecla de flecha C-x.

(global-set-key (kbd "C-x <up>") 'windmove-up)
(global-set-key (kbd "C-x <down>") 'windmove-down)
(global-set-key (kbd "C-x <right>") 'windmove-right)
(global-set-key (kbd "C-x <left>") 'windmove-left)

Personalmente prefiero usar window-number.el

Para seleccionar una ventana diferente, utilice Control-X, Control-j norte

Dónde norte es el número de la ventana, la línea de modelo de cada ventana muestra su número, como se muestra en la captura de pantalla.

Solo descarga número-ventana.el, colóquelo en su ruta de carga de emacs y use lo siguiente en su .emacs

 (autoload 'window-number-mode "window-number"
   "A global minor mode that enables selection of windows according to
 numbers with the C-x C-j prefix.  Another mode,
 `window-number-meta-mode' enables the use of the M- prefix."
   t)

Hay otro modo similar llamado switch-window.el lo que te da números grandes en las ventanas...(Al presionar el número se cambia la ventana y se revierte la visualización).

http://tapoueh.org/images/emacs-switch-window.png

Si trabaja mucho con varias ventanas de emacs (>3) y desea guardar algunas pulsaciones de teclas, agregue esto a su archivo de inicio y estará mejor:

(defun frame-bck()
  (interactive)
  (other-window-or-frame -1)
)
(define-key (current-global-map) (kbd "M-o") 'other-window-or-frame)
(define-key (current-global-map) (kbd "M-O") 'frame-bck)

Ahora simplemente recorre rápidamente las ventanas con M-o

Aquí hay algunas respuestas muy buenas y completas, pero para responder la pregunta de manera minimalista:

 (defun prev-window ()
   (interactive)
   (other-window -1))

 (define-key global-map (kbd "C-x p") 'prev-window)

Basado en la idea de @Nate pero ligeramente modificada para admitir el ciclo inverso entre ventanas

;; Windows Cycling
(defun windmove-up-cycle()
  (interactive)
  (condition-case nil (windmove-up)
    (error (condition-case nil (windmove-down)
         (error (condition-case nil (windmove-right) (error (condition-case nil (windmove-left) (error (windmove-up))))))))))

(defun windmove-down-cycle()
  (interactive)
  (condition-case nil (windmove-down)
    (error (condition-case nil (windmove-up)
         (error (condition-case nil (windmove-left) (error (condition-case nil (windmove-right) (error (windmove-down))))))))))

(defun windmove-right-cycle()
  (interactive)
  (condition-case nil (windmove-right)
    (error (condition-case nil (windmove-left)
         (error (condition-case nil (windmove-up) (error (condition-case nil (windmove-down) (error (windmove-right))))))))))

(defun windmove-left-cycle()
  (interactive)
  (condition-case nil (windmove-left)
    (error (condition-case nil (windmove-right)
         (error (condition-case nil (windmove-down) (error (condition-case nil (windmove-up) (error (windmove-left))))))))))

(global-set-key (kbd "C-x <up>") 'windmove-up-cycle)
(global-set-key (kbd "C-x <down>") 'windmove-down-cycle)
(global-set-key (kbd "C-x <right>") 'windmove-right-cycle)
(global-set-key (kbd "C-x <left>") 'windmove-left-cycle)

Solo para agregar a la respuesta de @Nate, @aspirin y @Troydm, considero que esta es una adición muy útil si decide vincular los comandos windmove a cualquier combinación de teclas que elija:

(setq windmove-wrap-around t)

Con la configuración predeterminada, recibirás un error cuando intentes moverte a una ventana que no existe, lo que se vuelve un poco molesto después de un tiempo.Sin embargo, cuando se establece windmove-wrap-around, al intentar salir de la parte inferior del marco, por ejemplo, se seleccionará la ventana superior del marco.Este puede ser un comportamiento más intuitivo para usted.

M-n y M-p tiene más sentido para mí, ya que son análogos a C-n (Proxima linea) y C-p (línea anterior):

(define-key global-map (kbd "M-p") 'previous-multiframe-window)
(define-key global-map (kbd "M-n") 'other-window)

(inspirado en a este y eso)

En referencia a la respuesta de Nate, reemplacé el arrow keys utilizar el tradicional p para ir up, n para ir down, f para ir right y b para ir left.También reemplacé el Ctrl con Super clave como C-p, C-n, C-f and C-b son las teclas de movimiento predeterminadas.Esta combinación con M le permite saltar caracteres y líneas en lugar de pasar uno por uno después de cada pulsación de tecla.De este modo Super Key consideró la mejor opción para que fuera fácil de vincular.Además, ¡ya no tendrás que quitar la mano de la fila de inicio!

(global-set-key (kbd "s-p") `windmove-up)
(global-set-key (kbd "s-n") `windmove-down)
(global-set-key (kbd "s-f") `windmove-right)
(global-set-key (kbd "s-b") `windmove-left)

¡Espero eso ayude!

(global-unset-key (kbd "M-j"))
(global-unset-key (kbd "M-k"))
(global-set-key (kbd "M-j") (lambda () (interactive) (other-window 1)))
(global-set-key (kbd "M-k") (lambda () (interactive) (other-window -1)))

alternativoj y alternativok recorrerá los buffers visibles.Hacia delante y hacia atrás, para ser exactos.

Ya existe un paquete que le permite cambiar de ventana usando M-. revisa este sitio web.Agregue esto a su archivo de inicio:

(require 'windmove)
(windmove-default-keybindings 'meta) ;; or use 'super to use windows key instead alt
(global-set-key (kbd "C-x a") 'ace-swap-window)  
(global-set-key (kbd "C-x q") 'ace-select-window)

download ace-window from the melpa repo if you don't know how to do that
put this in your .emacs file if you don't have one create it 

(package-initialize)                                                                                                                                                                     

(require 'package)                                                                                                                                                                       
(add-to-list 'package-archives '("melpa" , "http://melpa.org/packages/"))                                                                                                                

(package-initialize) 

then "m-x list-packages"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top