기본 이맥스 모델 라인은 현재 줄 번호와 전체 줄 수에 대한 백분율 만 표시합니다. 줄의 합계도 어떻게 표시합니까?이맥스 모델 라인의 총 줄 수를 어떻게 표시합니까?
12
A
답변
12
라인 수를 항상 업데이트하고 커다란 버퍼를 가지고 있으면 행 수가 계속해서 계산되므로 이맥스가 다소 반응하지 않을 수 있기 때문에 다소 까다로울 수 있습니다. 저는 카운팅에 게으른 접근법을 취하기 위해이 파일을 작성했습니다 : 파일을 저장하거나 되돌릴 때 파일을 처음 읽을 때만 수행합니다. 버퍼가 수정되면 행 수가 늘어나지 않고 다시 저장하기 만하면 표시되지 않습니다.
(defvar my-mode-line-buffer-line-count nil)
(make-variable-buffer-local 'my-mode-line-buffer-line-count)
(setq-default mode-line-format
'(" " mode-line-modified
(list 'line-number-mode " ")
(:eval (when line-number-mode
(let ((str "L%l"))
(when (and (not (buffer-modified-p)) my-mode-line-buffer-line-count)
(setq str (concat str "/" my-mode-line-buffer-line-count)))
str)))
" %p"
(list 'column-number-mode " C%c")
" " mode-line-buffer-identification
" " mode-line-modes))
(defun my-mode-line-count-lines()
(setq my-mode-line-buffer-line-count (int-to-string (count-lines (point-min) (point-max)))))
(add-hook 'find-file-hook 'my-mode-line-count-lines)
(add-hook 'after-save-hook 'my-mode-line-count-lines)
(add-hook 'after-revert-hook 'my-mode-line-count-lines)
(add-hook 'dired-after-readin-hook 'my-mode-line-count-lines)
당신은 물론 당신의 취향에 맞게 mode-line-format
을 조정할 수 있습니다은 위의 내가 개인적으로 선호하는 것입니다.
+0
괜찮습니다. thx =) – dkiyatkin
성능/속도 향상을 위해'count-lines' 대신'(format-mode-line "% l")'을 사용하는이 관련 스레드에서 대안을보십시오 : http : // emacs .stackexchange.com/a/26724/2287 – lawlist