मैं linum.el से कुछ विशिष्ट कोड को संशोधित कर रहा हूं:
(custom-set-variables '(linum-format 'dynamic))
(defadvice linum-update-window (around linum-dynamic activate)
(let* ((w (length (number-to-string
(+ (count-lines (point-min) (point-max)) 1))))
(linum-format (concat " %" (number-to-string w) "d ")))
ad-do-it))
मैं एक बग जहां खरोज संशोधित करके बंद-एक करके था ठीक करने में सक्षम था (count-lines (point-min) (point-max))
करने के लिए (+ (count-lines (point-min) (point-max)) 1)
। वह तो आसान था।
लेकिन अब मैं इसे संशोधित करना चाहता हूं, ताकि (concat " %" (number-to-string w) "2d ")
यदि कोई लाइन-काउंट काउंट <10 है तो एक न्यूनतम-शर्त जोड़कर न्यूनतम चौड़ाई 2 हो जाए।
यह आसान होना चाहिए! एक सशर्त जोड़ें और कंसट्रेट को कॉपी / पेस्ट करें। केक का टुकड़ा, है ना? मेरा मतलब है, मुझे पता है कि मैं क्या करने वाला हूं, लेकिन मैं शायद ही कभी छूता हूं और जब मुझे बहुत से पेरेंटस के साथ कुछ भी संशोधित करना पड़ता है, तो मैं हमेशा दंग रह जाता हूं।
"सही" शैली, जो मैं समझता हूं, वह इंडेंटेशन के आधार पर कोड की संरचना करना है और एक पंक्ति के अंत में अनुगामी कोष्ठक को लपेटना है बजाय इसके कि। अन्य 'सी' शैली की भाषाओं से आते हुए, मैं इस तरह से कोड पढ़ना और लिखना दोनों के साथ संघर्ष करता हूं। तो मेरा सवाल है: मैं क्या गलत कर रहा हूँ? मैं किस तरह से संपादित करूँ और कोड को ऐसे घुमाऊँ कि मुझे वहाँ बैठकर हर कोष्ठक की गणना न करनी पड़े?
जब मैं किसी ऐसी चीज में काम करता हूं, जो बहुत गहरी हो जाती है, तो मुझे अपना दरवाजा बंद करना पड़ता है, ब्लाइंड्स को खींचना पड़ता है, और कोष्ठक केएंडआर-स्टाइल को पोजिशन करना शुरू कर देता है, ताकि मैं न केवल पढ़ सकूं बल्कि झटके से बाहर निकले बिना डार की बात को संशोधित कर सकूं।
जाहिर है मैं यह सब गलत कर रहा हूं। मैं बिना किसी डर के इस तरह से कैसे छू सकता हूं?
कृपया ध्यान दें कि मेरा सवाल यह है कि कैसे नेविगेट करें और संपादित करें शैली में एक प्रश्न के रूप में नहीं। मैं पहले से ही एक स्टाइल गाइड के रूप में निम्नलिखित का उपयोग कर रहा हूं: https://github.com/bbatsov/emacs-lisp-style-guide
अपडेट:
Emacs.stackexchange पर खुद को शर्मिंदा करने से पहले कैसे ठीक से प्रारूपित करें:
अपने योग्य को चिह्नित करें और प्रदर्शन करें M-x indent-region
।
समस्या समाधान:
उन लोगों के लिए, जो दो की न्यूनतम चौड़ाई के साथ लाइनम के लिए एक सही-सही प्रदर्शन करने का तरीका जानना चाहते हैं, यहां समाधान है:
(defadvice linum-update-window (around linum-dynamic activate)
(let* ((w (length (number-to-string
(+ (count-lines (point-min) (point-max)) 1))))
(linum-format (if (> w 1)
(concat " %" (number-to-string w) "d ")
" %2d ")))
ad-do-it))
%2d
इसलिए उपयोग नहीं कर सकता क्योंकि एक बार जब चौड़ाई 3 या अधिक वर्णों तक लुढ़क जाती है तो यह दाईं-ओर से बाईं ओर से न्यायोचित हो जाती है।
highlight-parentheses
; rainbow-delimiters
; आदि यहाँ मेरा अपना सरलीकृत संस्करण है, highlight-parentheses
जो पिछले रंग वाले कोष्ठक को हटाए बिना स्क्रॉल करने की अनुमति देता है: stackoverflow.com/a/23998965/2112489 भविष्य में, यह प्रति ग्राहक एक सवाल है।