我有很多可能的完成。我在 lis,完成工作从 lisp、list 和 lisa 开始。如何让 ivy 告诉我可以通过按 p、t 或 a 来访问所有可能的补全?
我想出了如何找到我需要的数据,但是有人做过类似的事情吗?按 f7 给出我需要的列表,但在这种状态下它不适合一般使用,因为在某些情况下答案可能是无意义的。打开消息缓冲区可以让我理解原因,但是有人知道在这些情况下什么是合适的错误消息吗?
(defun ivy-debug-candidates ()
(interactive)
(message "ivy text %s" ivy-text)
(message "ivy regex %s" ivy-regex)
(message "ivy length %s" ivy--length)
(message "ivy old candidates %s" ivy--old-cands)
(message "possible completions %s"
(cl-remove-duplicates
(cl-map 'list
(lambda (co)
(substring co 0 1))
(cl-map 'list (lambda (c)
(replace-regexp-in-string ivy--old-re "" c))
ivy--old-cands))
:test (lambda (x y) (or (null y) (equal x y))))))
(global-set-key [f7] 'ivy-debug-candidates)
代码可以添加到 Emacs 配置中并按原样使用。
(defun ivy-debug-candidates ()
(interactive)
(message "ivy text %s" ivy-text)
(message "ivy regex %s" ivy-regex)
(message "ivy length %s" ivy--length)
(message "ivy old candidates %s" ivy--old-cands)
(message "possible completions %s"
(cl-remove-duplicates
(cl-map 'list
(lambda (co)
(substring co 0 1))
(cl-map 'list (lambda (c)
(replace-regexp-in-string ivy--old-re "" c))
ivy--old-cands))
:test (lambda (x y) (or (null y) (equal x y))))))
(global-set-key [f7] 'ivy-debug-candidates)
尝试并享受乐趣。