2012-12-28 43 views
2

我使用emacs 23.4.1。在大多數情況下,查詢替換正常工作正常。但是有時當我嘗試替換緩衝區中間的某個東西併爲點後面的第一個外觀輸入y時,該點將立即跳轉到整個緩衝區的第一個外觀。例如:emacs查詢替換跳轉到緩衝區的開頭

富------- //開頭

吧------- //使用替代foobar這裏

富------- //在這裏輸入y,然後跳轉到開頭

這非常煩人,而且我無法使用某些確切的輸入重現此問題。但每次發生時,關閉emacs並重新打開可以解決它。任何人都可以幫助我?

+1

這是否在沒有配置的情況下啓動Emacs時發生? 'emacs -q'? –

回答

0

只是我做了一個觀察:我正在使用Emacs 23.2.1並具有與上述相同的問題。所以我在用選項-q啓動emacs時測試了查詢替換。然後它工作,所以認爲這個問題的原因是我的「.emacs」。後來我發現第二個emacs以相同的「.emacs」開頭的實例沒有問題,而第一個實例仍然存在問題。不幸的是,經過一段時間的編碼,使用CEDET進行編譯後,問題纔會回來。畢竟,我現在也不能重現這個問題,也不知道是什麼原因造成的。

0

查詢替換使得猜測從哪裏開始:

... (如果(和瞬態標記模式標記活性) (區域開始))

要確保,標記不在上面,在起始處輸入\C-<SPACE>,即在當前位置設置標記。

0

如果設置的標記(直接使用C-空間的區域中,其中的單詞來替換之前是內側),然後調用它停止該查詢替換命令立即而不必更換任何東西。

2

另一種觀察: 我注意到同樣的問題,該點甚至幾次來回跳動。 我可以通過使用(setq semantic-change-hooks nil)關閉語義更改掛鉤使它消失。 將語義更改掛鉤設置爲運行語義更改 - 更改 - 功能 - 處理 - 更改。 所有這些都發生在semantic-edit.el中,它將語義變化函數添加到變化後的函數中。 總之,我不能將手指指向實際的罪魁禍首,但它與語義有關,這也是我最初的懷疑(我猜JHH是誰提到了CEDET)。

注:關閉語義變化掛鉤,除非你願意放棄一些語義功能是不是一個解決方案。

0

查詢替換再次顯示出搜索詞已經按「Y」代替某個單詞在文本中間之後,從開始到更換的令人討厭的行爲。

我發現了什麼現在:

按Ctrl-Space鍵一次並沒有改變什麼,但按CTRL空間CTRL空間(所以調用該命令兩次 - >激活標記和停用它)使查詢 - 再次替換工作。

更新:當問題再次出現時,按兩次C空間並沒有幫助。所以,這不是解決方法。