Dans emacs, plus souvent que je n'aime, je me retrouve avec 4 fenêtres ou plus.
Je vais utiliser cet exemple:
+--------|-----------+
| | |
| 1 | 2 |
| | |
+--------+-----------+
| 3 | 4 |
| +-----------+
| | 5 |
+--------+-----------+
Beaucoup de fonctions peuvent effectuer des actions other-window
(généralement la même fenêtre pointée par C-x o
). Sont particulièrement utiles scroll-other-window
. Cependant, lorsque 4 fenêtres ou plus sont ouvertes, il other window
est peu probable que ce soit celle que je souhaite.
Existe-t-il un moyen simple de gérer la configuration other-window
sans modifier la disposition des fenêtres / tampons? Bien sûr, c'est faisable en utilisant un tas de C-x 4 b
et C-b
mais je ne veux pas changer la mise en page. Par exemple:
- en cas d'édition dans la fenêtre 4 de l'image ci-dessus, existe-t-il un moyen facile de régler
C-M-v
pour faire défiler la fenêtre 1 ? - Ou tout simplement, supposons que le focus se trouve sur la fenêtre 3 , comment définir
other-window
pour pointer vers la fenêtre 2 ?
M-1 M-2 ..
sélectionner la fenêtre numéro 1, 2 en utilisant lewindow-number
packageD'un examen rapide de la source,
other-window
il semble qu'il dépend en fait de la fenêtre renvoyée parnext-window
, qui est définie en c. Malheureusementscroll-other-window
est également défini en c, et appelle vraisemblablement la prochaine fenêtre à partir de là. Je ne pense pas qu'il soit facile de passer outre.Cependant,
switch-to-buffer-other-window
semble utiliserpop-to-buffer
, vous pouvez donc avoir de la chance là-bas.la source
Il n'y a pas de moyen facile de manipuler la liste des fenêtres, donc le résultat renvoyé par
other-window
est plus ou moins fixe. Ce n'est pas une mauvaise chose en soi, car cela permet une cohérence lors de la navigation dans les fenêtres. En ce qui concerne les deux scénarios que vous avez décrits, avec certains elisp ou macros, vous pouvez adapter votre flux de travail.Vous pouvez utiliser un simple extrait comme celui ci-dessous pour utiliser
other-window
le nombre approprié de fois, faire défiler vers le bas et revenir à la fenêtre d'origine.Vous pouvez passer un argument préfixe pour spécifier la fenêtre à faire défiler. Comme vous pouvez le déduire, il utilise le mécanisme intégré
other-window
pour ignorer learg
nombre de fenêtres avant de faire défiler. Lesave-selected-window
assure que le focus reviendra à la fenêtre d'origine. La documentation deother-window
peut fournir plus d'informations sur la modification de cet extrait de code en fonction de votre comportement.Utilisez à nouveau un
prefix-arg
comme dansC-3 C-x o
lors de l'appelother-window
. Le nombre réel à fournir variera en fonction de l'ordre dans lequel vous les divisez et ne changera pas tant que vous ne créerez pas de nouvelles fenêtres. Alternativement, vous pouvez utiliser des packages de commodité tels quewindow-number
ouace-window
de MELPA pour changer rapidement les fenêtres sélectionnées.la source
<f7> n
pour faire défiler la nième fenêtre. Créez des liaisons temporaires à une touche avec des macros de clavier.