質問

私は本業では Emacs を使っています。全く。また、コード内の情報を見つけるために CScope にかなり依存するようになりました。

通常、分割 (C-x 3) に 2 つのウィンドウがあります。代替テキスト http://bitthicket.com/files/emacs-2split.JPG

そして、右側のウィンドウをコード バッファーに使用し、左側のウィンドウを CScope 検索バッファーに使用します。CScope 検索を実行して結果を選択すると、右側のウィンドウが自動的に更新され、結果によって参照されるバッファが表示されます。これはすべて良いことですが、勉強していた他のバッファーで自分の居場所を失うことになります。[C-s u] は私を元の場所に戻してくれるからです。

ただし、次のようにウィンドウを 3 つに分割したほうがよいでしょう (左側のウィンドウの [C-x 2])。代替テキスト http://bitthicket.com/files/emacs-3split.jpg

そして、左下のウィンドウに CScope 検索バッファーを含め、左上のウィンドウを CScope が更新する唯一のバッファーにします。こうすることで、注目しているバッファを失うことなく、CScope 検索を確認してコード内を移動できます。

どうすればそれができるか知っている人はいますか?

役に立ちましたか?

解決

これを .emacs ファイルに入れます。

;; Toggle window dedication

(defun toggle-window-dedicated ()

"Toggle whether the current active window is dedicated or not"

(interactive)

(message 

 (if (let (window (get-buffer-window (current-buffer)))

       (set-window-dedicated-p window 

        (not (window-dedicated-p window))))

    "Window '%s' is dedicated"

    "Window '%s' is normal")

 (current-buffer)))

次に、それを何らかのキーにバインドします。ここでは Pause キーを使用します。

(global-set-key [pause] 'toggle-window-dedicated)

そして、それを使用して、ロックしたいウィンドウを「専用」にします。その場合、cscope は他のウィンドウの結果ウィンドウからのみファイルを開くことができます。魅力的に機能します。私は特にこの目的のためにこれを使用しています。つまり、1 つのソース ファイルを常に画面上に保持し、2 番目のバッファ/ウィンドウで cscope を使用し、3 番目のバッファ/ウィンドウで cscope の結果を確認します。

他のヒント

さて、私は評判を売春婦になるのではなく、自分で答えを見つけることにしました。Emacs wiki に示されている cscope.el と、RHEL の cscope RPM パッケージに付属する xcscope.el を調べました。

どちらも、私が望んでいることを行う方法を提供していないようです。方法はおそらく、次のようなパッケージ変数を追加してELispを編集することです。 *browse-buffer* または何か、ユーザーが最初に初期化していない場合は、その変数を初期化するだけです [C-c C-s g] または何でも、結果として得られるコードは常に次のようになります。 *browse-buffer*. 。その後、ユーザーは *browse-buffer* 彼が望むところならどこでも。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top