3

ウィンドウの切り替えにはwindmoveを使っています。デフォルトでは、windmove はラップアラウンドしません。たとえば、windmove-up既にウィンドウの上部にいる場合、windmove は失敗します。ただし、ラップアラウンドして下のウィンドウに移動する必要があります。

私はなんとかそれを機能させましたが、解決策はかなりハックです(エラーがある場合は、方向を逆にして、再び失敗するまで続行します):

(define-key my-keys-minor-mode-map (kbd "C-M-k") (lambda () (interactive)
                            (unless
                                (ignore-errors (windmove-up))
                                (while (ignore-errors (windmove-down)) ()))))

よりエレガントなソリューションはありますか?windmove はそれを行うための簡単な方法を提供しますか?

4

3 に答える 3

4
M-x customize-variable RET windmove-wrap-around RET

あれですか?変数は基本的に の上部にありwindmove.elます。

ソースファイルを開きたくない場合は、

M-x customize-group RET windmove RET

このモードに属するすべてのカスタマイズ可能な変数が表示されます。両方とも。

于 2012-12-29T16:31:33.637 に答える
1

.emacsこれをファイルに追加します。

(setq windmove-wrap-around t)
于 2012-12-29T18:19:30.733 に答える
1

ウィンドウを変更するには、次のパッケージを試してみてください

switch-window: 呼び出されると、選択肢からウィンドウを選択できます (1 からウィンドウの数までの数値の選択肢がウィンドウにオーバーレイされます)。番号を選択すると、関連するウィンドウに切り替わります。

これは、ウィンドウ目的のナビゲーションに使用するのがさらに簡単になる場合があります。あなたの答えの直接的な質問については、私は確かに同様の方法でそれをプログラムしますが、より適切な答えがあると思います.

于 2012-12-29T17:26:39.673 に答える