Lorsque je fais M-x query-replace
pour remplacer toutes les occurrences de v
par w
, cela correspond également à V
(majuscule V
). Comment forcer emacs à ne trouver que des minuscules v
?
15
Lorsque je fais M-x query-replace
pour remplacer toutes les occurrences de v
par w
, cela correspond également à V
(majuscule V
). Comment forcer emacs à ne trouver que des minuscules v
?
Réponses:
Ou liez cette variable (option) dans votre propre commande qui est autrement juste un wrapper
query-replace
. Cela a l'avantage de ne pas modifier la valeur de la variable pour une utilisation générale, en dehors du remplacement de requête.Voir aussi variable
case-replace
, qui contrôle la casse du texte de remplacement.Voir aussi
C-h f query-replace
, où il est écrit, par exemple:Voir également les commentaires ci-dessous et le bogue Emacs n ° 20687 , où vous apprendrez comment vous pouvez corriger
perform-replace
pour vous permettre de basculer le pliage de cas pendantquery-replace
.Notez également que le code existant pour les
perform-replace
liaisonscase-fold-search
de cette manière (notez les variables dont il dépend):la source
case-fold-search
à la volée comme on peut le faire lors de l'isearch
utilisation de laM-c
reliure. Mais malheureusement,query-replace
a sa carte de mode.query-replace-map
:(defun toggle-case () (interactive) (setq case-fold-search (not case-fold-search)))
et(define-key query-replace-map "C" 'toggle-case)
. Mais la gestion des clés dans cette carte est codée en durperform-replace
. Vous voudrez peut-êtreM-x report-emacs-bug
, pour que leperform-replace
code soit plus ouvert, afin que des clés puissent être ajoutées à la carte. Il devrait au moins avoir une clause de secours qui invoque simplement le cmd lié à la clé.query-replace-map
avant.perform-replace
pour ajouter unecond
clause supplémentaire qui invoque la clé que vous avez définie dansquery-replace-map
. Placez la nouvelle clause juste avant lat
clause catch-all . Voici la nouvelle clause:(def (call-interactively def))
. Rien de plus simple.(customize-set-variable case-fold-search nil)
donne l'erreurcustomize-set-variable: Attempt to set a constant symbol: nil
. J'ai aussi essayé les deux(setq case-fold-search nil)
et(setq case-replace nil)
mais la requête correspond toujours au V. majuscule