Dans Emacs, C-x om'amène à la fenêtre suivante.
Quelle macro de clavier me ramène à la fenêtre précédente d'Emacs?
Dans Emacs, C-x om'amène à la fenêtre suivante.
Quelle macro de clavier me ramène à la fenêtre précédente d'Emacs?
Réponses:
Vous pouvez également essayer d'utiliser windmove qui vous permet de naviguer vers la fenêtre de votre choix en fonction de la géométrie. J'ai ce qui suit dans mon fichier .emacs pour changer de fenêtre à l'aide de la touche fléchée 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)
(windmove-default-keybindings)lie ces fonctions à SHIFT + haut / bas / gauche / droite, ce qui, à mon avis, est plus pratique que vos C-xliaisons (qui sont en conflit avec les liaisons par défaut également utiles pour previous-bufferet next-buffer. Lkahtz: la (kbd)fonction vous permet de spécifier des clés en notation de chaîne dans la syntaxe plus lisible qui est également utilisée par Emacs lorsque vous utilisez C-h kou C-h cpour décrire une liaison.
windmove-default-keybindingspour spécifier un modificateur différent à utiliser conjointement avec les touches fléchées; de sorte que cette fonction peut toujours être pratique pour les personnes qui utilisent le mode de sélection de décalage.
Personnellement je préfère utiliser window-number.el
Pour sélectionner une autre fenêtre, utilisez Ctrl- x, Ctrl- j n
Où n est le numéro de la fenêtre, la modeline de chaque fenêtre montre son numéro, comme indiqué sur la capture d'écran.

Téléchargez simplement window-number.el , placez-le dans votre chemin de chargement emacs et utilisez ce qui suit dans votre.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)
Il y a un autre mode similaire appelé switch-window.elqui vous donne de grands nombres dans les fenêtres ... (appuyer sur le nombre change la fenêtre et fait revenir l'affichage.)

(source: tapoueh.org )
C-x C-j, car c'est la liaison par défaut pour dired-jumpsi vous (require 'dired-x). (Voyez M-x customize-group RET dired-keys RETsi vous voulez remplacer cela.)
switch-window.el, il utilise à la C-x oplace, et quand il n'y a que deux fenêtres actives, il sélectionne simplement l'autre fenêtre. Je pense qu'il est plus sage de se rebeller C-x opour faire l' window-numberaffaire, vous avez tout à fait raison dired-jump. Personnellement, je fais moins de changement de fenêtre et C-x bje m'utilise moi-même, mais avoir l'amélioration C-x oest assez agréable.
Si vous travaillez beaucoup avec plusieurs fenêtres emacs (> 3) et que vous voudrez enregistrer quelques frappes, ajoutez ceci à votre fichier init et vous serez mieux:
(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)
Maintenant, il suffit de parcourir rapidement les fenêtres avec Mo
other-windowpour que cela fonctionne.
Il y a ici de très bonnes réponses complètes, mais pour répondre à la question de manière minimaliste:
(defun prev-window ()
(interactive)
(other-window -1))
(define-key global-map (kbd "C-x p") 'prev-window)
previous-windowintégré.
M-xdonc devrait servir un but différent.
Basé sur l'idée de @Nate mais légèrement modifié pour prendre en charge le cycle arrière entre les fenêtres
;; 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)
Juste pour ajouter à la réponse de @Nate, @aspirin et @ Troydm, je trouve que c'est un ajout très utile si vous décidez de lier les commandes windmove à la combinaison de touches que vous choisissez:
(setq windmove-wrap-around t)
Avec la configuration par défaut, vous obtiendrez une erreur lorsque vous tenterez de vous déplacer vers une fenêtre qui n'existe pas, ce qui devient un peu ennuyeux après un certain temps. Cependant, lorsque windmove-wrap-around est défini, une tentative de déplacement du bas du cadre, par exemple, sélectionnera à la place la fenêtre la plus haute du cadre. Cela peut être un comportement plus intuitif pour vous.
M-net M-pcela a le plus de sens pour moi, car ils sont analogues à C-n( next-line ) et C-p( previous-line ):
(define-key global-map (kbd "M-p") 'previous-multiframe-window)
(define-key global-map (kbd "M-n") 'other-window)
M-net M-psont déjà utilisés dans les terminaux (gdb, python, ielm, etc.), vous devrez donc revenir à une autre méthode pour sortir du tampon du terminal.
En référence à la réponse de Nate, j'ai remplacé le arrow keyspour utiliser le traditionnel ppour aller up, npour aller down, fpour aller rightet bpour aller left. J'ai également remplacé le Ctrlavec Superclé comme C-p, C-n, C-f and C-bsont les touches de déplacement par défaut. Cette combinaison avec Mvous permet de sauter des caractères et des lignes au lieu de les parcourir un par un après chaque frappe. SuperKey s'est donc senti le meilleur choix pour garder une reliure de clé facile. De plus, vous n'avez plus besoin de retirer votre main de la ligne de départ!
(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)
J'espère que ça aide!
(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)))
altjet altkparcourra vos tampons visibles. En avant et en arrière, pour être exact.
Il existe déjà un package qui vous permet de changer de fenêtre en utilisant M-. consultez ce site Web . Ajoutez ceci à votre fichier init:
(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"
C-x zpour répéter la dernière commande pour changer rapidement de fenêtre.