设置EMACS 23 在启动时候自动最大化

原文地址:http://zhaojunde1976.blog.163.com/blog/static/121998668201041131130734/

在Windows XP下面,看了网上的一些帖子,自己也试了一下,发现下面的方法比较好用:

直接在启动文件(.emacs 或者 site-start.el)的最下面增加一条语句:

(run-with-idle-timer 1 nil 'w32-send-sys-command 61488)

其中函数 (w32-send-sys-command 61488) 是向当前emacs的窗口发送最大化的命令,这个函数本身没有问题,可以实现当前emacs窗口最大化的功能,但是如果在启动文件里面直接调用这个函数,在启动的时候运行的其他程序(譬如CEDET, ECB)会把最大化的窗口又修改回来,我的情况就是如此,每次运行emacs总是看到在启动的过程窗口被最大化,但是到最后又变回来了。没有办法,去elisp里面找了一下,发现这么一个函数:run-with-idle-timer, 这个函数的功能是等 emacs 闲下来的时候在运行某一个函数,原型如下:

 -- Command: run-with-idle-timer secs repeat function &rest args

第一个参数是空闲多长时间之后调用指定的函数,第二个参数是否重复调用,一般设为 t 或者 nil,t 意味着每隔一段时间重复调用指定的函数,nil 表示只调用一次;第三个参数是函数的名称,后面的参数是被调用函数自己的参数,上面的语句的意思就是:

等emacs启动全部完成之后,空闲1秒之后调用 (w32-send-sys-command 61488)一次。这样,就不存在上面的提到的最大化之后又窗口大小又被其他代码改变的问题。

在 Linux ,Ubuntu,以及使用 X Server 的系统,使用下面的方式最大化窗口:

(defun my-max-window()
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
)
(run-with-idle-timer 1 nil 'my-max-window)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值