112 votes

Pour intervertir les tampons en 2 windows emacs

J'utilise emacs je trouve que, parfois, j'ai 2 fichiers séparés dans 2 windows.

Par exemple: - Je ouvrir 1 fichier à l'aide de C-x C-f fichier1.c RET

et je diviser l'image en deux fenêtres: C-x 3

Puis je ouvrir un fichier C-x C-f fichier2.c RET

Donc, j'ai 2 fichiers:

la fenêtre 1 (à gauche) file1.c

la fenêtre 2 (à droite) file2.c

Je me demandais si il n'y a aucune combinaison de touche pour permuter les fichiers de plus? Normalement, j'aime bien travailler sur la gauche de la fenêtre quand j'ai 2 de la fenêtre. Je sais que je peux facilement le faire en C-x opour déplacer le curseur dans la fenêtre de droite.

Cependant, je me demandais simplement si je peux échanger les fichiers de sorte qu' file2.c est dans la fenêtre de gauche et file1.c est dans la fenêtre de droite?

95voto

Raja Selvaraj Points 1631

J'utilise de la mémoire tampon se déplacer pour cela. Maintenant, si vous travaillez sur le tampon sur le côté gauche, de l'appel à 'buf-déplacer à droite" sera l'échanger avec celui de droite. Je suppose que c'est ce que vous voulez.

36voto

phils Points 30543

La transposition cadre de la bibliothèque offre un joli ensemble complet de fonctions de retournement ou de la rotation de la fenêtre d'arrangements en images.

M-x flop-frame RET fait quoi cette question particulière besoins.

Les diagrammes suivants sont du commentaire dans la bibliothèque (et de ses EmacsWiki page):

‘transpose-frame' … Swap x-direction and y-direction

       +------------+------------+      +----------------+--------+
       |            |     B      |      |        A       |        |
       |     A      +------------+      |                |        |
       |            |     C      |  =>  +--------+-------+   D    |
       +------------+------------+      |   B    |   C   |        |
       |            D            |      |        |       |        |
       +-------------------------+      +--------+-------+--------+

‘flip-frame' … Flip vertically

       +------------+------------+      +------------+------------+
       |            |     B      |      |            D            |
       |     A      +------------+      +------------+------------+
       |            |     C      |  =>  |            |     C      |
       +------------+------------+      |     A      +------------+
       |            D            |      |            |     B      |
       +-------------------------+      +------------+------------+

‘flop-frame' … Flop horizontally

       +------------+------------+      +------------+------------+
       |            |     B      |      |     B      |            |
       |     A      +------------+      +------------+     A      |
       |            |     C      |  =>  |     C      |            |
       +------------+------------+      +------------+------------+
       |            D            |      |            D            |
       +-------------------------+      +-------------------------+

‘rotate-frame' … Rotate 180 degrees

       +------------+------------+      +-------------------------+
       |            |     B      |      |            D            |
       |     A      +------------+      +------------+------------+
       |            |     C      |  =>  |     C      |            |
       +------------+------------+      +------------+     A      |
       |            D            |      |     B      |            |
       +-------------------------+      +------------+------------+

‘rotate-frame-clockwise' … Rotate 90 degrees clockwise

       +------------+------------+      +-------+-----------------+
       |            |     B      |      |       |        A        |
       |     A      +------------+      |       |                 |
       |            |     C      |  =>  |   D   +--------+--------+
       +------------+------------+      |       |   B    |   C    |
       |            D            |      |       |        |        |
       +-------------------------+      +-------+--------+--------+

‘rotate-frame-anti-clockwise' … Rotate 90 degrees anti-clockwise

       +------------+------------+      +--------+--------+-------+
       |            |     B      |      |   B    |   C    |       |
       |     A      +------------+      |        |        |       |
       |            |     C      |  =>  +--------+--------+   D   |
       +------------+------------+      |        A        |       |
       |            D            |      |                 |       |
       +-------------------------+      +-----------------+-------+

16voto

zippy Points 417

Si vous utilisez prélude vous pouvez simplement utiliser "C-c-s" (prélude-swap de windows)

11voto

Bahbar Points 12482

Je ne suis pas au courant d'une fonction intégrée de faire cela.

Cependant, il ne semble pas trop difficile à fouetter jusqu'certains elisp pour le faire. Diable est dans les détails.

(defun swap-buffers-in-windows ()
  "Put the buffer from the selected window in next window, and vice versa"
  (interactive)
  (let* ((this (selected-window))
     (other (next-window))
     (this-buffer (window-buffer this))
     (other-buffer (window-buffer other)))
    (set-window-buffer other this-buffer)
    (set-window-buffer this other-buffer)
    )
  )

Notamment, cela peut ne pas être en train de faire ce que vous désirez avec respect à l'endroit où le curseur se termine. Cependant, vous pensez d'abord à dire ce que vous voulez :p

-1voto

khedron Points 463

Je voudrais pouvoir ouvrir fichier n ° 2 à l'emplacement souhaité, c'est à dire après vous frappez c-x 3, déplacez le curseur avec c-x o avant de passer à la deuxième fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X