如何设置 describe-symbol 变量值显示省略号?

刚才不知动了哪个设置,describe-symbol 变量值剩余部分显示省略号:

image

甚至 format 输出也同样被截短:

(substring (format "%S" helm-completing-read-handlers-alist) -10)
;; => "er-1) ...)"

应该是 print-length

好像不是:

(let ((print-length 100))
  (let ((s (format "%S" helm-completing-read-handlers-alist)))
    (cl-assert (< 100 (length s)))
    (substring (format "%S" helm-completing-read-handlers-alist) -10)))
;; => "andler-1))"

你这 (substring (format "%S" helm-completing-read-handlers-alist) -10) 就是返回后10个字符组成的字符串啊

print-length 设成 nil 应该就好了

就是要看能否重现末尾截短成 ...) 的效果,显然并没有。字符串长度远超100.

(let ((print-length 1)) 
     (format "%S" find-function-regexp-alist)) 
;; => "((flycheck-checker . flycheck-find-checker-regexp) ...)"

(let ((print-length nil)) 
     (format "%S" find-function-regexp-alist))
;; => "((flycheck-checker . flycheck-find-checker-regexp) (define-type . cl--typedef-regexp) (leaf . leaf-find-regexp) (cl-defgeneric . cl--generic-find-defgeneric-regexp) (cl-defmethod . cl--generic-search-method) (nil . find-function-regexp) (defvar . find-variable-regexp) (defface . find-face-regexp) (feature . find-feature-regexp) (defalias . find-alias-regexp))"

我明白了,print-length 是指 list 长度(即元素个数),而不是转换成字符串后的长度。

是的

Maximum length of list to print before abbreviating.