Emacs の現在のウィンドウ幅に基づいて何かを行う関数を作成しようとしています。問題は、列の幅について Emacs が混乱していることです。私のカスタムセットではなく、元のフォントサイズに基づいて計算しているようです。説明するスクリーンショットを次に示します。
カスタムフォント設定を削除すると正しく動作するように見えるので、新しいフォントに切り替えた後、列の大きさを更新していないに違いないと思います。
私のビジュアル設定の関連部分は次のとおりです。
(setq default-frame-alist
'(
(font . "-apple-Ubuntu_Mono-medium-normal-normal-*-17-*-*-*-p-0-iso10646-1")
(width . 130)
(height . 45)))
(明らかに、フレームは写真のデフォルトからサイズ変更されましたが、これは私のフォントが設定される場所なので、関連しているようです)
そして、計算された現在の幅を決定するために使用した関数は次のとおりです。
(defun get-window-size ()
(interactive)
(message "The width is %d." (window-body-width)))
ドキュメントによると、 window-body-width 関数は編集領域のみを返す必要があるため、列数と合計フレームサイズの不一致は排除する必要があります...
フォントを変更した後、列幅の理解を Emacs に更新させるにはどうすればよいですか?