2010/06/02

Emacs 任意のサイズと起動時のサイズを切り替える

こういうのわざわざ書く必要も無いんでしょうけども。
起動時のサイズと場所、任意のサイズと場所に変更できるだけでよかったので、書いてみました。

はじめに、こう書いてみたのですが、意図した通りに動いてくれませんでした。
(defun change-frame-size (frame top left height width)
(interactive)
(set-frame-width frame width)
(set-frame-height frame height)
(set-frame-position frame left top))
(change-frame-size (selected-frame) 0 0 35 130)
view raw temp.emacs hosted with ❤ by GitHub


取りあえず、意図した動きをしてくれたので、これでOK。
;; channge frame size
(defun inject-alist (from to)
(mapcar '(lambda (e)
(let ((exist (assq (car e) from)))
(if exist exist e))) to))
(defun make-frame-alist (top left height width)
`((top . ,top)(left . ,left)
(height . ,height)(width . ,width)))
(defun change-frame-my-size ()
(interactive)
(let ((al (make-frame-alist 0 0 35 125)))
(modify-frame-parameters
(selected-frame)(inject-alist al initial-frame-alist))))
(defun change-frame-init-size ()
(interactive)
(modify-frame-parameters
(selected-frame) initial-frame-alist))
(define-key global-map "\C-cm" 'change-frame-init-size)
(define-key global-map "\C-cM" 'change-frame-my-size)
view raw @.emacs hosted with ❤ by GitHub


C-cm で起動時のサイズと場所に、C-cM で任意のサイズと場所に変更するようにしました。


なんか一冊読んでみたい気がしなくもない。

入門 GNU Emacs 第3版

0 件のコメント:

コメントを投稿