我如何缩小可能的常春藤完成候选人的范围?

问题描述 投票:0回答:1

我有很多可能的完成。我在 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 ivy completion
1个回答
0
投票

代码可以添加到 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) 

尝试并享受乐趣。

© www.soinside.com 2019 - 2024. All rights reserved.