当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]emacs23 的字体设置和emacs初始窗口位置的小经验
帖子发表于 : 2008-01-07 14:17 

注册: 2007-12-04 23:24
帖子: 89
送出感谢: 0 次
接收感谢: 0 次
我自己的blog里已经贴了

http://blog.sina.com.cn/s/blog_4ffe840101008ap5.html


在ubuntu里通过Alexandre Vassalotti维护的snapshot版本的源,安装了emacs23,很顺利,而且默认安装好了以后就可以使用xft的字体系统,很方便。

源在这里
Ubuntu 6.10 “Edgy Eft”
deb http://ppa.launchpad.net/avassalotti/ubuntu edgy main
deb-src http://ppa.launchpad.net/avassalotti/ubuntu edgy main

Ubuntu 7.04 “Feisty Fawn”
deb http://ppa.launchpad.net/avassalotti/ubuntu feisty main
deb-src http://ppa.launchpad.net/avassalotti/ubuntu feisty main

Ubuntu “Gutsy Gibbon”
deb http://ppa.launchpad.net/avassalotti/ubuntu gutsy main
deb-src http://ppa.launchpad.net/avassalotti/ubuntu gutsy main

注意:emacs-snapshot-gtk这个包已经不存在了,因为gtk的已经是上游的
默认版本了。所以,直接安装emacs-snapshot和emacs-snapshot-el(如果需要)
就行了(耶林:此句是转的)

emacs23 的字体设置和emacs初始窗口位置的小经验--之所以起这个题目,是因为我在折腾emacs字体的过程中发现,如果你成功的更改了emacs的字体后,会有个很奇怪的问题--emacs每次启动后,程序的窗口都有一部分会在屏幕可显示区域之外,每次都要手动改变窗口大小才能正常使用,麻烦。



我上网搜了一下,不少人也有这个问题,仔细看看终于找到了解决方案。



介绍如下:



原因:


* emacs的字体设置

由于 emacs 是个支持多语言的程序,它支持很多种字符集,而一种字体一般只覆
盖一个或几个字符集,因此只用一种字体是无法显示 emacs 支持的所有文字的。
因此在emacs中需要设置 fontset,也就是多种字体的集合,或者叫做字体集。

如果我们不指定 fontset, 那么 emacs 会使用默认的 fontset-default 来显示
字体。如果你觉得这种字体不好看,就需要自己定义 fontset。定义 fontset 有
两种方式,一种是在 ~/.emacs 中使用 create-fontset-from-fontset-spec 函
数,令一种是在 ~/.Xdefaults 中定义资源。我们分别介绍这两种方法。
内容略。网上一大把。



上述两种方法都可以实现同样的效果。但是有一点细微的差别,采用第一种方法时,fontset 的定义是写在 ~/.emacs 中的,而 emacs 启动过程中,是先建立了第一个窗口,然后才读取 ~/.emacs 的,建立第一个窗口时,因为还没有读到我们定义的 fontset, 因此它会采用 fontset-default 创建第一个窗口,当读到我们定义的 fontset 时,再进行调整,如果我们定义的 fontset 与默认的fontset-default 字体差别比较大,就会看到emacs进行了一个调整窗口大小的动作,这个动作延缓了 emacs 的启动过程。(这就是造成启动程序时窗口都有一部分会在屏幕可显示区域之外的原因,也就是说在emacs加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读取的)而采用第二种方法则不会出现这个问题,因此推荐使用第二种方法。


另一篇相关文章:

改变emacs启动窗口大小的两种方法 by aofanliguo

很多时候,emacs并不是按照你的想像去启动的.你会发现它可能启动后占据了两个或更多窗口.或者,你喜欢全屏工作方式,但每次启动后最大化总是一件很麻烦的事情.在日常应用中,我总结了以下两种方法,
第一种方法:
在你的 ~/.Xdefaults 中增加下面这行
Emacs.geometry: 80x30
然后运行 xrdb ~/.Xdefaults
这样emacs的启动窗口就被设为80列x30行的大小
你可以按照自己的要求设置
Emacs.geometry: WIDTHxHEIGHT+XOFF+YOFF
其中WIDTH, HEIGHT分别表示窗口的宽度和高度,可选的XOFF和YOFF表示启动窗口的左上角座标。
例如:
Emacs.geometry: 80x30+20+10
表示令窗口大小为80x30,启动后左上角处于(20,10)处,很简单,不是么

