Gostaria de descobrir quais variáveis contêm um determinado valor.
Existe uma maneira de fazer uma pesquisa regex através dos valores de cada variável no Emacs?
Gostaria de descobrir quais variáveis contêm um determinado valor.
Existe uma maneira de fazer uma pesquisa regex através dos valores de cada variável no Emacs?
Faz o apropos-value
que você está procurando?
(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.
O comando Iciclesicicle-apropos-value
aprimora o comando vanilla apropos-value
, permitindo combinar simultaneamente o nome e o valor da variável com os regexps (ou substrings ou outros padrões). Você não precisa combinar os dois, mas pode combinar os dois.
E (como na conclusão de todos os Sincelos), você pode combinar o nome ou o valor ou ambos progressivamente , ou seja, usando vários padrões incrementalmente. Isso é particularmente importante para um caso em que, como você diz, você está combinando com todas as variáveis no Emacs, para começar. Ou seja, você não se importa em comparar com nomes; você só quer combinar valores.
Para corresponder nome e valor, use C-M-j
para finalizar o padrão de nome e iniciar o padrão de valor. Portanto, para corresponder apenas aos valores, comece com C-M-j
e digite o padrão de valor, pois o padrão de nome está vazio.
Por exemplo, para ver todas as variáveis cujo valor atual corresponde nil
( S-TAB
mostra correspondências):
M-x icicle-apropos-value RET
SYMBOL C-M-j VALUE:
C-M-j
nil
S-TAB
Para ver todas as variáveis cujo valor atual corresponde à regexp .*plist
:
SYMBOL C-M-j VALUE:
C-M-j
.*plist
S-TAB
As variáveis correspondentes e seus valores são mostrados no buffer *Completions*
, como candidatos à conclusão. Você pode circular entre os candidatos, fazendo com que cada uma corrente, por sua vez, utilizando as teclas verticais-arrow: <down> <down> <down>...
.
A primeira linha de sequência de documentos para o candidato a conclusão atual é mostrada na linha de modo de *Completions*
.
Você pode obter uma descrição completa (ou seja C-h v
) do candidato atual usando uma chave de ajuda: C-M-mouse-2
ou C-M-RET
. Para obter ajuda sobre cada candidato, alterne com as setas do teclado C-M-
(por exemplo, repita C-M-<down>
).
Consulte Múltiplos comandos com valor variável .
C-h f icicle-apropos-value
diz o seguinte:
icicle-apropos-value
é uma função Lisp compilada interativa emicicles-cmd1.el
.Ele é obrigado a
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)
Escolha uma variável, função ou outra descrição do símbolo.
Isso é semelhante ao comando vanilla
apropos-value
, mas você pode comparar com o nome da variável e seu valor impresso ao mesmo tempo.Por padrão, cada candidato à conclusão é a conclusão múltipla composta por um nome de variável mais seu valor. Eles são separados por
icicle-list-join-string
("^G^J"
, por padrão).Com um prefixo arg, os candidatos são diferentes tipos de símbolos:
- <0: funções e seus padrões (mas os padrões compilados em bytes são ignorados)
- > 0: símbolos e suas listas
= 0: variáveis e seus valores, funções e definições, e outros símbolos e suas listas
plain (
C-u
): use o último conjunto de candidatos computado (em cache )Você pode usar
C-$
durante a conclusão para alternar a filtragem do domínio dos candidatos iniciais de acordo com o argumento do prefixo, da seguinte maneira:
- none: apenas opções do usuário (+ valores)
- <0: apenas comandos (+ definições)
- > 0: apenas faces (+ listas)
- = 0: apenas opções (+ valores), comandos (+ defs), faces (+ listas)
Veja também:
icicle-apropos-vars-w-val-satisfying
,icicle-describe-vars-w-val-satisfying
- valores satisfazem um predicadoicicle-plist
- semelhante a este comando com prefixo positivo argicicle-vardoc
,icicle-fundoc
,icicle-doc
- nome match & docicicle-apropos-options-of-type
,icicle-describe-option-of-type
- nome da correspondência e tipo de personalizaçãoComo você costuma usar esse comando em contextos que resultam em muitos candidatos à conclusão, o seguinte é desativado por padrão para este comando:
- Modo completo. Você pode alternar isso usando
M-i M-#
.- Sincelos conclusão incremental. Você pode alternar isso usando
M-i #
.Leia a entrada e ligue
icicle-doc-action
para agir de acordo.Conclusão do candidato de entrada e ciclismo estão disponíveis. Durante o ciclo, essas teclas com prefixo
C-
estão ativas:
C-mouse-2
,C-return
- Lei sobre a atual candidato de conclusão únicaC-down
,C-wheel-down
- Move para o próximo candidato de conclusão e agirC-up
,C-wheel-up
- Mover para candidato de conclusão anterior e agirC-next
- Move para o próximo candidato apropos-conclusão e agirC-prior
- Mover para anterior candidato apropos-conclusão e agirC-end
- Mover para a próxima candidato e ato de conclusão do prefixoC-home
- Mova para o candidato e ato de conclusão do prefixo anteriorC-!
- Atue em todos os candidatos, sucessivamente (cuidado!)Quando a ação do candidato e o ciclo são combinados (por exemplo
C-next
), a opção do usuárioicicle-act-before-cycle-flag
determina o que ocorre primeiro.Com prefixo
C-M-
em vez deC-
, as mesmas teclas (C-M-mouse-2
,C-M-RET
,C-M-down
e assim por diante) fornecem ajuda sobre os candidatos.Use
mouse-2
,RET
ouS-RET
para finalmente escolher um candidato, ouC-g
para sair.