악센트 부호가있는 줄 정렬


9

sort-lines시작 하는 라인을 기준 으로 라인을 정렬 할 때는로 시작 ä하는 라인 뒤에옵니다 z. 사전처럼 악센트, 움라우트 등을 무시하고 줄을 정렬하면 좋을 것입니다. 이상으로 시작하는 줄은로 시작하는 줄 ändern다음에 와야 anderen합니다.

https://superuser.com/a/675172/에 언급 된 악센트 문자를 검색하는 간단한 솔루션이 있지만 여기서는 사용할 수 없습니다. 이 상황에서 해당 솔루션을 조정할 수 있는지 궁금합니다.


1
참고로, 접는에 구현 된 확장 문자를 기반으로 그룹화 isearch하고 query-replace이맥스의 다음 버전에서.
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))시겠습니까?
Marco Wahl

@Marco Wahl : 귀하의 제안으로 게시물을 편집합니다.
djangoliv

이것을 실행할 때 'LC_COLLATE'오류가 내부 또는 외부 명령이나 실행 프로그램으로 인식되지 않습니다.
이름

@Name 아마 당신은 Windows에 있습니다. 죄송합니다이 기능은 리눅스에서만 작동합니다 ...
djangoliv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.