Я знаю, что вы можете изменить размер фрейма в файле .emacs с помощью set-frame-width
или (add-to-list 'default-frame-alist '(width . 80))
, но как я могу изменить ширину после запуска Emacs (кроме перетаскивания края кадра)?
Измените ширину рамки в Emacs, Интерактивно
Ответ 1
Хорошо, перейдите в буфер *scratch*
и используйте set-frame-width
.
(set-frame-width (selected-frame) 100) ;; ^J to execute.
set-frame-width
не является интерактивным, поэтому вы не можете запустить его с помощью M-x
, но вы можете тривиально написать интерактивный набор-frame-width, что-то вроде
(defun set-frame-width-interactive (arg)
(interactive "p")
(set-frame-width (selected-frame) arg))
Теперь C-u 8 0 M-x set-frame-width-interactive
установит ширину 80.
Это то, что вы пытаетесь сделать?
Ответ 2
В этой библиотеке есть несколько интерактивных команд для вашего использования: http://www.emacswiki.org/emacs/frame-cmds.el
Вот несколько релевантных:
enlarge-frame
enlarge-frame-horizontally
hide-frame
mouse-show-hide-mark-unmark
move-frame-down
move-frame-left
move-frame-right
move-frame-up
show-a-frame-on
show-frame
shrink-frame
shrink-frame-horizontally
tile-frames
Ответ 3
В дополнение к предложениям Чарли Мартина вы можете сделать
M-: (set-frame-width (selected-frame) N)
Ответ 4
Чтобы легко переключаться между двумя размерами кадров, вы можете определить что-то подобное (например, добавить его в файл ".emacs" ) (приспособить размеры к экрану и шрифтам)
(defvar myfullscreen '()
"non-nil if current frame is in fullscreen mode. See myfullscreen-on, myfullscreen-off, myfullscreen-toggle")
(defun myfullscreen-on ()
"Sets fullscreen on (based on ???display??? with font ???)"
(interactive)
(set-frame-width (selected-frame) 177); adapt size
(set-frame-height (selected-frame) 58); adapt size
(setq myfullscreen t)
)
(defun myfullscreen-off ()
"Sets fullscreen off (based on ???display??? with font ???)"
(interactive)
(set-frame-width (selected-frame) 110); adapt size
(set-frame-height (selected-frame) 58); adapt size
(setq myfullscreen nil)
)
(defun myfullscreen-toggle ()
"Toggles fullscreen on/off (based on ???Display??? with font ???)"
(interactive)
(if (eq myfullscreen 'nil)
(myfullscreen-on)
;else
(myfullscreen-off)
)
)
Затем вы можете использовать
M-x myfullscreen-on
M-x myfullscreen-off
M-x myfullscreen-toggle
и/или привязать их к вашим любимым связям клавиш
Ответ 5
На моем ubuntu 12.04 (emacs) функции set-frame-height и set-frame-width перестают работать после того, как я увеличиваю и восстанавливаю фрейм с помощью горячей клавиши compiz. Например, если кадр больше не максимизирован, я вижу в буфере с нуля:
(каркасно-высота)
38
(высота кадра (выбранный кадр) 35)
ноль
(Каркасно-высота)
38
По-видимому, существует некоторое другое взаимодействие с диспетчером окон, который находится в режиме set-frame-height.