ทั้ง:
(completing-read "test: " '("a" "b" "c"))
หรือ:
(completing-read "test: " '("c" "b" "a"))
TABจะให้ผลลัพธ์เดียวกันในบัฟเฟอร์เสร็จสิ้นเมื่อกด ฉันจะทำให้มันเป็นไปตามลำดับการเรียงลำดับได้อย่างไร
ทั้ง:
(completing-read "test: " '("a" "b" "c"))
หรือ:
(completing-read "test: " '("c" "b" "a"))
TABจะให้ผลลัพธ์เดียวกันในบัฟเฟอร์เสร็จสิ้นเมื่อกด ฉันจะทำให้มันเป็นไปตามลำดับการเรียงลำดับได้อย่างไร
คำตอบ:
ลำดับการเรียงลำดับในรายการ * เสร็จสมบูรณ์ * ถูกกำหนดโดย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)
อ่านสตริงใน minibuffer โดยสมบูรณ์ พรอมต์เป็นสตริงที่จะแจ้งให้; โดยปกติแล้วจะสิ้นสุดในลำไส้ใหญ่และช่องว่าง คอลเล็กชันสามารถเป็นรายการของสตริง, alist, obarray หรือตารางแฮช ...
ดังนั้นจึงสามารถใช้ alist เป็นชุดสะสมได้ ผลคือคุณกำลังสร้าง alist ด้วยปุ่ม แต่ไม่มีค่า
ฉันไม่แนะนำให้ใช้คาถาโบราณนี้
บิวท์อิน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
ผลตอบแทนใดในตอนท้าย ผมมีวิธีการแก้ปัญหา completing-read
แต่ฉันยังคงต้องการที่จะรู้วิธีการแก้ ฉันรู้ว่า Helm สามารถสร้างมันได้ แต่แค่อยากรู้ว่ามีวิธีง่าย ๆcompleting-read
อยู่หรือไม่
ถ้าคุณใช้Iciclescompleting-read
แล้วเพื่อเป็นที่ยอมรับโดย
(และคุณสามารถจัดเรียงโดยใช้คำสั่งการเรียงลำดับที่แตกต่างกันไม่ว่าจะเป็นการโต้ตอบหรือผ่าน Lisp และต่างจากวานิลลา Emacs การเรียงลำดับมีผลต่อลำดับการ*Completions*
แสดงผลและการขี่จักรยาน)
ido-completing-read
กำลังมีปัญหาบางอย่าง
completing-read
กับหยาด คุณสามารถแม้เพียงแค่เปิดicicle-mode
ชั่วคราว (เช่นการเรียกร้องให้completing-read
) icicle-with-icy-mode-ON
โดยใช้เช่นมาโคร
icomplete
เคารพคำสั่งซื้อด้วยคุณสามารถเพิ่ม a(cycle-sort-function . ,#'identity)
ลงในรายการเมทาดาทา