Есть ли способ просмотреть значения всех связанных переменных Emacs, соответствующих префиксу? - PullRequest
1 голос
/ 08 декабря 2010

Например, я хотел бы знать значения всех переменных с префиксом "comint - *"

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010

Если вы просто хотите получить настраиваемые переменные, вы можете использовать Mx customize-apropos .

В противном случае попробуйте что-то вроде этого:

(with-output-to-temp-buffer "*Variables*"
  (set-buffer standard-output)
  (insert (mapconcat (lambda (sym) (format "%s: %s" sym (eval sym)))
                     (apropos-internal "^comint-.*" 'boundp) "\n\n")))

Тосоздаст *Variables* буфер с содержимым вроде:

comint-accum-marker: nil

comint-buffer-maximum-size: 1024

comint-completion-addsuffix: t
...
1 голос
/ 08 декабря 2010

Вот как бы я это сделал:

(require 'cl)
(loop for sym being the symbols
      when (and (boundp sym) (string-match "^comint-" (symbol-name sym)))
      collect (cons sym (symbol-value sym)))

В моей системе это оценивается как:

((comint-output-filter-functions comint-watch-for-password-prompt)
 (comint-mode-abbrev-table . [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0])
 (comint-exec-hook (lambda nil (set-process-query-on-exit-flag ... nil)))
 (comint-file-name-prefix . ""))
1 голос
/ 08 декабря 2010

Не "идеально", но вы можете сделать C-h v prefix и затем нажать tab , чтобы получить все переменные, которые начинаются с этого префикса `.

Если вы хотите попробовать это вручную, функция, в которую вам нужно покопаться, это completion--do-completion.

...