Quando eu faço M-x query-replace
para substituir todas as ocorrências de v
by w
, ele também corresponde V
(maiúsculas V
). Como forçar o emacs a encontrar apenas letras minúsculas v
?
15
Quando eu faço M-x query-replace
para substituir todas as ocorrências de v
by w
, ele também corresponde V
(maiúsculas V
). Como forçar o emacs a encontrar apenas letras minúsculas v
?
Respostas:
Ou vincule essa variável (opção) ao seu próprio comando, que é apenas um invólucro
query-replace
. Isso tem a vantagem de não alterar o valor da variável para uso geral, fora da substituição de consultas.Consulte também variável
case-replace
, que controla maiúsculas e minúsculas para o texto de substituição.Veja também
C-h f query-replace
, onde diz, por exemplo:Veja também os comentários abaixo e o bug # 20687 do Emacs , onde mostra como você pode corrigir
perform-replace
para permitir alternar entre dobrar as caixas durantequery-replace
.Observe também que o código existente para
perform-replace
vinculacase-fold-search
dessa maneira (observe as variáveis das quais depende):fonte
case-fold-search
rapidamente, como podemos fazer durante oisearch
uso daM-c
encadernação. Mas, infelizmentequery-replace
, tem seu mapa de modo.query-replace-map
:(defun toggle-case () (interactive) (setq case-fold-search (not case-fold-search)))
e(define-key query-replace-map "C" 'toggle-case)
. Mas o manuseio de chaves nesse mapa é codificadoperform-replace
. Você pode querer queM-x report-emacs-bug
operform-replace
código seja mais aberto, para que as chaves possam ser adicionadas ao mapa. Deveria ter pelo menos uma cláusula de fallback que apenas invoca o cmd associado à chave.query-replace-map
antes.perform-replace
para adicionar umacond
cláusula adicional que chama a chave que você definiuquery-replace-map
. Coloque a nova cláusula imediatamente antes dat
cláusula geral . Esta é a nova cláusula:(def (call-interactively def))
. Não poderia ser mais simples.(customize-set-variable case-fold-search nil)
dá o errocustomize-set-variable: Attempt to set a constant symbol: nil
. Também eu tentei tanto(setq case-fold-search nil)
e(setq case-replace nil)
mas a consulta ainda coincidir com o V. maiúsculas