ORG 파일에서 제목 정렬


10

나는 다음과 같은 구조를 가진 게으른 조직 모드 파일에서 메모를하고 있습니다.

* Toto, A
Notes about Toto.
* Titi, C
Notes about Titi.
* Tutu, A
Notes about Tutu.

파일을 정렬하여 모든 제목이 제목 A앞에 와서 제목 앞에와 B등을 표시 하도록하고 싶습니다 C. org-mode로 자동으로 수행하는 방법이 있습니까?


4
시도 했습니까 org-sort?
abo-abo

C-c ^메모리에서 (비슷한 끝나는 수 ^처럼, C-x C-c ^등)
wvxvw

답변:


13

거기에있다 org-sort명령은하지만 (내가 제대로 질문을 이해하고있는 경우) 당신은 당신이 원하는 결과를 얻을 수 있도록 파일 구조를 조정할 필요가있다.

org-sort( C-c ^)를 사용 하여 개요의 항목, 테이블의 행 또는 목록의 항목을 정렬하십시오. 예를 들어 제목에서 org-sort모든 하위 항목을 정렬하도록 호출 할 수 있습니다 .

예제에서 개요의 최상위 항목을 정렬하려면 먼저 모든 항목을 선택하십시오. 전화 org-sort하면 알파벳순, 우선 순위 등 정렬 방법을 묻는 메시지가 나타납니다.

귀하의 예에서 기대하는 최종 결과는 다음과 같습니다.

* Toto, A
Notes about Toto.
* Tutu, A
Notes about Tutu.
* Titi, C
Notes about Titi.

즉, 알파벳순으로 정렬하려고하지만 후행 문자가 우선합니까? 그에 대한 기본 제공 정렬이 없습니다. 해당 정렬 문자를 먼저 입력하도록 항목을 변경하면 (예 :) A, Toto정상적인 알파벳 정렬이 작동합니다. 다른 옵션은 해당 정보를 각 항목의 속성으로 이동 한 다음 속성별로 정렬하는 것입니다.

@nanny가 주석에서 제안한 것처럼 org-sort사용자 정의 정렬 함수를 호출 할 수도 있습니다. 이렇게하면 모든 항목을 변경하지 않고도 기존 파일을 사용할 수 있습니다. 다음은 현재 제목 텍스트를 찾아 마지막 문자를 시작 부분에 추가하여 우선 순위를 지정하는 정렬 함수입니다. 헤드 라인이 모두 정확한 패턴을 따르지 않으면보다 강력한 것이 필요합니다.

(defun my-sort-last-letter ()
  (let ((text
         (plist-get
          (cadr (org-element-headline-parser (line-end-position)))
          :raw-value)))
    (concat (string (aref text (- (string-width text) 1))) text)))

1
파일 변경에 대한 대안은 [f]unc정렬 유형을 사용 org-sort하고 기존 구조를 기준으로 정렬하는 함수를 작성하는 것입니다.
nanny

그것은 query-replace-regexp올바른 형식을 엄격하게 따르지 않는 몇 가지 제목을 빠르게 편집 한 후 내 문제를 아주 잘 해결 했습니다. 모든 데이터를 속성으로 변환하는 것보다 훨씬 쉽습니다.
jch

... 또는 "* Toto : A :"와 같이 태그로 옮길 수 있습니다. 그런 다음 Cc ^ r TAGS
jtgd

1
이 문제가 1 년에 한 번만 발생했다는 사실을 알려 드리기 위해 어제 솔루션을 다시 사용했습니다.
jch

0

우선 순위가 다른 헤드 라인을 파일의 어느 위치 에나 배치하고 있습니다. 나중에 나는 그것들을 의제보기로 정렬하여보고 있습니다 . 태그 를 사용 하면 구체적인 범주의 정렬 된 헤드 라인이 사용자 지정 아젠다보기로 표시 됩니다.

나는 그것이 파일에서 헤드 라인을 정렬하는 방법에 대한 대답이 아니라는 것을 알고 있지만 의제보기로 헤드 라인을 보는 것이 항상 가장 좋은 방법입니다. 주문에 대한 걱정없이 우선 순위가 지정된 헤드 라인을 빠르게 삽입 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.