7

小さなネットブックで Emacs を使用してコードを記述しています。フォント サイズを設定して、約 fill-column(79) 文字が単一の「最大化」ウィンドウの幅を埋めるようにしました (つまり、かなり大きなフォント サイズ)。ただし、2 つのウィンドウを並べて開いた場合、それらのウィンドウのフォント サイズを自動的に縮小して、各ウィンドウの幅が少なくとも 79 文字に収まるようにしたいと考えています。

これを詳しく調べる前に (私は Lisp が苦手です)、サイズ変更ごとにウィンドウの幅を取得し、それを fill-columns で分割し、その結果に基づいて等幅フォント サイズを選択することは可能ですか?

4

2 に答える 2

2

これを行うのに適切な場所は次のように思われますwindow-size-change-functions

ウィンドウサイズが変更された場合、再表示の前に呼び出される関数。値は、1つの引数を取る関数のリストである必要があります。再表示の直前に、フレームごとに、最後の再表示以降にウィンドウのサイズが変更された場合、または分割または削除された場合、フレームを引数として、リスト内のすべての関数が呼び出されます。

具体的には、次のようなものをあなたの.emacs:に貼り付けます

(defun window-width-to-font-size (window-width)
  ;; Insert a calculation to turn window width into 79 chars.
  )

(add-to-list
 'window-size-change-functions
 (lambda (frame)
   (dolist (window (window-list frame))
     (set-face-attribute
      'default nil
      :width (window-width-to-font-size (window-body-width window))))))
于 2012-07-26T12:13:26.713 に答える