一月 19, 2009

Customization tips for emacs daemon

使用Emacs daemon使得配置变得更加复杂了,因为在启动daemon的时候,没有任何X Frame生成,某些对X Frame的定制代码可能出错,比如:

(setq x-select-enable-clipboard t)

这段代码一定要在X Frame生成之后运行,解决方法是把定制添加到after-make-frame-functions这个hook里面。

(add-hook 'after-make-frame-functions
          (lambda (frame)
            (with-selected-frame frame
              (when window-system
                (scroll-bar-mode -1)
                (setq x-select-enable-clipboard t)))))

2 条评论:

时间 12:21 下午 , Blogger Anson 说...

发现如果这样配置以后,正常运行emacs有一些配置不会被执行了, 所以我就自己加了一个这样的代码,你看看没问题给大家分享一下把。

(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(when window-system
(config-not-in-tty-mode)
))))


+(if (equal (daemonp) nil)
+ ;; 非Daemon模式
+ (config-not-in-tty-mode))

还有一个问题,就是我在emacsclient -t 的时候报错
k@ubuntu:~$ emacsclient -t .emacs
*ERROR*: Cannot open termcap database file

怎么解决呢?

 
时间 9:38 上午 , Blogger netcasper 说...

不好意思,我偷懒了,我使用的完整配置是

(if (and (fboundp 'daemonp) (daemonp))
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(set-fontset-font "fontset-default"
'chinese-gbk "AR PL UKai CN 20"))))
(set-fontset-font "fontset-default" 'chinese-gbk "AR PL UKai CN 20"))

和你的基本一样。

emacsclient启动报错,我想你是自己编译的emacs吧,应该是系统里缺少ncurses的开发包,不同的系统可能包的名字不一样。

 

发表评论

指向此帖子的链接:

创建链接

<< 主页