2011-02-18 4 views

Respuesta

5

Echa un vistazo windmove; te permite mantener presionada una tecla modificadora y presionar una tecla de flecha para moverte a la ventana en esa dirección. Lo he estado utilizando durante años con el modificador predeterminado (shift) y, curiosamente, no interfiere con mis impulsos para usar la selección de texto con flecha de desplazamiento en otras aplicaciones.

También hay un equivalent de marcos, que realmente debería probar ...

+1

windmove y framemove son geniales. Solía ​​tener mi propio enlace "rápido" para 'other-window', pero lo abandoné por completo una vez que comencé a utilizar estos paquetes. El cambio de ventanas por dirección visual es mucho más intuitivo que el ciclo a través de ellos en cualquier orden en que se almacenan internamente. – phils

+0

esto es realmente muy bueno ... – rabidmachine9

5

utilizo C-ficha para cambiar de ventana:

(global-set-key [C-tab] 'other-window) 

mantiene pulsada la tecla de control, puede saltar varias veces ventanas simplemente pulsando la tecla de tabulación.

EDIT: mi respuesta original contenía la siguiente

No creo que hay una manera integrada para repetir el último comando para los comandos básicos como este ...

Esto ya no es cierto. Emacs ahora contiene repeat.el, que permite exactamente el comportamiento que pidió rabidmachine9.

El siguiente código creará una repetición other-window, de tal manera que después de pulsar C-x o primera vez, presionando o después continuará moviéndose a la siguiente ventana.

(require 'repeat) 
(defun make-repeatable-command (cmd) 
    "Returns a new command that is a repeatable version of CMD. 
The new command is named CMD-repeat. CMD should be a quoted 
command. 

This allows you to bind the command to a compound keystroke and 
repeat it with just the final key. For example: 

    (global-set-key (kbd \"C-c a\") (make-repeatable-command 'foo)) 

will create a new command called foo-repeat. Typing C-c a will 
just invoke foo. Typing C-c a a a will invoke foo three times, 
and so on. 

See related discussion here: 
http://batsov.com/articles/2012/03/08/emacs-tip-number-4-repeat-last-command/#comment-459843643 
https://groups.google.com/forum/?hl=en&fromgroups=#!topic/gnu.emacs.help/RHKP2gjx7I8" 
    (fset (intern (concat (symbol-name cmd) "-repeat")) 
     `(lambda ,(help-function-arglist cmd) ;; arg list 
      ,(format "A repeatable version of `%s'." (symbol-name cmd)) ;; doc string 
      ,(interactive-form cmd) ;; interactive form 
      ;; see also repeat-message-function 
      (setq last-repeatable-command ',cmd) 
      (repeat nil))) 
    (intern (concat (symbol-name cmd) "-repeat"))) 

(global-set-key (kbd "C-x o") (make-repeatable-command 'other-window)) 

La función make-repeatable-command que entonces puede utilizar para crear otros comandos que se repiten, utilizando la misma plantilla.

+0

Gracias por la respuesta. ¿Tengo que poner el script en mis .emacs? – rabidmachine9

+1

Sí, al agregar esa línea a sus .emacs se configurará la clave para cada sesión de emacs.Para agregarlo a su sesión actual sin reiniciar, simplemente ingrese la línea en el búfer de scratch y luego escriba C-j. – Tyler

4

Tiene, por ejemplo, 10 ventanas en el marco, y está haciendo M-x other-window muchas veces seguidas, supongo que salta, digamos ventana # 2 a ventana # 8 y luego a ventana # 1 y así sucesivamente. Al hacer un montón de other-window en una fila, me imagino que no hace nada importante hasta que llegue a la ventana deseada.

Ver si universal-argument se vincula a C-u ayuda. En el marco de la ventana 10, si se encuentra en la ventana n. ° 3 y quiere ir a la ventana n. ° 9, estará saltando a la sexta ventana siguiente. Entonces harías C-u 6 C-x o. O bien, también puede hacer C-u -4 C-x o y llegar a la ventana n. ° 9 desde la ventana n. ° 3.

4

poco tarde a la fiesta, pero también hay window-numbering (conocido como 'ventana de números' en Melpa).

Esto incluye un número de la ventana en el modeline -1-, -2- etc, y proporciona M-1, etc M-2 asociaciones de teclas para seleccionar directamente. Muy rápido.

+0

Parece que esto se llama 'ventana-numeración' ahora en melpa –

Cuestiones relacionadas