Emacs에서 스크롤할 때 커서 위치를 변경하지 마세요

Emacs에서 스크롤할 때 커서 위치를 변경하지 마세요

Emacs스크롤하는 동안 텍스트 커서 위치(포인트라고도 함)가 자동으로 이동하는 것을 중지할 수 있는 방법이 있습니까 ? 나는 계속해서 내 위치를 잃어버리고 이 짜증나는 행동으로 표시합니다.

다음 제안을 테스트했지만 성공하지 못했습니다.

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

(저는 EmacsUbuntu와 OS X에서 24.2를 실행하고 있습니다.)

답변1

나는 당신이 커서(점)의 동작을 원한다고 생각하며 가시 영역은 다른 최신 편집기에서와 같아야 합니다 notepad. gedit포인트 위치와 관계없이 가시 영역을 변경하고 포인트 이동 후 즉시 가시 영역을 포인트 위치로 되돌릴 수 있는 기능입니다. 그러나 emacs또 다른 개념이 있습니다. 가시 영역은 항상 점 위치를 따르고 그 반대도 마찬가지입니다.

또한보십시오https://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs

이전 답변은 특별한 관용구를 보여줍니다. 가시 영역(점을 함께 사용하여)을 현재 위치에서 멀리 이동한 다음 정확히 이전 위치로 점을 반환하려면 사용하는 습관이 있어야 합니다 mark-ring. 항상 mark ring현재 작업 위치로 이동할 수 있는 방법이 있습니다 . isearch-forward, 와 같은 많은 명령은 자동으로 이전 위치를 저장하므로 beginning-of-buffer이전 에는 사용해서는 안 되며 뒤로 점프하는 용도 로만 사용해야 합니다. 또는 와 같은 스크롤 명령은 너무 많은 표시가 생성될 수 있으므로 기본적으로 이전 위치를 자동으로 저장하지 않습니다.ace-jump-modemark ringC-<SPC> C-<SPC>C-u C-<SPC>scroll-upmwheel-scroll

몇 군데에서 명령을 사용 clone-indirect-buffer하거나 버퍼를 사용하여 독립적인 작업을 수행할 수 있습니다. view-buffer-other-window그리고 recenter-top-bottom( C-l) 명령을 사용하여 가시 영역의 중앙에 점을 계속 유지합니다.

답변2

스크롤할 때 emacs가 포인트를 이동하는 것을 막는 방법이 있는지 모르겠습니다. 하지만 나중에 다시 돌아올 수 있도록 위치를 저장하고 싶다면 다음을 사용할 수 있습니다.마크 링.

즉, C-<SPC> C-<SPC>현재 포인트 위치를 마크 링으로 밀어 넣은 다음 나중에 C-u C-<SPC>마크 링의 이전 위치로 포인트를 설정하도록 입력합니다.

답변3

나는 이것을 사용합니다 :

;;; scrollers - M-f, M-b
(global-set-key "\M-f" "\C-u1\C-v")
(global-set-key "\M-b" "\C-u1\M-v")

답변4

다음은 나에게 효과적입니다.

(custom-set-variables
 '(scroll-conservatively 1000)
 '(scroll-margin 3)
 )

관련 정보