2011-11-24 65 views
9

有沒有類似於在點之後將字插入到isearch查詢中的C-w之後C-s,而是替換字符串(和替換正則表達式)查詢?Emacs:將字插入到替換字符串查詢

我也喜歡的C-x薩沙蔡氏修改周圍插入點整字到ISEARCH:

http://sachachua.com/blog/2008/07/emacs-keyboard-shortcuts-for-navigating-code/

這也將是非常有用的在某些情況下,如果它可以被用於替換字符串。

我會非常感謝任何提示! 謝謝!

回答

7

這將做到這一點,雖然沒有花哨的CW在ISEARCH,因爲你不能不停的按鍵,擴展選擇:

(defun my-minibuffer-insert-word-at-point() 
    "Get word at point in original buffer and insert it to minibuffer." 
    (interactive) 
    (let (word beg) 
    (with-current-buffer (window-buffer (minibuffer-selected-window)) 
     (save-excursion 
     (skip-syntax-backward "w_") 
     (setq beg (point)) 
     (skip-syntax-forward "w_") 
     (setq word (buffer-substring-no-properties beg (point))))) 
    (when word 
     (insert word)))) 

(defun my-minibuffer-setup-hook() 
    (local-set-key (kbd "C-w") 'my-minibuffer-insert-word-at-point)) 

(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook) 

編輯: 注意這是標準的小緩衝區,所以你可以使用它使用它的任何地方,你有一個小緩衝區提示,例如在grep的,發生等

+0

感謝您的快速回答!這絕對足夠接近並且具有更一般的優勢!謝謝! – user673592

2

兩個答案:

  1. Replace+當您調用替換命令時,會自動在點處選取文本作爲默認值。

  2. 更一般地說,Icicles與scottfrazer的代碼(上面)做了類似的事情,但它更一般。任何時候,在任何小型緩衝器中,您都可以打到M-。(默認情況下)在點處拾取文本(「事物」)並將其插入到小型緩衝器中。您可以在重複這一點,或者(a)拿起連續的東西(如單詞),積累他們像CW併爲ISEARCH,或(b)拿起替代,不同東西點。更多解釋here