Emacs에서 주요 모드를 만들려고합니다. 이 모드에서 탭 키는 다음과 같이 작동합니다.Emacs에서 다음 탭으로 탭 이동
- 숫자를 정의합니다.
(setq my-tab-stop 10)
- 내가
current-column
가 0,1,2 동일 - 경우
my-tab-stop
로 나누어 다음 칼럼에 포인트 이동, 즉, ..., 9, 지점 열 (10)로 이동하는 탭의 키를 누르 때, 같은 공백 또는 탭 삽입되어서는 안된다 (: current-column
경우 .., 19 점
(주 .. 그래서 컬럼 (20)으로 이동한다 10,11,12 같다 tab-to-tab-stop
), 점만 이동하지만 점이 현재 선의 길이를 초과하면 선을 길게 만들기 위해 공백을 삽입해야합니다.
어떻게이 작업을 수행 할 수 있습니까?
(defvar tabtab-val 10)
(defun tabtab/forward-char (n)
(let ((space (- (line-end-position) (point))))
(if (> space tabtab-val)
(forward-char n)
(move-end-of-line 1)
(insert (make-string (- n space) ?)))))
(defun tabtab()
(interactive)
(let ((shift (mod (current-column) tabtab-val)))
(tabtab/forward-char (- tabtab-val shift))))
감사합니다! 완벽하게 작동 :) –