Frage

In Emacs, C-x o bringt mich zum nächsten Fenster.

Welche Tastatur Makro nimmt mich zum vorherigen Fenster in Emacs?

War es hilfreich?

Lösung

Das wäre C-- C-x o

Mit anderen Worten, C-x o mit einem Argument von -1. Sie können festlegen, wie viele Fenster durch Einfügen eines numerischen Argument zwischen C-u und der Befehl, wie in C-u 2 C-x o zu bewegen. ( C - ist eine Abkürzung für C-u - 1 )

Andere Tipps

Sie möchten vielleicht auch mit windmove, um zu versuchen, die Sie in das Fenster Ihrer Wahl auf Geometrie basiert können navigieren. Ich habe folgendes in meinem .emacs-Datei Fenster ändern C-x Pfeil-Taste.

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

Persönlich ziehe ich es benutzen window-number.el

Um ein anderes Fenster wählen Sie mit Strg - x , Strg - j n

Wo n ist die Nummer des Fensters, die Modeline jeden Fensters zeigt es Nummer, wie im Screenshot gezeigt.

Einfach herunterladen Fenster-number.el , legen Sie sie in Ihrem emacs Last-Pfad und verwenden Sie die folgende in Ihrer .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)

Es gibt einen anderen ähnlichen Modus namens switch-window.el , die Sie große Zahlen in den Fenstern gibt ... ( Drücken die Anzahl der Fenster schaltet und die Anzeige zurückkehrt.)

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

Wenn Sie arbeiten mit mehreren Emacs-Fenster (> 3) eine Menge, und Sie werden einige Tastenanschläge fügen Sie diese zu Ihrer init-Datei speichern möchten, und Sie werden besser gestellt werden:

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

Jetzt Zyklus nur schnell durch die Fenster mit M-o

Es gibt einige sehr gute und vollständige Antworten hier, aber die Frage in einer minimalistischen Art und Weise zu beantworten:

 (defun prev-window ()
   (interactive)
   (other-window -1))

 (define-key global-map (kbd "C-x p") 'prev-window)

Base auf Idee von @Nate aber leicht modifiziert nach hinten zur Unterstützung zwischen den Fenstern Radfahren

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

Gerade in der @Nate, @aspirin und @ Troydm Antwort finde ich dies eine sehr hilfreiche Ergänzung zu sein, wenn Sie sich entscheiden, die windmove zu binden Befehle, um was auch immer Tastenkombination können Sie wählen:

(setq windmove-wrap-around t)

Mit der Standardkonfiguration wird eine Fehlermeldung angezeigt, wenn Sie versuchen, erhalten an ein Fenster zu bewegen, der nicht existiert, die nach einer Weile Art ärgerlich wird. Wenn jedoch windmove-wrap-around gesetzt ist, dann die Unterseite des Rahmens beispielsweise versuchen, sich zu bewegen weg wird stattdessen das oberste Fenster in dem Rahmen auszuwählen. Dies kann ein intuitives Verhalten für Sie sein.

M-n und M-p macht am meisten Sinn für mich, da sie ( next-line ) und C-n ( previous-line ) C-p analog sind:

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

(inspiriert von diese und dass )

In Bezug auf Nates Antwort, ersetzen ich den arrow keys die traditionelle p verwenden für das Gehen up, n für das Gehen down, f für für den Gang right b und left gehen. Ich ersetzen auch den Ctrl mit Super Schlüsseln als C-p, C-n, C-f and C-b die Standard-Bewegungstasten sind. Diese Kombination mit M können Sie Zeichen und Linien springen, anstatt durch eine nach jedem Tastendruck durch nur einen gehen. So Super Schlüssel spürte die beste Wahl, um es einen einfachen Schlüssel zu halten verbindlich. Auch jetzt nicht, nehmen Sie Ihre Hand von der Grundlinie mehr!

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

Hoffe, es hilft!

(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 und alt k radeln durch Ihre visibles Puffer. Vorwärts und rückwärts, um genau zu sein.

Es gibt bereits ein Paket, das Sie Fenster kann wechseln, indem Sie M- mit. überprüfen Sie diese Website . Fügen Sie diese auf Ihrer init-Datei:

(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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top