Emacs - 複数のウィンドウでカーソルを見つける

Emacs - 複数のウィンドウでカーソルを見つける

私のemacsフレームを2つの並んでいるウィンドウに分割し始めましたが、カーソルが現在どのウィンドウにあるのかが一目でわかりません。別のウィンドウコマンドを特殊キーにまとめたので、このキーを押すのは簡単です。別のウィンドウに切り替えた直後にカーソルを3回点滅させる方法はありますか?それとも、人々はより良​​い解決策を考えましたか?

ベストアンサー1

私はemacsに現在の行を強調表示させるのが役に立つと思います。マイナーモードhlラインモードこの方法。現在のバッファで有効にできます。MX hl-line-mode、またはemacs設定でグローバルに:

(global-hl-line-mode 1)

見てEmacswiki:現在の行を強調表示。また、あなたにもっと興味深いかもしれない他のマイナーモードも言及します。


編集する:

私がwikiを検索して発見したのは十字線モード。私はこれを自分で試してみると思いました。

(crosshairs-mode 1)
(setq col-highlight-vline-face-flag  t
      col-highlight-face             hl-line-face)

編集2:

私は地平線が好きですが、続く垂直線が気を散らすと思います。幸いなことに、フラッシュ機能とアイドルモードcrosshairsも提供されています。flash-crosshairstoggle-crosshairs-when-idle

アイドル状態のときに十字線を表示するために、構成には次のものがあります。

(require 'crosshairs)
(toggle-crosshairs-when-idle 1)
(setq col-highlight-vline-face-flag  t
      col-highlight-face             hl-line-face)

ただし、これはバッファ/ウィンドウスイッチでは点滅しません。残念ながらフックはありません。しかし、少なくともemacs lispは私たちにコンサルティング機能、これにより既存の機能を拡張できます。これは非常にトリッキーかもしれません。

バッファ切り替え後、十字線が点滅します。

(defadvice switch-to-buffer (after switch-to-buffer-flash-crosshairs activate)
  "Call `flash-crosshairs' after `switch-to-buffer'"
  (flash-crosshairs))

これはほとんどの場合機能します(変換が完了したわけではありませんswitch-to-buffer)。

ミニバッファ(開いたファイルなど)がいくつかの問題を引き起こすため、ウィンドウの切り替えはより困難です。したがって、点滅は他のバッファに切り替えたときにのみ発生します。

(defadvice select-window (around select-window-flash-crosshairs activate)
  "Call `flash-crosshairs' after `select-window', if switching to another buffer.
The check is necessary to prevent issues with mini-buffer switching."
  (let (cons (cur-buffer-name (buffer-name (current-buffer)))
             ad-arg-bindings)
    ad-do-it
    (unless (string= (buffer-name (window-buffer window))
                     cur-buffer-name)
      (flash-crosshairs))))

ad-arg-bindings提案された関数の引数であり、ad-do-it元の関数を実行します。

提案を無効にするには、次のようにします。

(ad-remove-advice 'select-window 'around 'select-window-flash-crosshairs)
(ad-remove-advice 'switch-to-buffer 'after 'switch-to-buffer-flash-crosshairs)

私が言ったように、アドバイスを提供するのは難しいですが、これがほとんどの場合に当てはまると思います。

おすすめ記事