1

次のようにキーバインディングを設定します。

(global-set-key [M-down] 'shrink-window)
(global-set-key [M-up] 'enlarge-window)

したがって、M-up を使用するとウィンドウを拡大でき、M-down を使用するとそれ以外の場合に拡大できます。しかし、現在のウィンドウが下側にある場合、M-up でウィンドウを拡大したい。また、現在のウィンドウが M-up で上側にある場合は、shrink-window 関数を呼び出したいと思います。

同様に、現在のウィンドウが下側の場合は M-down でウィンドウを縮小し、現在のウィンドウが上側の場合は拡大します。

つまり、ウィンドウセパレーターの方向を示したいのです。

関数の書き方を教えてください。

4

2 に答える 2

2

答えが出たので、このコードを完成させていました。しかたがない。

(require 'windmove)
(global-set-key [M-up] 
                (lambda() (interactive)
                       (call-interactively
                        (if (windmove-find-other-window 'up)
                            'enlarge-window
                          'shrink-window))))

(global-set-key [M-down] 
                (lambda() (interactive)
                       (call-interactively
                        (if (not (windmove-find-other-window 'up))
                            'enlarge-window
                          'shrink-window))))
于 2013-07-31T09:15:34.547 に答える
1

emacs の一部である windmove を利用すると、次のことができます。

(require 'windmove)
(defun move-separator-up (arg)
       (interactive "p")
       (if (< (cdr (windmove-other-window-loc 'up)) 0)
           (shrink-window arg)
         (enlarge-window arg)))


(defun move-separator-down (arg)
       (interactive "p")
       (if (< (cdr (windmove-other-window-loc 'up)) 0)
           (enlarge-window arg)
         (shrink-window arg)))

3 つのウィンドウがありenlarge-windowshrink-windowルールが常に希望どおりに機能するとは限らないため、さらにカスタマイズが必要になる場合があります。

于 2013-07-31T09:12:54.303 に答える