mac commands emacs

commands - Emacs, cambiar a la ventana anterior



emacs ubuntu (12)

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

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


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

(defun prev-window () (interactive) (other-window -1)) (define-key global-map (kbd "C-x p") ''prev-window)


Basada 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)


En referencia a la respuesta de Nate, reemplacé las arrow keys para usar la p tradicional para up , n para down , f para ir a la right b para ir a la left . También reemplacé la Ctrl con Super ya que Cp, Cn, Cf and Cb son las teclas de movimiento predeterminadas. Esta combinación con M te permite saltar caracteres y líneas en lugar de ir pasando uno por uno después de cada golpe de teclado. Por lo tanto, la tecla Super sintió la mejor opción para mantenerla como un enlace fácil. ¡Además, ahora ya no tienes 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!


Eso sería C-- Cx o

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


Personalmente prefiero usar window-number.el

Para seleccionar una ventana diferente, use Ctrl - x , Ctrl - j n

Donde n es el número de la ventana, la línea de mode de cada ventana muestra su número, como se muestra en la captura de pantalla.

Simplemente descargue window-number.el , colóquelo en su ruta de carga 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 que le da grandes números en las ventanas ... (presionar el número cambia la ventana y revierte la pantalla).

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


Si trabajas mucho con múltiples ventanas de emacs (> 3) y querrás guardar algunas teclas, agrégalo a tu archivo init y estarás 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 solo recorra rápidamente las ventanas con Mo


Solo para agregar a @Nate, @aspirin y la respuesta de @ Troydm, considero que es una adición muy útil si decides vincular los comandos de movimiento de viento con la combinación de teclas que elijas:

(setq windmove-wrap-around t)

Con la configuración predeterminada, obtendrá un error cuando intente moverse a una ventana que no existe, que se torna molesta al cabo de un tiempo. Sin embargo, cuando se establece windmove-wrap-around, intentar mover la parte inferior del marco, por ejemplo, en su lugar seleccionará la ventana más alta en el marco. Este puede ser un comportamiento más intuitivo para ti.


También puede intentar usar windmove, que le permite navegar a la ventana de su elección en función de la geometría. Tengo lo siguiente en mi archivo .emacs para cambiar ventanas usando la tecla de flecha Cx.

(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)


Ya hay un paquete que le permite cambiar ventanas usando M-. revisa este sitio web Agregue esto a su archivo init:

(require ''windmove) (windmove-default-keybindings ''meta) ;; or use ''super to use windows key instead alt


Mn y Mp más sentido para mí, ya que son análogos a Cn ( siguiente línea ) y Cp ( línea anterior ):

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

(inspirado por share y share )


(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"


(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)))

alt j y alt k recorrerán sus búferes visibles. Hacia adelante y hacia atrás, para ser exactos.