2011-10-19 9 views
7

Emacs कॉलम-संख्या-मोड संख्या 0 से कॉलम जो सामान्य रूप से मुझे कोई दुःख नहीं देता है, लेकिन मैं कुछ पंक्ति/कॉलम आधारित डेटा फ़ाइलों के साथ काम कर रहा हूं जिनकी कल्पना '1' से शुरू होती है, और यह बहुत आसान होगा अगर मैं या तो ऐसा करने के लिए emacs मिल सकता है, या कुछ elisp खोजने के लिए।क्या मैं पहले कॉलम के emacs 'धारणा को बदल सकता हूं? (शून्य से एक तक)

विचारों का स्वागत है।

उत्तर

9

आप आसानी से Emacs को 1-आधारित कॉलम गिनती के लिए नहीं बदल सकते हैं, परिवर्तन सी कोड में होना होगा।

हालांकि, आप अपने कॉलम की गणना कर सकते हैं और इसे मोड लाइन में डाल सकते हैं। नोट: इसके लिए force-mode-line-update का उपयोग करने की आवश्यकता है - जो संभावित रूप से आपके Emacs को धीमा कर सकता है (केवल दो साल के मामले में इसे ध्यान में रखें, Emacs कुछ बड़े बफर पर सुस्त महसूस करते हैं)।

उपयोग की
;; update the mode line to have line number and column number 
(setq mode-line-position 
     '("%p (%l," (:eval (format "%d)" (1+ (current-column)))))) 
;; force the update of the mode line so the column gets updated 
(add-hook 'post-command-hook 'force-mode-line-update) 

डॉक्टर लिंक 'Variables Used In Mode Line' और 'Cursor Position Information' हैं।

+0

धन्यवाद; यह एक इलाज किया। –

1

अच्छा, यह सबसे अच्छा जवाब नहीं हो सकता है, क्योंकि मुझे यह अच्छा नहीं लगता है। मैंने mode-line-position संपादित किया है, जो mode-line-format का हिस्सा है। इसका उपयोग करने से पहले, यह सुनिश्चित करने के लिए कि कुछ भी गुम नहीं है, मूल मान को देखें।

(setq mode-line-position 
    '((-3 #("%p" 0 2 (help-echo "Size indication mode 
mouse-1: Display Line and Column Mode Menu" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 keymap (column-number-mode menu-item "Display Column Numbers" column-number-mode :help "Toggle displaying column numbers in the mode-line" :button (:toggle . column-number-mode)) (line-number-mode menu-item "Display Line Numbers" line-number-mode :help "Toggle displaying line numbers in the mode-line" :button (:toggle . line-number-mode)) "Toggle Line and Column Number Display")))))) 
    (size-indication-mode (8 #(" of %I" 0 6 (help-echo "Size indication mode 
mouse-1: Display Line and Column Mode Menu" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 keymap (column-number-mode menu-item "Display Column Numbers" column-number-mode :help "Toggle displaying column numbers in the mode-line" :button (:toggle . column-number-mode)) (line-number-mode menu-item "Display Line Numbers" line-number-mode :help "Toggle displaying line numbers in the mode-line" :button (:toggle . line-number-mode)) "Toggle Line and Column Number Display"))))))) 
    "(%l,[%c" 
    (:eval (format ",%d])" (1+ (current-column)))))) 

मुख्य समस्या यह है कि जब आप %c (स्तंभ संख्या) मोड-लाइन-प्रारूप से निकालने के लिए, अपने (:eval (current-column)) काम करता है बहुत धीमी है। मुझे नहीं पता कि इसे बेहतर कैसे बनाया जाए।

3

Emacs 26 (अभी तक जारी नहीं किया गया) के रूप में इसे ठीक करने के लिए घुंडी में बनाया जाएगा।

इसके इस्तेमाल के लिये अपने .emacs

में (setq column-number-indicator-zero-based nil) सेट उस Git रेपो के मालिक शाखा से एक Emacs का निर्माण कर सकते हैं कि सुविधा प्राप्त करने के लिए।

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