Como alterno entre janelas rapidamente?
Muitas vezes, tenho várias janelas abertas e preciso alternar entre elas. Agora, eu uso C-x o
para chegar ao que eu quero. Existe um fluxo de trabalho mais eficiente disponível para isso?
window
cycling
navigation
Sibi
fonte
fonte
Respostas:
Obviamente, prefiro uma janela de ás para isso. Você pode alternar entre janelas e quadros visíveis. Está no MELPA, você pode instalá-lo rapidamente. A única coisa que resta a fazer é vinculá-lo:
Ou talvez use um acorde mais curto, pois alternar janelas é uma tarefa comum:
Sumário de
ace-window
É um substituto para o drop-in
other-window
. Ao contrário do último, você nunca precisa ligarace-window
duas ou mais vezes para selecionar uma janela: você seleciona a janela que deseja em uma chamada (possivelmente em vários quadros).Além de alternar entre janelas,
ace-window
pode fazer mais (excluir ou trocar janelas etc.), consulte o arquivo LEIA-ME .fonte
ace-window
e depois vi oswitch-window
que parece fazer aproximadamente a mesma coisa, exceto que as letras são mais pronunciadas. parece engraçado, temos os dois pacotes.switch-window
até me submeterace-window
ao MELPA.ace-window
, ele tem mais personalização do que outros pacotes, eu acho. Ainda assim, uma ajuda no futuro é uma ligação de chave para uma função que seria de maneira semelhante à ação de troca inteligente, mas consumiria essa janela, resultando em uma janela maior no ponto e uma janela escolhida em tamanho menor (a consumida janela). A proporção deve ser determinada nesse caso como metade, um quarto ou um terço.Uma maneira é usar
windmove
. Com seus atalhos de teclado padrão, ele permite alternar para a janela ao lado da ativa no momento.Ele é construído no Emacs, portanto não há necessidade de instalar nada; basta ativá-lo com a seguinte configuração mínima no seu arquivo init:
Você pode então mudar para o Windows vizinhos utilizando as seguintes teclas (onde a seta utilizado intuitivamente define a direção em que você se move):
S-<left>
,S-<right>
,S-<up>
,S-<down>
.Se você preferir usar outro modificador, em vez de shift, poderá fornecê-lo como argumento
windmove-default-keybindings
. Por exemplo:ou
Mais informações no Emacs Wiki .
fonte
(windmove-default-keybindings 'meta)
conforme sugerido no EmacsWiki.Shift-arrow
) , mas quando você tem um monitor grande com muitas divisões, esse movimento rapidamente se torna pesado. Seria mais interessante de alguma forma enumerar janelas / divisões. Comoace-window
, mas com menos pressionamentos de tecla e um algoritmo óbvio para descobrir imediatamente o número desejado.Você pode vincular
other-window
a uma sequência de teclas mais fácil de digitar.Por exemplo, eu tenho
C-.
vinculado aother-window
, eC-,
obrigado a ir para a janela anterior.Isso é especialmente útil para mover várias janelas; depois de pressionar Control, você só precisa pressionar um único botão para ir para a próxima janela. Isso é muito mais fácil do que três pressionamentos de tecla por movimento.
fonte
C-x o
paraother-window
é um dos poucos candidatos sólidos ao título de "pior atalho padrão do emacs". Minha solução (semelhante ao zck) foi voltarother window
a uma sequência de teclas (muito) mais fácil - eu a vinculeiC-;
(e a minhaCaps-Lock
é trocadaCtrl
por tudo o que é preciso é um toque rápido nos dedos mínimos). Aliás, sou totalmente dependente de certos recursos dohelm
eicicles
(ou seja, não sou "anti-packages" nem nada); Eu apenas acho que uma solução simples funciona melhor aqui.M-o
paraother-window
. Alguns modos já temM-o
ligação, nomeadamentediff-mode
,ggtag-mode
eibuffer-mode
. Você precisa desatá-lo manualmente em cada mapa de modo.unbind-key
fornecido porbind-key.el
é muito útil.M-o
, e estouM-O
ligado aace-window
quando preciso de energia adicional.window-numbering.el!
Atribuo a tecla de atalho ", 1", ", 2", ", 3" para alternar entre janelas específicas (observe que eu uso o modo maligno)
além disso, mostro o número da janela na linha de modo na cor PINK, sublinhada.
É uma dica visual que você nunca pode ignorar,
Essa é a maneira mais rápida de mudar de janela.
verifique https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-evil.el e https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-modeline .el para minha configuração.
Sylvain Benner adotou minha idéia no espaço, mas as combinações de teclas são diferentes . Portanto, se você usa o spacemacs, obtém a solução mais rápida imediatamente.
fonte
window-number
comM-<num>
para alternar rapidamente as janelas preto e branco. Conceito semelhante a esteSem usar nenhum complemento adicional, você pode continuar usando
C-x o
um prefixo opcional para pular essas janelas. Por exemplo:C-u 1 C-x o
vai para a próxima janela na ordem (ou seja, o que você obteria com a planícieC-x o
),C-u 2 C-x o
abre duas janelas,C-u 3 C-x o
abre três janelas e assim por diante.Um trecho da
other-window
doutrina (a função chamada porC-x o
:fonte
Algumas pessoas podem se lembrar do editor Brief (engraçado o suficiente por uma empresa chamada Underware).
Tinha uma maneira elegante de alternar entre janelas visíveis. A seta M moveria o cursor para a janela diretamente em linha com a direção da tecla de seta.
Então, eu mapeados os
winmove-left
,winmove-right
,winmove-up
ewinmove-down
funções paraM-left
,M-right
,M-up
eM-down
teclas na seguinte sequência no meu arquivo .emacs -Agora posso mover-me com facilidade entre janelas, independentemente de quão confusa eu tenha a configuração ... E pode ficar bastante confusa com o tamanho dos monitores hoje em dia ...
fonte
(windmove-default-keybindings 'meta)
!Se você usar Icicles ,
C-x o
poderá selecionar janelas pelo nome (ou andar de bicicleta).Sem prefixo arg,
C-x o
é o mesmo de sempre, aother-window
menos que o quadro tenha apenas uma janela; nesse caso, éother-frame
.Com um prefixo arg,
C-x o
é um comando múltiplo que permite navegar entre janelas ou quadros por nome (ou de bicicleta). Navegar entre janelas usa multi-comandoicicle-select-window
; navegando entre os usos de quadrosicicle-select-frame
.Qual navegação é usada depende do prefixo arg:
Zero prefixo arg (por exemplo
C-0
): se o quadro selecionado tiver várias janelas, isto éicicle-select-window
, com janelas no mesmo quadro que os candidatos. Caso contrário (quadro de janela única), é issoicicle-select-frame
.C-u
: Se o quadro selecionado tiver várias janelas, é o casoicicle-select-window
, com as janelas de todos os quadros visíveis como candidatas. Caso contrário, é issoicicle-select-frame
.C-u C-u
:icicle-select-window
, com janelas de todos os quadros como candidatos (incluindo quadros iconificados ou ocultos).Como sempre em Sincelos , você pode combinar (a) a conclusão , digitando o texto para restringir o conjunto de candidatos correspondentes (nomes de janelas ou quadros, neste caso), com (b) ciclismo (entre candidatos correspondentes).
fonte
Considere usar um acorde para pular rapidamente entre janelas. Acho muito mais rápido do que pegar uma tecla modificadora (e menos cansativa também).
Minha escolha de pacote a ser usada é o
ace-window
que permite navegar em várias janelas mais facilmente do que apenasother-window
.Obviamente, para usar isso, você precisa
key-chord
eace-window
ambos estão disponíveis no melpa.fonte
ace-window
está fazendo o trabalho como na resposta de @ abo-abo. Parece-me que, nesse contexto, a combinação de teclas específica a ser usada faria mais sentido como um comentário do que como uma resposta. Apenas meus dois centavos.key-chord
é possível vincular combinações de teclas muito acessíveis. O exemplo de ligação dexo
é mais rápido queC-x o
(profundidade de um versus dois). Essa resposta pode ser reformulada para enfatizar que a resposta é ortogonal às outras respostas sobre a seleção de funções (eace-window
é apenas uma das muitas opções que podem ser vinculadas da maneira descrita). Mantenha esta resposta como distinta!Algumas boas respostas aqui, também sou fã do WinMove, mas vinculo-o ao C- porque o modo org usa M- para manipular títulos
Onde fica realmente bom é se você combiná-lo com o Hydra . Seguindo os exemplos em seu wiki , criei meu próprio monstro:
Isso permite alterar janelas, redimensioná-las, mover buffers de janela para janela, alternar buffers, kill buffers e até desfazer configurações de janelas via modo vencedor, além de integrar o leme. Para sair da hidra, basta pressionar a seta ou outra tecla que não esteja na hidra. Você pode encontrar as funções "hydra-move" nos exemplos da hidra. O melhor da hidra é que não preciso me lembrar de todas essas teclas e seus "modestos"; assim, quando estiver na hidra, tudo estará disponível como uma única tecla. pressione.
fonte
(windmove-default-keybindings 'control)
.Se você usar
evil-mode
, basta usar um prefixo numérico comC-w C-w
(evil-window-next
) para escolher a janela que deseja. Então:1 C-w C-w
seleciona a primeira janela em ordem cíclica,3 C-w C-w
escolhe a terceira janela em ordem cíclica e assim por diante.fonte
O Ace Jump permite que você navegue com o ponteiro em todas as palavras da tela, independentemente da janela ou moldura em que estão, portanto, não é tão diferente de usar a Ace Window ou a Switch Window.
Uma vantagem é que, ao pular janelas, você também pode posicionar o ponteiro com alguma precisão.
Ainda acho um pouco complicado ou perturbador, e acho que estou usando
windmove
mais, porque é muito simples, mas ainda uso o Ace Jump quando leio em outra janela ou moldura e quero ir para um local lá.fonte
Como sempre, existem centenas de maneiras diferentes de conseguir isso. Minha maneira preferida é usar o NumberedWindows . Em seguida, defino o seguinte atalho de teclado usando Super e as teclas 1-9.
Entro em um pouco mais de detalhes sobre esse assunto exato com um post recente que você pode ler em Afternoon Coder .
fonte
Você também pode optar por usar a janela do comutador como um substituto visual para
C-x o
fonte
switch-window
sobre todos os outros?