उच्चारण पात्रों के साथ लाइनों को क्रमबद्ध करना


9

sort-linesलाइनों के साथ शुरू होने वाली लाइनों को छांटने के äबाद शुरू होने वाली लाइनों के बाद आता है z। यह अच्छा होगा यदि लाइनों को एक शब्दकोश की तरह लहजे, उमलाट्स आदि की अनदेखी करते हुए सॉर्ट किया जा सके। आदर्श रूप से शुरू ändernहोने वाली एक लाइन के साथ शुरू होने वाली रेखा के बाद आना चाहिए anderen

Https://superuser.com/a/675172/ में वर्णित उच्चारण वर्णों की खोज के लिए सरल समाधान है, लेकिन यहां उपयोग नहीं किया जा सकता है। मैं सोच रहा हूं कि क्या इस स्थिति में उस समाधान को अनुकूलित किया जा सकता है।


1
FYI करें, तह और विस्तारित पात्रों पर आधारित समूह में लागू किया गया है isearchऔर query-replaceEmacs के अगले संस्करण में।
Emacs User

जवाबों:


5

मैं इस फ़ंक्शन का उपयोग करता हूं

(defun my-sort-lines ()
    (interactive)
    (shell-command-on-region (point-min) (point-max) "LC_COLLATE=en_US.UTF-8 sort" (buffer-name) t ))

संपादित करें: क्षेत्र या बफर सॉर्ट करने के लिए:

  (defun my-sort-lines-buffer ()
    (interactive)
    (shell-command-on-region (point-min) (point-max) "LC_COLLATE=en_US.UTF-8 sort" (buffer-name) t ))
  (defun my-sort-lines-region (start end) 
    (interactive "r") 
    (shell-command-on-region start end "LC_COLLATE=en_US.UTF-8 sort" (buffer-name) t))
  (defun my-sort-lines-region-or-buffer ()
    (interactive)
    (save-excursion
      (if (region-active-p)
          (progn
            (my-sort-lines-region (region-beginning) (region-end))
            (message "Sorted selected region"))
        (progn
          (my-sort-lines-buffer)
          (message "Sorted buffer")))))

साझा करने के लिए धन्यवाद! नाम बदलने के बारे में क्या my-sort-lines-buffer? या करने के लिए फिर से लिखना (defun my-sort-lines (start end) (interactive "r") (shell-command-on-region start end "LC_COLLATE=en_US.UTF-8 sort" (buffer-name) t))?
मार्को वाहल

@ मर्को वाहल: मैं अपने प्रस्ताव को आपके प्रस्ताव के साथ संपादित करता हूं।
djangoliv

इसे चलाते समय मुझे त्रुटि मिलती है 'LC_COLLATE' को आंतरिक या बाह्य कमांड के रूप में नहीं पहचाना जाता है और न ही निष्पादन योग्य कार्यक्रम।
नाम

@ शायद आप विंडोज पर हैं। क्षमा करें यह फ़ंक्शन केवल linux पर काम करता है ...
djangoliv
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.