2011-09-21 2 views

답변

19

MXibufferRETtU

하지만 당신은 아마 그것을 대체 할 수없는 경우가 중단 때문에, 조금 더보다 제한적으로 할 것 - 예 일치하는 파일 이름을 포함하는 읽기 전용 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)) 
+0

덕분에이를 배치하지만,이 대체 문자열을 완전히 동일하지 않는 것 같습니다. r-s는 \ literally로, U는 regexp-syntax로 읽습니다. –

+0

사실, regexp replace 함수이고, 문자열 변형이 내장되어 있지 않으므로 정규 표현식을 처리해야합니다. 그렇지 않으면 유사한 함수를 정의 할 수 있습니다. 나는 대답에 하나를 추가 할 것이다. – phils

+4

또한'M-x ibuffer RET t Q'는 대화식으로 동일한 작업을 수행하여 각 교체 작업을 확인할 수있는 기회를 제공합니다. –

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)))))