Rechercher dans les valeurs de toutes les variables dans Emacs


9

Je voudrais trouver quelles variables contiennent une certaine valeur.

Existe-t-il un moyen de faire une recherche d'expression régulière à travers les valeurs de chaque variable dans Emacs?

Réponses:


12

Fait apropos-valuece que vous cherchez?

(apropos-value PATTERN &optional DO-ALL)

Show all symbols whose value’s printed representation matches PATTERN.
PATTERN can be a word, a list of words (separated by spaces),
or a regexp (using some regexp special characters).  If it is a word,
search for matches for that word as a substring.  If it is a list of words,
search for matches for any two (or more) of those words.

3

La commande Iciclesicicle-apropos-value améliore la commande vanilla apropos-value, en vous permettant de faire correspondre simultanément le nom et la valeur de la variable aux expressions rationnelles (ou sous-chaînes ou autres modèles). Vous n'avez pas besoin de les faire correspondre tous les deux, mais vous pouvez les faire correspondre tous les deux.

Et (comme pour tous les compléments Icicles), vous pouvez faire correspondre progressivement le nom ou la valeur ou les deux , c'est-à-dire en utilisant plusieurs modèles de manière incrémentielle. Ceci est particulièrement important pour un cas où, comme vous le dites, vous vous comparez à toutes les variables dans Emacs, pour commencer. Autrement dit, vous ne vous souciez pas de faire correspondre les noms; vous voulez juste faire correspondre les valeurs.

Pour faire correspondre le nom et la valeur, utilisez simplement C-M-jpour terminer le modèle de nom et commencer le modèle de valeur. Donc, pour ne faire correspondre que les valeurs, vous commencez par C-M-jpuis tapez le modèle de valeur, car le modèle de nom est vide.

Par exemple, pour voir toutes les variables dont la valeur actuelle correspond nil( S-TABaffiche les correspondances):

M-x icicle-apropos-value RET

SYMBOL C-M-j VALUE: C-M-j nil S-TAB

Pour voir toutes les variables dont la valeur actuelle correspond à regexp .*plist:

SYMBOL C-M-j VALUE: C-M-j .*plist S-TAB

Les variables correspondantes et leurs valeurs sont affichées dans le tampon *Completions*, comme candidats à l'achèvement. Vous pouvez faire défiler parmi les candidats, ce qui rend chacun à son tour en cours, en utilisant les touches flèches verticales: <down> <down> <down>....

La première ligne de chaîne de doc pour le candidat d'achèvement actuel est affichée dans la ligne de mode de *Completions*.

Vous pouvez obtenir une description complète (c'est-à-dire C-h v) du candidat actuel en utilisant une touche d'aide dessus: C-M-mouse-2ou C-M-RET. Pour voir l'aide sur chaque candidat tour à tour, faites défiler les touches fléchées avec C-M-(par exemple, répétez C-M-<down>).

Voir Multi-commandes Variable-Apropos Value-Aware .

C-h f icicle-apropos-value dit ceci:

icicle-apropos-valueest une fonction Lisp interactive compilée en icicles-cmd1.el.

Il est lié à menu-bar help-menu apropos icicles icicle-apropos-value, menu-bar help-menu apropos apropos-var-value, menu-bar help-menu search-documentation find-option-by-value.

(icicle-apropos-value)

Choisissez une variable, une fonction ou une autre description de symbole.

C'est similaire à la commande vanilla apropos-value, mais vous pouvez faire correspondre le nom de la variable et sa valeur imprimée en même temps.

Par défaut, chaque candidat à l'achèvement est à achèvement multiple composé d'un nom de variable plus sa valeur. Ils sont séparés par icicle-list-join-string( "^G^J", par défaut).

Avec un préfixe arg, les candidats sont différents types de symboles:

  • <0: fonctions et leurs définitions (mais les définitions compilées en octets sont ignorées)
  • > 0: symboles et leurs plists
  • = 0: variables et leurs valeurs, fonctions et leurs définitions, et autres symboles et leurs plists

  • plain ( C-u): utilise le dernier ensemble de candidats ( mis en cache )

Vous pouvez utiliser C-$pendant l'achèvement pour basculer le filtrage du domaine des candidats initiaux en fonction de l'argument préfixe, comme suit:

  • aucun: uniquement les options utilisateur (+ valeurs)
  • <0: uniquement les commandes (+ définitions)
  • > 0: uniquement les faces (+ plists)
  • = 0: uniquement les options (+ valeurs), les commandes (+ defs), les faces (+ plists)

Voir également:

  • icicle-apropos-vars-w-val-satisfying, icicle-describe-vars-w-val-satisfying- les valeurs satisfont un prédicat
  • icicle-plist - similaire à cette commande avec un préfixe positif arg
  • icicle-vardoc, icicle-fundoc, icicle-doc- nom et match doc
  • icicle-apropos-options-of-type, icicle-describe-option-of-type- nom du match et type personnalisé

Étant donné que vous utiliserez souvent cette commande dans des contextes qui aboutissent à de très nombreux candidats à l'achèvement, les éléments suivants sont désactivés par défaut pour cette commande:

  • Mode incomplet. Vous pouvez basculer cela en utilisant M-i M-#.
  • Achèvement progressif des glaçons. Vous pouvez faire un cycle à l'aide de M-i #.

Lisez l'entrée, puis appelez icicle-doc-actionpour agir en conséquence.

L'achèvement des candidats en entrée et le cycle sont disponibles. Pendant le cyclisme, ces touches avec préfixe C-sont actives:

C-mouse-2, C-return- Agir uniquement sur le candidat à l'achèvement actuel C-down, C-wheel-down- Passer au candidat à l'achèvement suivant et agir C-up, C-wheel-up- Passer au candidat à l'achèvement précédent et agir C-next - Passer au candidat à l'achèvement suivant et agir C-prior- Passer au candidat à l'achèvement précédent et agir C-end - Passer à la suivante candidat à l'achèvement du préfixe et acte C-home - Passer au candidat et à l'achèvement du préfixe précédent C-! - agir successivement sur tous les candidats (attention!)

Lorsque l'action candidate et le cycle sont combinés (par exemple C-next), l'option utilisateur icicle-act-before-cycle-flagdétermine ce qui se produit en premier.

Avec le préfixe au C-M-lieu de C-, les mêmes touches ( C-M-mouse-2, C-M-RET, C-M-down, etc.) fournissent de l' aide sur les candidats.

Utilisez mouse-2, RETou S-RETpour enfin choisir un candidat, ou C-gde quitter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.