回答:
解像度に応じてサイズを変更したい場合は、次のようにすることができます(特定のニーズに応じて適切な幅と解像度を調整します)。
(defun set-frame-size-according-to-resolution ()
(interactive)
(if window-system
(progn
;; use 120 char wide window for largeish displays
;; and smaller 80 column windows for smaller displays
;; pick whatever numbers make sense for you
(if (> (x-display-pixel-width) 1280)
(add-to-list 'default-frame-alist (cons 'width 120))
(add-to-list 'default-frame-alist (cons 'width 80)))
;; for the height, subtract a couple hundred pixels
;; from the screen height (for panels, menubars and
;; whatnot), then divide by the height of a char to
;; get the height we want
(add-to-list 'default-frame-alist
(cons 'height (/ (- (x-display-pixel-height) 200)
(frame-char-height)))))))
(set-frame-size-according-to-resolution)
window-systemは、emacsの新しいバージョンでは非推奨であることに注意してください。適切な代替品は(display-graphic-p)
です。emacsがターミナルモードであることを検出する方法についての質問に対するこの回答を参照してください。もう少し背景について。
私には次のものがあります.emacs
:
(if (window-system)
(set-frame-height (selected-frame) 60))
また、機能に見えるかもしれませんset-frame-size
、set-frame-position
とset-frame-width
。使用C-h f
(別名M-x describe-function
)をして詳細なドキュメントを表示します。
現在のウィンドウ環境でフレームの最大の高さ/幅を計算する方法があるかどうかはわかりません。
(if (window-system) (set-frame-size (selected-frame) 124 40))
勝利のために-とても素晴らしく簡潔であり、私のターミナルのデフォルトのサイズを取得します。:)(もちろん、好みに応じて調整してください。)ありがとうございます!
init.el
と、最初のフレームにのみ適用されます。その後、新しいフレームを作成すると、上記の機能は無効になります。新しいフレームには、で設定された設定が含まれdefault-frame-alist
ます。
(set-frame-size (selected-frame) 80 24)
は私にとっては機能しますが、フレームのサイズが161 x 48になります。私は4K hidpi画面を使用していますが、それが文字数に影響を与えるとは思いません。
引用元:http : //www.gnu.org/software/emacs/windows/old/faq4.html
(setq default-frame-alist
'((top . 200) (left . 400)
(width . 80) (height . 40)
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "yellow")
(background-color . "black")
(font . "-*-Courier-normal-r-*-*-13-*-*-*-c-*-iso8859-1")))
(setq initial-frame-alist '((top . 10) (left . 30)))
最初の設定は、起動時にポップアップする最初のものを含むすべてのemacsフレームに適用されます。2番目の設定は、追加の属性を最初のフレームに追加します。これは、emacsを開始する元のフレームを知っておくと良い場合があるためです。
(width . 80) (height . 40)
)を設定するために長い間この方法を使用しましたが、Xubuntuのバージョンを12.04から13.10にアップグレードした後、何らかの理由で機能が停止しました。起動時のフレームサイズはデフォルトでした。その後、Chris Conwayの回答を使用するように切り替えました。
X-Window環境でこれを行うのに最も簡単な方法は、Xリソースを使用することです。私の.Xdefaultsの関連部分は次のようになります。
Emacs.geometry: 80x70
あなたはそれをあなたのディスプレイの左上隅に強制するために+ 0 + 0の位置座標をそれに付けることができるはずです。(私がそれをしない理由は、時々新しいフレームをスポーンするためで、前のフレームとまったく同じ場所に表示されると混乱を招きます)
マニュアルによると、この手法はMS Windowsでも機能し、リソースをキーと値のペアとしてレジストリに保存します。私はそれをテストしたことがありません。それは素晴らしいかもしれません、それは単にファイルを編集することに比べてはるかに不便かもしれません。
Windowsでは、この関数を使用してemacsフレームを最大化できます。
(defun w32-maximize-frame ()
"Maximize the current frame"
(interactive)
(w32-send-sys-command 61488))
(defun set-frame-size-according-to-resolution ()
(interactive)
(if window-system
(progn
;; use 120 char wide window for largeish displays
;; and smaller 80 column windows for smaller displays
;; pick whatever numbers make sense for you
(if (> (x-display-pixel-width) 1280)
(add-to-list 'default-frame-alist (cons 'width 120))
(add-to-list 'default-frame-alist (cons 'width 80)))
;; for the height, subtract a couple hundred pixels
;; from the screen height (for panels, menubars and
;; whatnot), then divide by the height of a char to
;; get the height we want
(add-to-list 'default-frame-alist
(cons 'height (/ (- (x-display-pixel-height) 200)
(frame-char-height)))))))
(set-frame-size-according-to-resolution)
私はブライアンオークリーの設定を好みます。ただし、'高さは私のGNU Emacs 24.1.1では正しく機能しません。