2

私は.emacsに次のものを持っています

(defun find-in-workspace(term)
  (interactive "sSearchInWorkspace: \n")
  (grep-find (concat "grep -rnH --include=\*.{c,cpp,h} --include=-e '" term "' /home/workspaces/*")))

これは grep-find の単なるラッパーであり、ワークスペース内のすべてのファイルを検索できます。

私の問題はgrepバッファにあります。コードをすばやく参照できるように、項目を選択するときにgrepバッファーのウィンドウにカーソルを置いておきたいのですが、行を選択するとカーソルが自動的に他のウィンドウに移動します。 5つ以上のアイテムのリスト。とにかく、この機能をこの関数に組み込むか、grep-find の設定を変更できますか? 私は検索してきましたが、解決策が見つかりませんでした。

4

3 に答える 3

1

あなたが望むことを正確に行うための2つの関数があります:previous-error-no-selectnext-error-no-select.

また、役に立つこともありますnext-error-follow-minor-mode

于 2013-08-07T07:34:27.463 に答える
1

ソースから掘り下げると見つかるかもしれないgrep動作のいくつかのオプションがあるかもしれませんが、emacs grepの多くの機能強化をもたらす GrepPluslisp/progmodes/grep.elライブラリを見る方が良いと思います。

それ以外の場合は、それを使用occurしてカスタマイズする方法を確認することもできます。場合によっては、マッチ バッファにいるときにC-o、カーソルをマッチ バッファに保持したまま、選択したマッチを他のバッファに表示する Ret の代わりに使用できます。grep との違いは、開いているバッファーでのみ機能することです。私はむしろgrep+同等のものを持っているかもしれないと確信しています。見てみるべき

于 2013-08-06T21:30:52.670 に答える
1

関数next-errorとを参照してくださいprevious-error。それらは grep バッファーを離れますが、どこからでも機能するため、たとえば、next-error便利な a キーにバインドすると、キーを押し続けることができ、grep バッファーを反復処理します。

于 2013-08-07T10:36:35.517 に答える