Emacs में कोड का कौन सा भाग `लाइन-नंबर-मोड` प्रिंट करता है?" "लंबी लाइनों वाले बफ़र्स में लाइन नंबर के रूप में?


21

मैं line-number-modeअपने मॉडल में वर्तमान लाइन का एक संकेतक होने के लिए उपयोग कर रहा हूं , हालांकि बड़ी फ़ाइलों या बल्कि, लंबी लाइनों वाली फाइलें, यह एक लाइन नंबर के बजाय दो प्रश्न चिह्न प्रदर्शित करना शुरू करता है। मैंने थोड़ी खुदाई की है और पाया है कि जब line-number-modeपरिभाषित किया जाता है simple.el, तो अनुकूलन योग्य चर (और शायद सभी तर्क शामिल हैं) में परिभाषित किए गए हैं xdisp.cline-number-display-widthचर को एक मनमाने ढंग से उच्च संख्या में बदलने से यह ठीक हो सकता है, लेकिन मुझे कोड के टुकड़े में अधिक दिलचस्पी है और तर्क जो इसे दो प्रश्न चिह्न प्रिंट करता है। यह बहुत उपयोगी होगा यदि आप में से कोई भी इसे मेरे लिए पा सकता है, शायद इसके पीछे के तर्क को भी समझाए।


2
करता है M-: (format-mode-line "%l")सवाल के निशान को भी प्रदर्शित?
चंद्रग्रहण

हाँ, यह मुझे देता है "??" मूल्यांकन के परिणाम के रूप में।
वामासा

1
ठीक है, तो की परिभाषा पर एक नज़र रखना format-mode-line
चंद्रोदय 11

जवाबों:


25

@ Lunaryorn के सुझावों की बदौलत मैं इसके कारण कोड के टुकड़े का पता लगा पाया। ऐसा लगता है कि format-mode-lineअंततः decode_mode_specमानों में दिए गए प्रारूप कोड को चालू करने के लिए कॉल करता है। %lइस फ़ंक्शन के मामले में गणना करने के लिए बहुत अधिक समय खर्च करने से बचने के लिए कुछ पवित्रता जांच करता है, फिर यह जांचता है कि क्या वर्तमान लाइन पार हो रही है line-number-display-limit-width। चूँकि प्रश्न में मेरी फ़ाइल का मामला है, यह एक no_valueलेबल पर कूदता है जो ??मान के रूप में एक गद्देदार रिटर्न देता है ।

"हल करना" इसमें चर को पर्याप्त रूप से उच्च मूल्य पर सेट करना शामिल है:

(setq line-number-display-limit-width 2000000)

यह मान उसी उत्तराधिकारियों को देखते हुए लिया गया था xdisp.cजिसमें खिड़की की ऊँचाई को दो से तीस गुणा किया गया था और इसके साथ गुणा किया गया था line-number-display-limit-width, most-positive-fixnumजो 32 बिट सिस्टम पर बहने से बचने के लिए , 2000000 का मान एक सुरक्षित शर्त होगी।


2
दो समान प्रश्नों को रखने के बजाय, दूसरे प्रश्न को डुप्लिकेट के रूप में बंद नहीं किया जाना चाहिए और इसके बजाय इस उत्तर को अपडेट करना चाहिए?
कौशल मोदी

@kaushalmodi: हो गया!
वामासा

2
अस्थायी परिवर्तन के लिए:M-x set-variable <RET> line-number-display-limit-width <RET> 2000000 <RET>
नामस्रोत

मुझे लगता है कि जब कंप्यूटर बहुत धीमे थे तब मैंने इस अर्थ को वापस लिया। मैंने इसे कई दशकों तक अपनी इनिट फ़ाइल में उच्च मूल्य पर सेट किया है।
जिम बाल्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.