Aksanlı karakterler içeren satırları sıralama


9

sort-linesÇizgileri ile başlayan çizgilere göre sıralarken, ile äbaşlayan çizgilerden sonra gelir z. Bir sözlükte olduğu gibi aksanları, Umlaut'ları, vb. Göz ardı ederek satırların sıralanabilmesi hoş olurdu. İdeal olarak ile başlayan bir çizgi ile başlayan bir çizgiden ändernsonra gelmelidir anderen.

Https://superuser.com/a/675172/ adresinde belirtilen aksanlı karakterleri aramak için basit bir çözüm var, ancak burada kullanılamaz. Bu çözümün bu durumda uyarlanıp uyarlanamayacağını merak ediyorum.


1
FYI, genişletilmiş karakterlere dayalı katlama ve gruplama emac'lerin bir sonraki sürümünde isearchve query-replacebu sürümde uygulanmıştır .
Emacs Kullanıcısı

Yanıtlar:


5

Bunun için bu işlevi kullanıyorum

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

EDIT: Bölge veya arabelleği sıralamak için:

  (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")))))

Paylaşım için teşekkürler! Yeniden adlandırmaya ne dersiniz my-sort-lines-buffer? Veya yeniden yazılsın mı (defun my-sort-lines (start end) (interactive "r") (shell-command-on-region start end "LC_COLLATE=en_US.UTF-8 sort" (buffer-name) t))?
Marco Wahl

@Marco Wahl: Gönderinizi teklifinizle değiştiriyorum.
djangoliv

Bu çalıştırırken 'LC_COLLATE' hatası iç veya dış komut veya yürütülebilir bir program olarak tanınmıyor.
İsim

@Adı Belki Windows'tasınız. Üzgünüm bu fonksiyon sadece linux üzerinde çalışmak ...
djangoliv
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.