第二种方法:
在配置文件中配置,配置文件通常在你的用户目录,为.emacsrc.
加入下面一行:
(setq default-frame-alist
'((height . 35) (width . 100) (menu-bar-lines . 20) (tool-bar-lines . 0)))
由于后一种是写在配置文件中的,所以相对来说比较方便.比较方便



================================================
耶林的分析和结论:

根据我上面的参考和分析,在emacs加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读取的,但是在~/.Xdefaults里面设置字体的方式比在~/.emacs里面的要麻烦,本着能省就省,能躺下绝不坐着的懒人原则--字体要在~/.emacs里设置比较简单,而对启动窗口的设置,则需要在~/.Xdefaults里面设置才会有预期效果。

原因?且看我慢慢摆来:

如果在~/.emacs 里面设置启动窗口,你会发现尽管窗口会显示成你所设置的大小,但位置仍然不对,哪怕是你设置了屏幕0,0的坐标emacs启动后也不会在屏幕的边上角,盖是因为emacs在此之前已经通过读取默认设置,确定了窗口的初始屏幕位置,然后再读你的.emacs文件里的窗口位置和大小,此时,大小参数起作用了,而位置的参数仍然是在默认基础之上起作用而已。比如,如果默认的emacs是10,10的窗口坐标,你如果在.emacs里面设置了窗口坐标是15, 15,那么真正的窗口坐标则会是:10+15=25------> 25,25,而非你想要的15,15。


于是,那么,so,这样,窗口仍然会出桌面边界。再唠叨一遍我的分析:emacs在加载时,~/.Xdefaults文件是比~/.emacs预先被emacs读取的,但emacs会根据~/.Xdefaults文件中的参数调整窗口位置并取代其默认的启动位置(而非像在.emacs里设置位置那样的是坐标相加),所以我们要想定义emacs的窗口启动位置,在~/.Xdefaults里面设置才是比较好的解决方法--emacs最基础的那个默认设置在哪里,我目前还不知道,慢慢学习吧。

综上所述,对于emacs 23(我只试过23 snapshot版本)来说,调整字体最便捷的方法莫如在~/.emacs里,调整程序窗口启动时在屏幕上的位置,则要在~/.Xdefaults里。

我的emacs装好后,home目录里没有这两个文件,是我手动创建的,依网上的资料,设置如仪,效果不错,xft字体系统,功德无量。
--linux,大有进步哦。



我自己的这两个文件的内容如下:


.Xdefaults
Emacs.geometry: 100x35+0+0

.emacs
(set-default-font "Bitstream Vera Sans Mono-10")

;; 设置中文字体

(set-fontset-font "fontset-default"

'gb18030 '("WenQuanYi Bitmap Song" . "unicode-bmp"))


简单吧。

效果,在我的相册里,真不错。


附件:
screenshot-2008-01-07-13-03-13.png
screenshot-2008-01-07-13-03-13.png [ 96.24 KiB | 被浏览 2817 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-01-10 2:30 

注册: 2007-05-16 14:28
帖子: 19
送出感谢: 0 次
接收感谢: 0 次
非常感谢
看了很多安装emacs23的帖子,都很麻烦,就你的简单明了。
一个好源解决了很多问题啊


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-02-15 16:17 

注册: 2006-04-05 23:28
帖子: 48
送出感谢: 4
接收感谢: 0 次
真是,看了那么多篇资料,就这个真正看懂了。 :lol: :lol:


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [原创]emacs23 的字体设置和emacs初始窗口位置的小经验
帖子发表于 : 2012-05-05 23:46 
头像

注册: 2010-05-07 18:28
帖子: 82
送出感谢: 0 次
接收感谢: 1
没发现有~/.Xdefaults。 自己建了 似乎也不起作用阿


_________________
dropbox注册链接
linux下支持多文件夹同步的网盘
erlang论坛


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译