2012-07-23 5 views
16

क्या एमाक्स बफर के दाएं मार्जिन पर सापेक्ष रेखा संख्या प्रदर्शित करना संभव है, और बाएं हाशिए पर सामान्य रेखा संख्याएं रखना संभव है?सही मार्जिन पर Emacs सापेक्ष रेखा संख्या

+4

सुविधा के साथ अपरिचित उन लोगों के लिए देखें: [विम में सापेक्ष लाइन नंबर] (http://jeffkreeftmeijer.com/2012/relative-line-numbers-in -vim के लिए सुपर फास्ट-आंदोलन /); – dotancohen

+0

धन्यवाद @ डॉटनकोहेन! – Mike

+0

मैंने कभी भी एमैक्स को सापेक्ष रेखा संख्या रखने के लिए नहीं सुना है। – alinsoar

उत्तर

6

यह एक प्रारंभिक बिंदु हो सकता है। इस परिभाषाओं को लोड करें और एम-एक्सlinum-mode करें।

(defun linum-relative-right-set-margin() 
    "Make width of right margin the same as left margin" 
    (let* ((win (get-buffer-window)) 
    (width (car (window-margins win)))) 
    (set-window-margins win width width))) 

(defadvice linum-update-current (after linum-left-right-update activate) 
    "Advice to run right margin update" 
    (linum-relative-right-set-margin) 
    (linum-relative-right-update (line-number-at-pos))) 

(defadvice linum-delete-overlays (after linum-relative-right-delete activate) 
    "Set margins width to 0" 
    (set-window-margins (get-buffer-window) 0 0)) 

(defun linum-relative-right-update (line) 
    "Put relative numbers to the right margin" 
    (dolist (ov (overlays-in (window-start) (window-end))) 
    (let ((str (overlay-get ov 'linum-str))) 
     (if str 
     (let ((nstr (number-to-string 
       (abs (- (string-to-number str) line))))) 
     ;; copy string properties 
     (set-text-properties 0 (length nstr) (text-properties-at 0 str) nstr) 
     (overlay-put ov 'after-string 
      (propertize " " 'display `((margin right-margin) ,nstr)))))))) 

स्क्रीनशॉट

emacs screenshot

+0

ऐसा लगता है कि यह बिल बिलकुल ठीक से फिट बैठता है। इंतजार के लायक है! बहुत बढ़िया! – Mike

+0

यह अच्छा है। हालांकि, मैं चाहता हूं कि पूर्ण लिनम बाईं ओर दाएं और रिश्तेदार लिनम पर प्रदर्शित किया जाए (इसलिए मेरे पास ईएलपीए से लिनम-रिश्तेदार प्लगइन के साथ वास्तविक लाइन नंबर हो सकता है)। मैं यह कैसे कर सकता हूं? – Amumu

+0

दोनों बाएं बेहतर इमो होगा –

संबंधित मुद्दे