Esta pergunta foi originalmente feita em /programming/15895313/let-emacs-move-the-cursor-off-screen , mas todas as respostas que obtive mais ou menos disseram "não pode ser feito" , que com o emacs eu simplesmente não aceito.
É possível deixar o Emacs mover o cursor para fora da tela, como a maioria dos editores de texto da GUI funciona? Essa é uma das maiores coisas que me incomoda quando uso o Emacs sobre qualquer editor de GUI. Quando desloco para baixo, o cursor é "empurrado para frente" pela parte superior do buffer.
Anteriormente, eu pensava que isso era completamente impossível, porque isso está ligado à arquitetura do Emacs, mas vi vários cursores, o que faz exatamente isso para os cursores secundários (supondo que você impeça as funções de rolagem de atuar no secundário) cursores). Talvez seja possível usar cursores múltiplos para ter o cursor principal em algum buffer oculto, e o cursor efetivo é o que eu realmente edito? Ou talvez algum outro truque inteligente? Ou talvez meu Google tenha falhado comigo e isso já é possível sem mágica?
Eu uso o emacs do terminal, por isso deve funcionar lá.
Respostas:
Há um novo pacote disponível no GNU ELPA chamado
scroll-restore
que tenta solucionar esse problema. Existem vários comportamentos diferentes para escolher, mas a maneira como eu o configurei (veja abaixo) faz com que o cursor fique invisível durante os comandos de rolagem e depois volte ao seu local original quando eu começar a digitar novamente.Até agora, encontrei alguns bugs, mas o pacote parece funcionar como anunciado na maior parte. Você pode testá-lo instalando-o com
Após a instalação do pacote, você pode ativar o modo secundário com
Pessoalmente, estou vinculando-o à Scroll Lockchave porque parece incrivelmente apropriado! Isto é o que estou adicionando ao meu arquivo init:
fonte
O método que eu sempre uso é definir a marca para a qual quero voltar e, quando terminar de ler o buffer, mostro a marca usando
C-u C-SPC
. Mesmo quando eu esqueço de marcar a marca antes de me afastar, percebo que esse tipo de marca geralmente me deixa bem perto de onde vim. Isso se deve em parte ao fato de que alguns comandos (comoisearch
por exemplo) definem a marca sem você perceber. Assim, ao longo de sua edição, você inadvertidamente deixou uma pequena trilha de migalhas de pão.A partir da documentação:
Quase nunca me preocupo com a definição de marcadores ou registros, mas quase sempre consigo encontrar o caminho de volta de onde vim rapidamente usando um
C-u C-SPC
ou outropop-global-mark
.fonte
scroll-up
escroll-down
definir automaticamente a marca, paraC-u C-SPC
garantir que você volte de onde veio.O código a seguir é bom o suficiente para eu voltar depois da rolagem da roda do mouse:
fonte