Как распечатать все определенные переменные в emacs?

M-x печатает все определенные функции.

для проверки переменной определяется или не вычисляется следующее выражение, (boundp 'variable-name) C-x C-e будет печатать t, если имя переменной определено иначе nill.

Как распечатать все определенные переменные в emacs.

3 ответов


неясно, что именно вы хотите сделать с полным списком символов, так как способ, которым M-x отображает имена функций несколько специализирован.

предполагая, что вы хотите, чтобы программно получить список всех определенных символов, вот как auto-complete.el это:

(loop for x being the symbols
    if (boundp x)
    collect (symbol-name x))

обратите внимание, что вы также можете ввести M-x describe-var RET и нажмите клавишу TAB чтобы получить отсортированный список завершения всех символов.


предполагаю (apropos-variable "." t) покажет вам все переменные, определенные в данный момент времени.

edit: я предположил неправильно, казалось бы.

интересно, что это на самом деле показывает мне значительно меньше результатов, чем автозаполнения от describe-var.

может кто-нибудь пролить свет на это?

например, различия между ними, когда winner-mode включено:

  • C-uM-x apropos-variable RET winner- RET
  • C-hv winner- TAB

edit 2: Ah... похоже, что apropos может игнорировать любой символ, в котором отсутствует строка документации.

если это возможно, я предлагаю переназначить принято отвечать.


экстраполируя (тяжело!) то, что просят, вот способ получить довольно печатный список всех буферных локальных переменных с их значениями. Это очень удобно для выяснения того, почему, например, режим ведет себя не так, как ожидалось.

чтобы получить этот список, сделайте следующее:

M-x pp-eval-expression RET (buffer-local-variables) RET

соответствующие части из этого списка могут быть добавлены почти дословно в для использования с несколькими файлами.