我使用emacs查看和編輯代碼和其他文本文件。我想知道是否有方法向前或向後搜索當前緩衝區中標記的文本。類似於我可以在記事本或寫字板中做的事情。像我一樣,我可以在緩衝區中標記一些文本並執行C-s或C-r,並且能夠使用標記的文本進行搜索,而無需實際輸入整個搜索文本?在Emacs中搜索標記(選定)的文本
謝謝
羅希特
我使用emacs查看和編輯代碼和其他文本文件。我想知道是否有方法向前或向後搜索當前緩衝區中標記的文本。類似於我可以在記事本或寫字板中做的事情。像我一樣,我可以在緩衝區中標記一些文本並執行C-s或C-r,並且能夠使用標記的文本進行搜索,而無需實際輸入整個搜索文本?在Emacs中搜索標記(選定)的文本
謝謝
羅希特
是。 M-W
(獲取所選文本的副本)C-s <RET> C-y <RET>
。然後根據需要重複C-s
。同樣爲C-r
。
@Alex釘釘子。
我經常使用的另一個選項是C-s C-w
來搜索當前標記之後的單詞。擊中C-w
反覆增加搜索和其他單詞(例如,C-s C-w C-w C-w
搜索當前標記之後的3個單詞)。
同樣,C-s C-y
在當前標記和C-s C-M-y
後搜索該行的其餘部分,搜索標記後面的字符。這些都以相同的方式可重複使用。
確實是一個方便的提示。 – Rohit 2008-10-15 00:15:00
同樣,`C-r C-w`向後搜索(「r」=反向)標記後的單詞。並且`C-r C-w C-w`向後搜索標記後面的兩個單詞。 – dougkramer 2015-02-05 07:44:48
最短的按鍵順序做,這是中號 - 瓦特Ç - 小號中號 - ÿ。
我使用不具有不必鍵入多於1個的連續Cs的問題,下面找到後出現次數:
(defun search-selection (beg end)
"search for selected text"
(interactive "r")
(kill-ring-save beg end)
(isearch-mode t nil nil nil)
(isearch-yank-pop)
)
(define-key global-map (kbd "<C-f3>") 'search-selection)
以前的代碼的缺點是,所選擇的文本複製到拉伸。下面的代碼沒有這個問題:
(defun search-selection (beg end)
"search for selected text"
(interactive "r")
(let (
(selection (buffer-substring-no-properties beg end))
)
(deactivate-mark)
(isearch-mode t nil nil nil)
(isearch-yank-string selection)
)
)
(define-key global-map (kbd "<C-f3>") 'search-selection)
上面的答案(包括接受的答案)太麻煩恕我直言。我發現以下信息並且喜歡它更好:
「Ctrl + s Ctrl + w」。這將搜索當前單詞,但必須先將光標移動到該單詞的開頭。
http://xah-forum.blogspot.com/2009/08/search-word-under-cursor-in-emacs.html
其他答案描述瞭如何搜索複製的文本,或者如何尋找在點字。但是他們都沒有描述如何「用標記文本搜索」。
添加下面的鉤子將讓這個當前選定的文本是用於一個ISEARCH文本:
(defun jrh-isearch-with-region()
"Use region as the isearch text."
(when mark-active
(let ((region (funcall region-extract-function nil)))
(deactivate-mark)
(isearch-push-state)
(isearch-yank-string region))))
(add-hook 'isearch-mode-hook #'jrh-isearch-with-region)
提示:這對很好地與expand-region。
有一個很好的功能:isearch-forward-symbol-at-point
。它會突出顯示所有出現的單詞所在的位置 - 無需將單詞放在單詞的開頭。然後用C-s或C-r移動到下一個或上一個。
請注意,它完全匹配:如果您在hi
上使用它,則不會匹配chill
。
我映射如果到command-f
(mac OSX):(global-set-key (kbd "s-f") 'isearch-forward-symbol-at-point)
在init文件中。
很高興我能幫到你。順便提一下,本手冊的相關部分是「20.1增量搜索基礎知識」。 Ch idm emacs g基本Isearch http://www.manpagez.com/info/emacs/emacs_95.php –
2008-10-14 21:20:25
這就是我已經做到了這一點......我有點驚訝沒有一個內置的命令爲了這。 – fbmd 2014-11-07 15:38:50
這不解釋如何搜索標記的文本。這解釋瞭如何搜索複製的文本。 – Jackson 2015-08-14 02:02:46