Não mude a posição do cursor quando estiver rolando no Emacs

14

Existe uma maneira de impedir que Emacs mova automaticamente a minha posição do cursor de texto (aka, ponto) enquanto estou rolando? Eu continuo perdendo minha localização e maroto com esse comportamento chato.

Eu testei a seguinte sugestão, sem sucesso:

(setq scroll-preserve-screen-position t
scroll-conservatively 0)

(Estou executando Emacs 24.2 no Ubuntu e no OS X.)

    
por NVaughan 03.01.2013 / 03:06

4 respostas

8

Eu acho que você quer o comportamento do cursor (ponto) e a área visível deve ser como notepad , gedit , outros editores modernos: capacidade de alterar a área visível independentemente da posição do ponto e retornar imediatamente a área visível ao ponto posição após o ponto de movimento. Mas emacs tem outra concepção: a área visível sempre segue a posição do ponto e vice-versa.

Veja também link

Resposta anterior mostra idioma especial: se você quiser mover a área visível (com o ponto junto) longe da posição atual e, em seguida, retornar o ponto exatamente na posição anterior, você deve ter o hábito de usar mark-ring . Existe sempre um caminho entre mark ring para a posição de trabalho atual: muitos comandos, como isearch-forward , beginning-of-buffer , ace-jump-mode salvam automaticamente a posição anterior em mark ring e você não deve usar C-<SPC> C-<SPC> antes, mas apenas C-u C-<SPC> para pular de volta. Os comandos de rolagem, como scroll-up ou mwheel-scroll , não salvam automaticamente a posição anterior por padrão, pois podem produzir muitas marcas em excesso.

Você pode usar os comandos clone-indirect-buffer ou view-buffer-other-window para trabalhos independentes com o buffer em poucos lugares. E use o comando recenter-top-bottom ( C-l ) para manter continuamente o ponto no centro da área visível.

    
por 06.01.2013 / 12:40
7

Não sei se existe uma maneira de impedir que o emacs mova seu ponto ao rolar a tela. Mas se você quiser salvar sua localização para voltar a ela mais tarde, use o marcar anel .

Ou seja, digite C-<SPC> C-<SPC> para empurrar o local do ponto atual para o anel de marca, depois digite C-u C-<SPC> para definir o ponto para o local anterior no anel de marca.

    
por 04.01.2013 / 21:26
3

Eu uso isso:

;;; scrollers - M-f, M-b
(global-set-key "\M-f" "\C-u1\C-v")
(global-set-key "\M-b" "\C-u1\M-v")
    
por 11.05.2013 / 16:33
0

O seguinte funciona para mim:

(custom-set-variables
 '(scroll-conservatively 1000)
 '(scroll-margin 3)
 )
    
por 02.06.2015 / 02:25