답변:
(customize-set-variable case-fold-search nil)
또는 자신의 명령에 해당 변수 (옵션)를 바인딩하십시오 query-replace
. 그렇지 않으면 래퍼 일뿐 입니다. 이는 쿼리 대체 이외의 일반적인 용도로 변수 값을 변경하지 않는 이점이 있습니다.
case-replace
대체 텍스트의 대소 문자를 제어하는 variable도 참조하십시오 .
C-h f query-replace
예를 들어 다음과 같은 위치를 참조하십시오 .
일치
case-fold-search
하지 않는 것이 아니고 FROM-STRING에 대문자가없는 경우 대소 문자를 구분하지 않습니다. 경우 교체, 새로운 텍스트로 된 텍스트의 경우 패턴을 전송case-replace
및case-fold-search
비 전무와 FROM-STRING에는 대문자가 없습니다
아래의 의견보기, 그리고 이맥스 버그 # 20687 이 패치 할 수있는 방법 쇼, perform-replace
사건 중 접이식 토글을 수 있도록 query-replace
.
기존 코드 가 이런 식으로 perform-replace
바인드됨에 case-fold-search
유의하십시오 (이에 의존하는 변수에 유의하십시오).
(case-fold-search (if (and case-fold-search search-upper-case)
(isearch-no-upper-case-p from-string regexp-flag)
case-fold-search))
case-fold-search
동안 할 수있는 것처럼 즉시 변경 하는 것이 좋을 것 입니다. 그러나 불행히도 모드 맵이 있습니다. isearch
M-c
query-replace
query-replace-map
: (defun toggle-case () (interactive) (setq case-fold-search (not case-fold-search)))
과에 추가하는 것만 큼 간단 (define-key query-replace-map "C" 'toggle-case)
합니다. 그러나 해당 맵에서 키 처리는에 하드 코딩되어 perform-replace
있습니다. 당신은 할 수 있습니다 M-x report-emacs-bug
는 얻을 perform-replace
더 개방형으로 코드를, 그래서 키를지도에 추가 할 수 있습니다. 최소한 키에 바인딩 된 cmd를 호출하는 대체 절이 있어야합니다.
query-replace-map
.
(customize-set-variable case-fold-search nil)
오류를 제공합니다 customize-set-variable: Attempt to set a constant symbol: nil
. 또한 둘 다 시도 (setq case-fold-search nil)
및 (setq case-replace nil)
하지만 쿼리는 여전히 대문자 V. 일치