Pergunta

No Emacs, C-x o me leva para a próxima janela.

O macro teclado leva-me para a janela anterior no Emacs?

Foi útil?

Solução

Isso seria C-- C-x o

Em outras palavras, C-X O com um argumento de -1. Você pode especificar quantas janelas para passar através da inserção de um argumento numérico entre C-u e de comando, como em C-u 2 C-x o . ( C - é um atalho para C-u - 1 )

Outras dicas

Você também pode querer tentar usar windmove que permite que você navegue para a janela de sua escolha com base na geometria. Eu tenho o seguinte no meu .emacs arquivo para janelas de mudança usando C-x arrow-chave.

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

Pessoalmente eu prefiro usar window-number.el

Para selecionar uma janela diferente, use Ctrl - x , Ctrl - j n

Onde n é o número da janela, o modeline de cada janela mostra que é número, como mostrado na imagem.

janela-number.el , coloque-o em sua emacs load-caminho e use o seguinte em seu .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)

Há outro modo semelhante chamado switch-window.el que lhe dá grandes números nas janelas ... ( pressionando o número muda a janela e reverte o visor.)

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

Se você trabalhar com múltiplas janelas Emacs (> 3) muito e você vai querer salvar algumas teclas digitadas adicioná-lo ao seu arquivo de inicialização e você vai ser melhor:

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

Agora é só passar rapidamente através das janelas com M-o

Existem algumas muito boas e completas respostas aqui, mas para responder à pergunta de uma forma minimalista:

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

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

Base ideia de @Nate mas ligeiramente modificado para suportar para trás o ciclismo entre janelas

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

Apenas para adicionar à @Nate, @aspirin e resposta da @ Troydm eu achar que isso seja uma adição muito útil se você decidir vincular os comandos windmove para qualquer combinação de teclas que escolher:

(setq windmove-wrap-around t)

Com a configuração padrão, você receberá um erro quando você começa a tentar mover-se para uma janela que não existe o que se torna uma espécie de irritante depois de um tempo. No entanto, quando windmove-wrap-around é definido, em seguida, tentar mover para fora da parte inferior do quadro, por exemplo, em vez disso, selecione a janela de nível superior no quadro. Este pode ser um comportamento mais intuitiva para você.

M-n e M-p faz mais sentido para mim, uma vez que são análogo ao C-n ( próxima-line ) e C-p ( anterior-line ):

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

(inspirado para este e que )

Em referência à resposta de Nate, eu substituiu o arrow keys usar o p tradicional para ir up, n para ir down, f para ir right e b para ir left. Eu também substituiu o Ctrl com chave Super como C-p, C-n, C-f and C-b são as chaves do movimento padrão. Esta combinação com M permite-lhe saltar personagens e linhas em vez de ir através de apenas um por um depois de cada tecla. Assim chave Super sentiu a melhor escolha para mantê-lo uma chave fácil ligação. Além disso, agora você não tem que tirar a mão da linha de casa mais!

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

Espero que ajude!

(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 e alt k ciclo vontade por meio de seus Visibles tampões. Frente e para trás, para ser exato.

Já existe um pacote que permite alternar janelas usando M-. verificar este website . Adicione isto a seu arquivo de inicialização:

(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"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top