在emacs中将帧挂钩到模式

时间:2014-03-03 17:43:57

标签: emacs hook frame

使用emacs -nw我想制作钩子,以便某些模式(用于写散文)给我一个狭窄的居中框架。此

(set-frame-width (selected-frame) 100)

...设置较窄的框架但与左侧对齐。

我该如何居中? 如何在切换模式时设置一个更改帧的挂钩?

2 个答案:

答案 0 :(得分:0)

尝试使用挂钩after-make-frame-functionsafter-change-major-mode-hook

(不知道这些对emacs -nw有多大帮助。)

答案 1 :(得分:0)

@ieure撰写的关于Github的要点的以下链接似乎可以解决您的居中问题:

https://gist.github.com/ieure/80638


另见@Drew编写的以下两(2)个库:

http://emacswiki.org/emacs/frame-fns.el

http://emacswiki.org/emacs/frame-cmds.el


以下是一些例子。在1920 x 1080像素的屏幕上,我的最大frame-height为52,最大frame-width为172.下面名为minimize的函数会更改所有打开的框架的大小并放置将帧缩小到屏幕的左侧,因为我喜欢在Emacs中键入注释,而我正在查看另一个应用程序 - 例如,Adobe Acrobat。

使用set-frame-position时,数字是从屏幕左上角开始的x和y坐标。例如,(set-frame-position (selected-frame) 300 300)的框架将位于(set-frame-position (selected-frame) 0 0)的另一个框架的右下方。

  
(add-hook 'text-mode-hook (lambda ()
  (set-frame-height (selected-frame) 20)
  (set-frame-width (selected-frame) 80)
  (set-frame-position (selected-frame) 400 400) ))

(defun minimize ()
(interactive)
  (dolist (frame (frame-list))
    (set-frame-height frame 52)
    (set-frame-width frame 50)
    (set-frame-position frame 0 0) ))

(defun maximize ()
(interactive)
  (dolist (frame (frame-list))
    (set-frame-height frame 52)
    (set-frame-width frame 172)
    (set-frame-position frame 0 0) ))