2016-02-12 28 views
0

因此,在記事本++中,我可以選擇文本,點擊C-f,然後,如果我需要在所有打開的文件中查找選擇的出現次數,我打開M-o並獲得很好的可點擊列表並導航到出現選項。或者,如果我只需要列出當前文件的列表,我將鼠標指向「查找當前文檔中的所有內容」按鈕,只需點擊一下鼠標,即可獲得與當前活動文件相同的很好的可點擊列表。那麼是否有可能在emac中做到確切的事情?搜索所選文本並在emacs的當前(所有其他緩衝區)中顯示它的全部出現?

回答

0

您可以用下面的Lisp函數實現該功能:

(defun occur-selection() 
    (interactive)     
    (when (region-active-p)   
    (let (deactivate-mark)  
     (occur (regexp-quote (buffer-substring (region-beginning) (region-end))))))) 

如果你把這些代碼在你的~/.emacs文件連同follwing線:

(global-set-key [(meta o)] 'occur-selection) 

,你應該能夠ŧ o選擇一些文本,點擊M-o並獲得在單獨的緩衝區中顯示的所選文本的所有出現的列表。

用戶M-克正M-克對通過在原來的緩存器中的匹配線做循環。

但是,請注意,單行中的多次出現沒有區分。

+0

這是我需要的。謝謝! – someNameJustToAnswer

0

默認情況下,Emacs有M-x出現,它們的工作方式相似但略有不同。它允許您指定正則表達式,當前緩衝區中的所有匹配項將顯示並超鏈接。

如果您的重點更多的是導航而不是突出顯示搜索字詞的所有匹配項,那麼可能有一個外部替代方案可以幫助您。

Emacs的原創理念並不是圍繞用戶界面隱喻建立的,例如用鼠標點擊,它僅來自鍵盤背景。如果您對這種方法感興趣,您可能需要查看Emacs的Avy軟件包。它可以讓你快速跳到多次出現的單詞之一。

檢查出優秀的Emacs岩石情節在行動「跳來跳去」,看看阿維的前體(被稱爲王牌跳模式):http://emacsrocks.com/e10.html

+0

您可以使用「發生」進行導航。使用'next-error'和'previous-error';通過'C-h w'找到他們綁定的鍵。 – jpkotta

+0

它允許你指定一個正則表達式 – someNameJustToAnswer

+0

它允許你指定一個正則表達式 ------------------------------- ------------------ 這一點不是鍵入整個事物,而是選擇和搜索。如果選擇例如*的東西,它會混亂整個事情,你必須\它。壞。實際上,在emacs中,我喜歡增量替換和命名書籤的能力(它更好的是記事本++中的f2書籤),但是這種手指的靈活性需要我很少困惑。 – someNameJustToAnswer

相關問題