GNU Emacs에서 한 줄씩 스크롤하는 방법은 무엇입니까?
간단히 말해서, vim 및 대부분의 다른 편집기에서와 같이 emacs에서 스크롤링을 시도하고 있습니다. (I 예를 들어있을 때, 하단 / 상단에서 두 줄, 및 I / 최대 눌러 Ctrl- p, n, ↑, ↓)는 한 줄 위 또는 아래가 아닌 반 화면 이동합니다.
EmacsWIki에 대한 몇 가지 제안을 참조하십시오.
(setq 스크롤 1 단계 스크롤-보수적으로 10000)
화면을 정확히 배치하려면 Ctrl-L을 사용할 수 있습니다.
기본적으로 화면 중앙에 현재 행을 배치합니다.
ESC 0 Ctrl-L은 현재 행을 맨 위에 배치합니다.
나는 파티에 조금 늦었지만 패키지 설치에 신경 쓰지 않는다면 부드러운 스크롤 ( github , MELPA 에서도 사용 가능 )이 당신이 찾고있는 것일 수 있습니다. 확실히 저에게 효과적입니다.
설치가 완료되면 init.el에 다음을 표시 할 수 있습니다.
(require 'smooth-scrolling)
(smooth-scrolling-mode 1)
(setq smooth-scroll-margin 5)
마지막 줄은 선택 사항입니다. 화면 가장자리가 아니라 화면 가장자리 근처 에서 스크롤되기 시작 하므로 항상 지점 주변에 약간의 컨텍스트가 있습니다. 취향에 맞게 조정하십시오.
내 해결책은 Emac의 기본 스크롤링을 변경하는 것이 아니라 매크로에서 키 시퀀스 명령을 만드는 것입니다. 이렇게하면 원할 때 한 번에 한 줄씩 편리하게 스크롤 할 수 있습니다. 이상적이지는 않지만 매우 쉽습니다. M- (↓)와 M- (↑)를 사용할 수있는 경우가 있습니다. 그래서 제가 사용했습니다.
이것이 내가 한 방법입니다. 첫째, 위아래로 한 줄 스크롤에 대한 매크로를 기록해야합니다.
매크로 시작
C-x (
하나 아래로 스크롤
C-u 1 C-v
매크로 중지
C-x )
위로 스크롤하려면
C-u 1 M-v
다음으로 매크로 이름을 지정해야합니다.
M-x name-last-kbd-macro
다음과 같은 메시지가 나타나면 이름을 지정하십시오.
down-one-line
그런 다음 다음을 사용하여 키 시퀀스를 해당 명령 이름에 바인딩합니다.
M-x global-set-key
그리고 메시지가 표시되면 다음과 같이 사용하십시오.
M-(down arrow)
그런 다음 바인딩 할 명령을 묻고 이전에 발명 한 이름 (예 : 한 줄 아래로)을 지정해야합니다.
여기에이 정보가 있습니다. 아래 및 다른 곳에서 .emacs 파일에 매크로를 추가하는 방법에 대한 지침을 찾을 수도 있습니다.
매크로 정의 설명은 여기
스크롤을 제어하는 방법은 여기
저는 .emacs
2000 년부터 제 파일 에서 이것을 사용하고 있습니다.
(global-set-key (quote [M-down]) (quote View-scroll-line-forward))
(global-set-key (quote [M-up]) (quote View-scroll-line-backward))
이렇게하면 Emacs 기본 동작을 유지할 수있을뿐만 아니라 수행중인 작업에 따라 한 번에 한 줄씩 스크롤 할 수 있습니다.
적어도 GNU 이맥스 (22) 내가 최근에 이맥스 24로 업그레이드 것을 발견되지 때까지이 일을 View-scroll-line-forward
하고 View-scroll-line-backward
더 이상 사용할 수 있습니다. 사냥을 한 후 스크롤 업 라인과 스크롤 다운 라인이 작동한다는 것을 발견했습니다. 따라서 Emacs 24를 사용하고 있다면 이것을 사용할 수 있습니다.
(global-set-key (quote [M-down]) (quote scroll-up-line))
(global-set-key (quote [M-up]) (quote scroll-down-line))
나는 대부분 Emacs 23을 건너 뛰었으므로 사용중인 버전이라면 위의 두 가지를 모두 실험 할 수 있습니다.
참고 : 버퍼 가 한 줄 위로 이동 하기 때문에 scroll-up-line
실제로는 한 줄 아래로 스크롤 합니다.
스크롤 작업을 수행하기 위해 화살표 키를 리 바인드했습니다.
(global-set-key [up] (lambda () (interactive) (scroll-down 1)))
(global-set-key [down] (lambda () (interactive) (scroll-up 1)))
(global-set-key [left] (lambda () (interactive) (scroll-right tab-width t)))
(global-set-key [right] (lambda () (interactive) (scroll-left tab-width t)))
Simples는 다음을 수행합니다.
(global-set-key [M-up] (lambda () (interactive) (scroll-up 1)))
(global-set-key [M-down] (lambda () (interactive) (scroll-down 1)))
그러면 메타 커서가 위로 이동하고 메타 커서가 아래로 이동합니다.
QED. 위의 모든 사람들이 무엇을 흡연했는지 확실하지 않습니다!
I have the following in my .emacs file to enable a nice ctrl-up, ctrl-down scrolling behavior. I also use this for the mousewheel.
(defun scroll-down-in-place (n)
(interactive "p")
(previous-line n)
(scroll-down n))
(defun scroll-up-in-place (n)
(interactive "p")
(next-line n)
(scroll-up n))
(global-set-key [mouse-4] 'scroll-down-in-place)
(global-set-key [mouse-5] 'scroll-up-in-place)
(global-set-key [C-up] 'scroll-down-in-place)
(global-set-key [C-down] 'scroll-up-in-place)
To have the "vim" scrolling put this to your .emacs file:
(defun next-line-and-recenter () (interactive) (next-line) (recenter))
(defun previous-line-and-recenter () (interactive) (previous-line) (recenter))
(global-set-key (kbd "C-n") 'next-line-and-recenter)
(global-set-key (kbd "C-p") 'previous-line-and-recenter)
Since it can be annoying to use the M-up, M-down because it interferes with the org-mode which overloads these commands. To avoid this issue I personally use those commands which combine M-page-up M-page-down". Here I defined the scroll up and down to 1 line.
;;;scroll by `number-of-lines' without the cursor attached to the screen
(global-set-key [M-prior] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-down number-of-lines)
(forward-line (- number-of-lines)))))
(global-set-key [M-next] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-up number-of-lines)
(forward-line number-of-lines))))
;;;scroll by `number-of-lines' with the cursor attached to the screen
(global-set-key [S-M-prior] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-down number-of-lines))))
(global-set-key [S-M-next] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-up number-of-lines))))
M-x customize-variable scroll-conservatively
Set it to 1.
You don't really want to do this, though.
If you are looking for a quick way to create a scroll-like effect, enter in C-n
and C-l
sequentially which moves the cursor down and then centers it.
If you start emacs in .xsession, in my case setting scroll-conservatively to 100+ will not work, nor scroll-step 1. But if u start emacs after X, it works.
참고URL : https://stackoverflow.com/questions/1128927/how-to-scroll-line-by-line-in-gnu-emacs
'developer tip' 카테고리의 다른 글
테이블 이름 검색 (0) | 2020.09.23 |
---|---|
Vim에서 일치하지 않는 모든 줄 숨기기 (0) | 2020.09.23 |
x << 1 또는 x << 10 중 어느 것이 더 빠릅니까? (0) | 2020.09.23 |
Python : tf-idf-cosine : 문서 유사성 찾기 (0) | 2020.09.23 |
UILineBreakModeWordWrap은 더 이상 사용되지 않습니다. (0) | 2020.09.23 |