어떻게하면 emacs의 모든 버퍼에서 "M-x replace-string"을 할 수 있습니까?emacs의 모든 버퍼에서 "M-x replace-string"을 어떻게합니까?
20
A
답변
19
MXibuffer
RETtU
하지만 당신은 아마 그것을 대체 할 수없는 경우가 중단 때문에, 조금 더보다 제한적으로 할 것 - 예 일치하는 파일 이름을 포함하는 읽기 전용 dired 버퍼를 발견합니다.
채널 모드 도움말을 읽고, 쉽게 관심있는 단지 버퍼를 표시하는 방법을 배울 수 ibuffer 내미터
편집 :. 비 정규 표현식 버전의 ibuffer-do-replace-regexp
쉽게
;; defines ibuffer-do-replace-string
(define-ibuffer-op replace-string (from-str to-str)
"Perform a `replace-string' in marked buffers."
(:interactive
(let* ((from-str (read-from-minibuffer "Replace string: "))
(to-str (read-from-minibuffer (concat "Replace " from-str
" with: "))))
(list from-str to-str))
:opstring "replaced in"
:complex t
:modifier-p :maybe)
(save-window-excursion
(switch-to-buffer buf)
(save-excursion
(goto-char (point-min))
(let ((case-fold-search ibuffer-case-fold-search))
(while (search-forward from-str nil t)
(replace-match to-str nil t))))
t))
3
다양한 선택이 있는데, 그 종류는 원하는대로 달라집니다.
SearchBuffers에 대한 이맥스 위키를 확인하십시오. 관심 대상은 moccur-edit와 고드름입니다.
2
이와 관련하여 Trey에게 Icicles buffer searching을 언급 해 주셔서 감사합니다.
Dired에서 Q (dired-do-query-replace
)도 언급하겠습니다. 매우 편리합니다. 그리고 당신은 쉽게 이들과 같은 키를 사용하여 Dired의 파일 세트를 표시 할 수 있습니다 알고 있어야 (보다가) :
- % m (
dired-mark-files-regexp
) - 이름이 regexp와 일치하는 마크 파일 - % g (
dired-mark-files-containing-regexp
) - 텍스트 (내용)가 정규 표현식 - *과 일치하는 파일을 표시합니다. (
dired-mark-extension
) - 이름이 같은 확장자를 가진 마크 파일 (예를 들어,.el
)
는 표준 라이브러리 dired-x.el
(그리고 아마도 dired-aux.el
)를로드해야합니다.
1
나는 오랫동안이 웹 사이트에서 이것을 발견했습니다. 근원을 기억하지 못해 죄송합니다. 읽기 전용 버퍼를 찾으면 버퍼가 중지되므로주의하십시오.
은 그냥 이맥스에
(defun query-replace-in-open-buffers (arg1 arg2)
"query-replace in open files"
(interactive "sQuery Replace in open Buffers: \nsquery with: ")
(mapcar
(lambda (x)
(find-file x)
(save-excursion
(beginning-of-buffer)
(query-replace arg1 arg2)))
(delq
nil
(mapcar
(lambda (x)
(buffer-file-name x))
(buffer-list)))))
관련 문제
- 1. Emacs는 모든 버퍼에서 줄을 잘라냅니다.
- 2. MX : Tree의 모든 항목 렌더러에 액세스하는 방법?
- 3. MX : Tree의 모든 아이템 렌더러에 액세스하는 방법?
- 4. Emacs의 다른 버퍼에 eval 명령을 입력하십시오.
- 5. 출력 버퍼에서?
- 6. mx : mx : List 내의 텍스트 둘러싸 기
- 7. Emacs의 루비 탐색
- 8. 메모리 버퍼에서 HBITMAP 만들기
- 9. Emacs의 글꼴 문제
- 10. emacs의 java는 어떻게 되었습니까?
- 11. iOS의 버퍼에서 이미지를 그립니다.
- 12. 버퍼에서 오디오 재생
- 13. C의 버퍼에서 어셈블리 호출
- 14. 버퍼에서 문자열 얻기
- 15. elisp/emacs의 rpc 서버
- 16. Emacs의 안경 모드
- 17. Emacs의 파일 확장자 훅
- 18. Emacs의 탭 크기 설정
- 19. Emacs의 C++ Lib/Headers
- 20. Emacs의 시동 순서는 무엇입니까?
- 21. Emacs의 goto-file
- 22. Emacs의 공백까지 삭제
- 23. Emacs의 버퍼 스위치에서 이전 창 위치 복원
- 24. C# - 직렬 포트 버퍼에서 읽음
- 25. Emacs 버퍼에서 URL을 추출 하시겠습니까?
- 26. 중첩 된 크기 조정 mx : 모든 목록 항목을 표시하는 목록
- 27. emacs의 키보드 단축키 완성 도움말?
- 28. Emacs의 매크로 내부에서 매크로 호출하기
- 29. mx : Repeater 내부에서 mx : CheckBox 값 가져 오기
- 30. Emacs의 dired 모드를위한 전용 윈도우?
덕분에이를 배치하지만,이 대체 문자열을 완전히 동일하지 않는 것 같습니다. r-s는 \ literally로, U는 regexp-syntax로 읽습니다. –
사실, regexp replace 함수이고, 문자열 변형이 내장되어 있지 않으므로 정규 표현식을 처리해야합니다. 그렇지 않으면 유사한 함수를 정의 할 수 있습니다. 나는 대답에 하나를 추가 할 것이다. – phils
또한'M-x ibuffer RET t Q'는 대화식으로 동일한 작업을 수행하여 각 교체 작업을 확인할 수있는 기회를 제공합니다. –