Após a emissão scroll-up
ou scroll-down
no emacs, existe uma maneira rápida de retornar o ponto à sua posição anterior (supondo que eu não lembrei de adicioná-lo ao anel da marca)?
Como alternativa, existe alguma maneira (sem interferir no anel da marca) de alterar o comportamento da rolagem, de modo que a rolagem para cima e a rolagem para baixo (ou vice-versa) retornem o ponto à sua posição original? (por exemplo, faça a rolagem mover o ponto exatamente x linhas onde x é a altura da tela)
Estou no processo de me acostumar com o emacs e esta é uma das situações mais comuns que provocam maldições: rolar para ver outra parte do meu código sem lembrar de adicionar minha linha ao anel de marcação e, depois, é doloroso tentar para realocar a linha de código em que estava trabalhando. Sendo assim, enquanto estou solicitando uma solução técnica, também estaria interessado em saber como usuários experientes evitam esse problema. Você se acostuma a lembrar de definir uma marca, dividir a janela para olhar em volta ou usar algum outro padrão?
obrigado
scroll-up-line
que (que é o que eu uso com minha roda de rolagem) faça o cursor avançar um caractere quando ele atingir a parte superior ou inferior da tela.(setq scroll-preserve-screen-position 'always)
. Caso contrário,C-v M-v
não pôs um ponto onde você começou (A segunda posição ponto é visível na primeira tela cheia de modo ponto de não se mover para trás.).O que eu achei que funcionou bem é usar
goto-last-change.el
, o que leva você de volta ao local em que você fez uma edição pela última vez. Eu gosto da encadernação:fonte
C-_ C-f C-_
(desfazer, mover, desfazer).Em resposta à sua pergunta sobre como evito o problema que você descreve (procurando em outro lugar no código e retornando ao ponto em que eu estava trabalhando) ...
Normalmente, dividirei a tela quando precisar procurar brevemente em outro lugar. Depois, posso voltar à tela original com
C-x o
, sem dividirC-x 1
e voltei ao normal.Eu também uso a pesquisa i para frente e para trás para localizar um ponto de interesse específico no código. Acho que é uma maneira bastante eficiente de navegar no código quando sei o que estou procurando.
fonte
Se eu estiver rolando apenas algumas linhas de onde estou atualmente, posso usá-lo para rolar a janela sem mover o ponto:
Se estou mudando para uma seção completamente diferente de um arquivo (ou para um arquivo completamente diferente), às vezes eu uso,
breadcrumb
embora existam muitos outros pacotes que fazem coisas semelhantes.Se eu precisar visualizar visualmente duas áreas de código ao mesmo tempo, dividirei o quadro horizontalmente em duas janelas e descartarei a segunda janela quando terminar.
Principalmente, porém, eu apenas uso dois quadros, um sendo o meu quadro de trabalho atual e o outro é o meu quadro de referência, usado para pular o mesmo ou outros arquivos.
fonte
C-l
.