2011-11-18 16 views
12

में लाइनों की कुल संख्या कैसे प्रदर्शित करूं डिफ़ॉल्ट डिफ़ॉल्ट Emacs मॉडलिन केवल कुल पंक्ति संख्या और कुल पंक्ति संख्याओं के संबंध में इसका प्रतिशत दिखाता है। मैं इसे लाइन कुल को कैसे दिखाऊं?मैं Emacs मॉडलिन

+0

इस संबंधित थ्रेड में वैकल्पिक उत्तर देखें, जो प्रदर्शन/गति में वृद्धि प्राप्त करने के लिए 'गिनती-रेखा' के बजाय '(प्रारूप-मोड-लाइन "% l") 'का उपयोग करता है: http: // emacs .stackexchange.com/ए/26724/2287 – lawlist

उत्तर

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