Existe uma maneira de impedir Emacs
a movimentação automática da posição do cursor de texto (também conhecido como ponto) enquanto estou rolando? Continuo perdendo minha localização e marcas com esse comportamento irritante.
Testei a seguinte sugestão, sem sucesso:
(setq scroll-preserve-screen-position t
scroll-conservatively 0)
(Estou executando Emacs
o 24.2 no Ubuntu e no OS X.)
Responder1
Eu acho que você deseja que o comportamento do cursor (ponto) e da área visível seja como em notepad
outros gedit
editores modernos: capacidade de alterar a área visível independentemente da posição do ponto e retornar imediatamente a área visível à posição do ponto após mover o ponto. Mas emacs
tem outra concepção: a área visível sempre segue a posição do ponto e vice-versa.
Veja tambémhttps://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs
A resposta anterior mostra um idioma especial: se você deseja mover a área visível (com o ponto junto) para longe da posição atual e depois retornar o ponto exatamente na posição anterior, você deve ter o hábito de usar mark-ring
. Sempre há um caminho 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 mark ring
e você não deve usá-los C-<SPC> C-<SPC>
antes, mas apenas C-u C-<SPC>
para voltar. Comandos de rolagem, como scroll-up
ou mwheel-scroll
, não salvam automaticamente a posição anterior por padrão porque podem produzir muitas marcas excessivas.
Você pode usar comandos clone-indirect-buffer
ou view-buffer-other-window
para trabalho independente com buffer em alguns lugares. E use o comando recenter-top-bottom
( C-l
) para manter continuamente o ponto no centro da área visível.
Responder2
Não sei se existe uma maneira de impedir que o emacs mova seu ponto durante a rolagem. Mas se quiser salvar sua localização para retornar a ela mais tarde, você pode usar oanel de marca.
Ou seja, digite C-<SPC> C-<SPC>
para inserir o local do ponto atual no anel de marcação e, posteriormente, digite C-u C-<SPC>
para definir o ponto para o local anterior no anel de marcação.
Responder3
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")
Responder4
O seguinte funciona para mim:
(custom-set-variables
'(scroll-conservatively 1000)
'(scroll-margin 3)
)