Domanda

In Emacs, C-x o mi prende alla finestra successiva.

Cosa macro di tastiera mi porta alla finestra precedente in Emacs?

È stato utile?

Soluzione

Sarebbe C-- C-x o

In altre parole, C-x o con un argomento di -1.È possibile specificare il numero di finestre di muoversi con l'inserimento di un argomento numerico tra C-u e il comando, come in C-u 2 C-x o. (C-- è una scorciatoia per C-u - 1)

Altri suggerimenti

Si potrebbe anche voler provare a utilizzare windmove che consente di accedere alla finestra di scelta, in base alla geometria.Ho il seguente nel mio .emacs file per modificare windows con C-x tasto freccia.

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

Personalmente preferisco usare window-number.el

Per selezionare una diversa finestra, utilizzare Ctrl-x, Ctrl-j n

Dove n è il numero della finestra, la modeline di ogni finestra mostra è il numero, come mostrato nella schermata.

Basta scaricare finestra-numero.el, metterlo in emacs load-path e utilizzare i seguenti .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)

C'è un altro modo simile chiamato switch-window.el che ti dà grandi numeri in windows...(premendo il numero di interruttori di finestra e viene ripristinato il display).

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

Se si lavora con più emacs windows (>3) un sacco e si desidera salvare alcune combinazioni di tasti aggiungere questo al tuo file init, e vi sentirete meglio:

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

Ora solo ciclo rapidamente attraverso le finestre con M-o

Ci sono alcuni molto buoni e risposte qui, ma per rispondere alla domanda, in uno stile minimalista:

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

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

Base su idea da @Nate, ma leggermente modificato per supportare indietro in bicicletta tra windows

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

Solo per aggiungere a @Nate, @aspirina e @Troydm risposta ho trovato questo per essere molto utile se si decide di associare il windmove comandi per qualsiasi combinazione di tasti che si sceglie:

(setq windmove-wrap-around t)

Con la configurazione predefinita, verrà visualizzato un errore quando si arriva a tenta di spostare una finestra che non esiste, che diventa una sorta di fastidioso dopo un po'.Tuttavia, quando windmove-wrap-around è impostato quindi il tentativo di spostare la parte inferiore del telaio per esempio, invece di selezionare la finestra più in alto nel fotogramma.Questo può essere un modo più intuitivo di comportamento per voi.

M-n e M-p rende più senso per me, dal momento che essi sono analoghi a C-n (next-line) e C-p (precedente-line):

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

(ispirato a questo e che)

In riferimento a Nate risposta, ho sostituito il arrow keys utilizzare la tradizionale p per andare up, n per andare down, f per andare right e b per andare left.Ho anche sostituito la Ctrl con Super la chiave, come C-p, C-n, C-f and C-b di default i tasti di movimento.Questa combinazione con M permette di saltare i caratteri e le linee, invece di scorrere uno per uno dopo ogni pressione del tasto.Così Super chiave sentito la scelta migliore per mantenere un'associazione di tasti.Inoltre, ora non c'è bisogno di prendere la mano fuori casa di fila più!

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

Speranza che aiuta!

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

altj e altk si passa attraverso il vostro visibili buffer.Avanti e indietro, per essere esatti.

C'è già un pacchetto che ti permette di passare in windows utilizzando M-. controllare questo sito.Aggiungere questo al tuo file 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"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top