2011-09-21 5 views

答えて

19

のMxibufferRETトンU

しかし、あなたはおそらく、それは交換を行うことができない場合には中止しますので、もう少しそれよりも限定的になりたいでしょう - 例えば一致するファイル名を含む読み取り専用のdiredバッファを検出します。

Chの 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は\文字通り、Uを正規表現構文として読み込みます。 –

+0

非常に真実です、それはregexp replace関数です。文字列バリアントが組み込まれていないので、正規表現を扱う必要があります。そうでなければ、類似の関数を定義することができます。私は答えに1つ追加します。 – phils

+4

また、 'M-x ibuffer RET t Q'は対話的に同じことを行い、それぞれの置換を確認する機会を与えます。 –

3

さまざまな選択肢がありますが、それはどのようにしたいのかによって異なります。

SearchBuffersのEmacs Wikiをチェックしてください。興味深いのは、モチュール編集と氷色です。

2

Treyがこの点に関してIcicles buffer searchingを言及してくれたことに感謝します。

また、私は、DiredのQdired-do-query-replace)も言及しましょう。とても便利な。そして、あなたは簡単にこのようなキーを使用してのdiredでのファイルのセットをマークすることがあるので注意してください(ともっとあります):

  • %メートルdired-mark-files-regexp) - 名前が正規表現に一致するマークファイル
  • %gdired-mark-files-containing-regexp) - テキスト(コンテンツ)が正規表現と一致するファイルをマークします
  • *。dired-mark-extension) - 名前が同じ拡張子を持つマークファイル(例えば、.el

は、標準ライブラリdired-x.el(そしておそらくdired-aux.el)をロードしてください。

1

私はこのウェブサイトを長い時間前に見つけました。申し訳ありませんが、私はソースを覚えていません。 読み取り専用バッファが見つかった場合は停止しますので注意してください。

ちょうどあなたの.emacsに

(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))))) 
関連する問題