답변:
* Completions * 목록의 정렬 순서는 display-sort-function
완료 테이블 의 속성에 의해 결정됩니다 (에서 반환 completion-metadata
). 귀하의 경우 완료 테이블에는 그러한 속성이 없으므로 기본값으로 돌아가 알파벳순으로 정렬됩니다.
당신이 사용할 수있는:
(defun my-presorted-completion-table (completions)
(lambda (string pred action)
(if (eq action 'metadata)
`(metadata (display-sort-function . ,#'identity))
(complete-with-action action completions string pred))))
그리고
(completing-read "test: " (my-presorted-completion-table '("a" "b" "c")))
[사용중인 것으로 가정합니다 lexical-binding
. ]
completing-read
목록의 목록을 제공 하면 순서가 존중됩니다.
(completing-read "test: " '(("a") ("b") ("c")))
(completing-read "test: " '(("c") ("b") ("a")))
Docstring은 말합니다 :
(completing-read PROMPT COLLECTION &optional PREDICATE
REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD)
미니 버퍼에서 문자열을 읽고 완성하십시오. PROMPT는 프롬프트 할 문자열입니다. 일반적으로 콜론과 공백으로 끝납니다. COLLECTION은 문자열 목록, 목록, obarray 또는 해시 테이블 일 수 있습니다. ...
따라서 컬렉션으로 목록을 가져올 수 있습니다. 실제로, 키는 있지만 값은없는 목록을 만듭니다.
이 고대 주문을 사용하지 않는 것이 좋습니다.
내장 기능 ido-completing-read
에는 다음과 같은 결함이 없습니다.
(ido-completing-read "test: " '("a" "b" "c"))
(ido-completing-read "test: " '("c" "b" "a"))
둘 다 helm
:
(helm :sources
`((name . "test: ")
(candidates . ("a" "b" "c"))))
(helm :sources
`((name . "test: ")
(candidates . ("c" "b" "a"))))
ido-completing-read
는 ^
에서 개행 문자가 이상하다는 것 입니다 semantic-format-tag-summarize
. Helm은 모든 사람이 사용한다고 가정 할 수 없습니다. 이것이 completing-read
유일한 옵션 인 이유 입니다.
semantic-format-tag-summarize
당신이주는 모든 것을 후 처리 하십시오.
ido
semantic-format-tag-summarize
은 끝에 무언가 를 반환하지만 문자가 completing-read
또는에 표시되지 않습니다 helm-comp-read
. 나는 아직 semantic-format-tag-summarize
얼굴없이 다른 기능을 이미 작성했습니다 . 태그 (색상 포함)를 사용자에게 표시하기 위해 여전히 semantic-format-tag-summarize
텍스트 위젯과 함께 사용자 정의 버퍼를 사용 하지만 사용자 정의 버퍼를 사용합니다.
semantic-format-tag-summarize
마지막에 무엇이 반환 되는지 알아 낸 후에 Ido에 버그를 제출할 것 입니다. 나는 해결책이 있었지만 여전히 해결책을 알고 싶다 completing-read
. 나는 Helm이 그것을 할 수 있다는 것을 알고 있지만 쉬운 방법이 completing-read
있는지 알고 싶었습니다 .
차가워 요 를 사용하는 경우 순서는 completing-read
입니다.
( 대화식 또는 Lisp를 통해 다른 정렬 순서를 사용하여 정렬 할 수 있습니다 . 그리고 바닐라 이맥스와 달리 정렬은 *Completions*
표시 및 순환 순서에 영향을줍니다 .)
ido-completing-read
문제가 있습니다.
completing-read
입니다. 차가워 요와 함께 사용하십시오 . icicle-mode
예를 completing-read
들어, macro를 사용하여 일시적으로 (예를 들어 전화를 걸기 위해 ) 켤 수도 있습니다 icicle-with-icy-mode-ON
.
icomplete
도 순서를 존중, 당신은 추가 할 수 있습니다(cycle-sort-function . ,#'identity)
메타 데이터 목록에.