2011-11-18 10 views
12

default Emacs Modeline mostra solo il numero di riga corrente e la percentuale rispetto ai numeri di riga totali. Come faccio a mostrare anche la linea totale?Come si può visualizzare il numero totale di righe nel Emacs Modeline

+0

Vedere la risposta alternativa in questa discussione correlata, che usa '(formato-mode-line "% l")' invece di 'count-linee' per ricevere un incremento delle prestazioni/velocità: http: // emacs .stackexchange.com/a/26724/2287 – lawlist

risposta

12

Questo può essere un po 'complicato, perché se si aggiorna il conteggio delle righe tutto il tempo e si dispone di un buffer di grandi dimensioni può rendere Emacs in qualche modo insensibile poiché esegue il conteggio delle righe più e più volte. Ho scritto questo di adottare un approccio pigro per il conteggio: lo fa solo quando il file viene prima letto o dopo aver salvato/ripristinare esso. Se il buffer viene modificato, non giace sul conteggio delle righe, semplicemente non viene mostrato finché non si salva di nuovo.

(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) 

Si potrebbe desiderare di regolare mode-line-format secondo i propri gusti, naturalmente, quanto sopra è quello che personalmente preferisco.

+0

è un lavoro bene, thx =) – dkiyatkin

Problemi correlati