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?
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?
Fait apropos-value
ce 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.
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-j
pour 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-j
puis 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-TAB
affiche 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-2
ou 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-value
est une fonction Lisp interactive compilée enicicles-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édicaticicle-plist
- similaire à cette commande avec un préfixe positif argicicle-vardoc
,icicle-fundoc
,icicle-doc
- nom et match docicicle-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-action
pour 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 actuelC-down
,C-wheel-down
- Passer au candidat à l'achèvement suivant et agirC-up
,C-wheel-up
- Passer au candidat à l'achèvement précédent et agirC-next
- Passer au candidat à l'achèvement suivant et agirC-prior
- Passer au candidat à l'achèvement précédent et agirC-end
- Passer à la suivante candidat à l'achèvement du préfixe et acteC-home
- Passer au candidat et à l'achèvement du préfixe précédentC-!
- agir successivement sur tous les candidats (attention!)Lorsque l'action candidate et le cycle sont combinés (par exemple
C-next
), l'option utilisateuricicle-act-before-cycle-flag
détermine ce qui se produit en premier.Avec le préfixe au
C-M-
lieu deC-
, 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
,RET
ouS-RET
pour enfin choisir un candidat, ouC-g
de quitter.