Posted on 2007-09-29 12:49
David.Ko 阅读(1330)
评论(0) 编辑 收藏 所属分类:
Ubuntu
从http://forum.ubuntu.org.cn/viewtopic.php?t=18274 拷贝来的
声明: 本人在配置 emacs23 过程中参考了网上众多网友的帖子。因此,很多部分都不是原创,在此就当作一个emacs23解决方案收集帖把!^_^
首先有一个问题要说说,就是在 gnome环境下,使用utf8的local的时候,emacs无法调出scim/fcitx输入法,虽然emacs自带输入法,但是很不好用。据说这个问题是gnome的问题。因为我不用gnome,所以也没有什么解决办法.
不过最新的cvs的代码已经解决了这个问题,可以使用 xft 字体,在 gnome 下面也能够调用输入法,论坛上的 karron 对这个问题很有研究,就不重复了。具体可以查找他的帖子。地址在这里: http://forum.ubuntu.org.cn/viewtopic.php?t=29742
第二要说的就是这个帖子有些日子了,当时的链接由于论坛的 ftp 需要用户名和密码后都不能直接用了,所以目前只给出具体的 url(http方式登录的,ftp方式自己稍作修改即可),可以直接登录下载,关于用户名和密码的问题到下面的网页查看。 http://forum.ubuntu.org.cn/viewtopic.php?t=9685
1.下载源代码
可以用最新的 cvs版的,这样需要从 cvs上下代码了,此时需要做一些准备工作
代码: |
sudo apt-get install ssh cvs(这个是为了在 cvs上下载代码用的)
sudo apt-get install texinfo(这个是为了方便后面的编译man包) |
然后到 cvs服务器上下载最新的代码,先进入自己家目录
代码: |
export CVS_RSH="ssh"
cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/cvsroot/emacs co -r emacs-unicode-2 emacs
|
然后就等待把,一段时间后 cvs会结束,此时会在你的家目录下面建立一个emacs的目录,这个目录下面就是 emacs 的 cvs代码,整个大概需要 80M左右的文件,而且如果速度不是很好的话,会很烦的。
对于心急的朋友,还有一个办法,我几个月前 cvs了一个源码,打包后放到 共享 ftp上了,可以到那里下载。
在目录 "software/文本工具" 下面。需要注意的是这个包还不支持 xft 字体,因此要用 xft 字体的朋友们最好还是 cvs。
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/emacs23.tar.bz2
|
2.编译
先配置一些编译环境把,具体的我记不太请了
代码: |
sudo apt-gt install build-essential
sudo apt-get build-dep emacs21
sudo apt-get install xserver-xorg-dev
sudo apt-get install xorg-dev
sudo apt-get install libncurses5
sudo apt-get install libncurses5-dev
(感谢关注本帖的朋友们提供) |
如果是 cvs的包,那么直接进入 家目录下面的emacs目录,如果是从共享 ftp上 wget 来的,需要先解压
代码: |
tar jxvf emacs23.tar.bz2 |
同样会生成一个emacs 的目录,然后用下面的方法编译
代码: |
./configure --prefix=/usr --with-x-toolkit=gtk
如果这一步报错,很可能是因为没有安装 gtk2的开发包,那就安装吧。( sudo apt-get install libgtk2.0-dev)
同时根据报错的提示来安装其他的dev包。
make bootstrap
make info
sudo make install
|
如果提示缺少什么包,那么就安装下相应的包把。
编译的过程中出现了一些警告,我是没有理会他,呵呵,只要不出现 error,问题就不大。
要是实在不想浪费时间编译也可以直接下载我上传的emacs23的包,直接解压后进入目录 sudo make install 就好了。郁闷,不会打deb包。
昨天刚刚打了一个 deb包,测试了一下,还可以的说。需要的朋友们可以直接下载
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/emacs_23-1_i386.deb |
有朋友反映上面的地址不能下载了,因为这个自从扔进去之后我一直没有管了,而且这个包很古老了,还是在没有 xft 支持的时候的东西,造成的不便先说声抱歉。后面我打了一个带了 xft 支持的包,具体情况看 http://forum.ubuntu.org.cn/viewtopic.php?t=40210
3.初步配置
如果上面的编译安装没有任何问题的话,恭喜你,安装成功了。可以运行一下看看效果!当时的图片已经不在了,就不截图了~
此时是没有~/.emacs 文件的。这个文件是 emacs 的初始化配置文件此时就建立一个把。
先来一些基本的配置吧。首先是中文字体,ubuntu下默认的 emacs 的字体太让人不爽了,我们可以在 .Xresources中设定。
将下面的代码放到你的 ~/.Xresources中,没有这个文件的话就新建一个。
代码: |
Emacs.Font:fontset-chinese
Emacs.Fontset-0:-*-fixed-medium-r-*-*-14-*-*-*-c-*-fontset-chinese,\
chinese-gb2312:-*-wenquanyi bitmap song-*-*-normal--*-*-*-*-*-*-iso10646-1,\
chinese-big5-1:-*-wenquanyi bitmap song-*-*-normal--*-*-*-*-*-*-iso10646-1,\
chinese-big5-2:-*-wenquanyi bitmap song-*-*-normal--*-*-*-*-*-*-iso10646-1
|
说明:我这里用的是文泉驿字体显示中文,用
fixed字体显示英文,这样就可以正常的显示绝大多数的字体了。但是有些繁体还是不正常,比较郁闷的说。另外,如果不想用 wqy
字体,也可以用其他的字体,比如ar pl new sung等等的,只要在
xlsfonts的列表中能够看到,就可以在这里的冒号后面使用,如果对其他的编码有要求的话,也可以指定字体。在emacs 的
Options->mule->describe language
enviroment中可以看到对各个环境以的描述。要设置的话,很简单:把相应的环境放到冒号前面,把字体放到冒号后面就好。
写好后用 xrdb -load ~/.Xresources 然后再启动,看看,字体是不是漂亮多了~
然后可以设置一些其他的东西,需要的话,把下面的代码加入到 ~/.emacs中把(没有就新建)
代码: |
(setq default-major-mode 'text-mode);一打开就起用 text 模式。
(global-font-lock-mode t);语法高亮
(auto-image-file-mode t);打开图片显示功能
(fset 'yes-or-no-p 'y-or-n-p);以 y/n代表 yes/no,可能你觉得不需要,呵呵。
(column-number-mode t);显示列号
(show-paren-mode t);显示括号匹配
(display-time-mode 1);显示时间,格式如下
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(tool-bar-mode nil);去掉那个大大的工具栏
(scroll-bar-mode nil);去掉滚动条,因为可以使用鼠标滚轮了 ^_^
(mouse-avoidance-mode 'animate);光标靠近鼠标指针时,让鼠标指针自动让开,别挡住视线。很好玩阿,这个功能
(setq mouse-yank-at-point t);支持中键粘贴
(transient-mark-mode t);这个忘了,郁闷!
(setq x-select-enable-clipboard t);支持emacs和外部程序的粘贴
(setq frame-title-format "zhan@%b");在标题栏提示你目前在什么位置。你要把zhan改成自己的用户名
(setq default-fill-column 80);默认显示 80列就换行
|
等等等等,还有非常多的配置,就不在这里贴出来了。网上也有很多,都有详细的解释的。各位朋友们可以自己去查找。
4.高级一些的配置
说高级只不过是需要一些elisp包的原因了。这些包在网上都能够找到的。
4.1、首先来改变 emacs的界面把,默认的那个一点特色都没有。这个相关的文件是 color-theme.el,其中包含了70多种颜色样式。已经上传到ftp
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/color-theme.el |
下载回来后放到一个地方,这个目录可以随意,我的放在~/myEmacs下面,如果放在别处的参照设置就好了
把下面的代码加入到 .emacs中
代码: |
(load-file "/home/zhan/myEmacs/color-theme.el")
(color-theme-darkblue);选择 darkblue的配色方案
|
可以打开 emacs看看效果,这时,在 Tools->Color Themes中是可以选择的。这时出现一个
buffer在其中有颜色列表的名字,在相应的 颜色上按鼠标中键就可以预览这种配色方案,如果喜欢的话,就可把这种方案加入到 .emacs中,替换
darkblue这部分,有空格的中间用短横线连起来。(就是减号)
---------------发个帖子好累阿,其余的部分明天再发了 -------------------------------
继续 ===============(还是放到一个帖子里面,便于大家查阅和指点错误)===================
4.2、编译环境的安装
可能不光是 C/C++的环境,这个配置好了有许多的方便之处。主要使用 cedet的插件,这个的官方网站在 http://cedet.sourceforge.net 同时我也上传到了 ftp
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/cedet-1.0beta3b.tar.gz |
安装和配置比较简单了,其中的INSTALL说的很清楚了。
我是解压到 ~/myEmacs
然后 进入目录,用make 编译,其他的选项可以看看INSTALL
然后把如下的部分加入到.emacs中
代码: |
(add-hook 'texinfo-mode-hook (lambda () (require 'sb-texinfo)))
(load-file "/home/zhan/myEmacs/cedet-1.0beta3b/common/cedet.el")
(semantic-load-enable-code-helpers)
(autoload 'speedbar-frame-mode "speedbar" "Popup a speedbar frame" t)
(autoload 'speedbar-get-focus "speedbar" "Jump to speedbar frame" t)
(define-key-after (lookup-key global-map [menu-bar tools])
[speedbar]
'("Speedbar" .
speedbar-frame-mode)
[calendar])
|
这样集成了 speedbar eieio semantic等等的插件在编程的时候很有用。
然后可以下载ecb插件,就是emacs code browser,就是个代码阅览器
直接上官网下载或者到 ftp下载 官网也在cedet的那个地方
同时可以
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/ecb-2.32.zip |
然后直接解压到 ~/myEmacs下面
在 .emacs中加入
代码: |
(add-to-list 'load-path "/home/zhan/myEmacs/ecb-2.32")
(require 'ecb)
|
现在可以看看效果了,哈,可以看到在Tools的下拉菜单中有 start code browser 和speedbar 的选项,看看,很有意思的,可以选择打开一个 c/c++文件等等的看看效果。(值得注意的是必须弄好 cedet之后ecb才能正确的载入)
4.3、emacs的tex插件 auctex
使用auctex可以很方便的在emacs中方便的编辑 tex文档
auctex的网站我忘记了,不好意思。不过我也在 ftp上传了
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/auctex-11.82.tar.gz |
下载回来后解压,然后进入目录 ./configure&&make&&sudo make install就好了
然后在 .emacs中加入
代码: |
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(add-hook 'LaTeX-mode-hook 'LaTeX-install-toolbar)
(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
|
这样,在编辑 tex文件时,就可以使用这个了,要是前面打开了 图片支持的功能,还可以方便的使用那个 preview的功能,这个功能可以直接预览当时所写的一些公式,插入的图片,以及列表等等,而且速度也很快。大家可以试一下。
基本的操作在菜单中都有,就不多说了。
------------------------今天就写到这里吧,明天介绍一下一些有趣的插件以及配置------------------
4.4 tabbar 插件
这个插件比较好用,就是一个标签,这样在编程或者干什么的时候开了多个窗口的话,可以在顶上显示出标签
,而且这个标签还可以自动分组,比较好用。
插件不知道在什么地方弄来的了,好象是从王垠的网站上弄来的。上传到ftp上了
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/tabbar.el |
我下回来后直接放到了 ~/myEmacs中,
把下面两句加到.emacs中
代码: |
(load-file "/home/zhan/myEmacs/tabbar.el")
(require 'tabbar)
(tabbar-mode)
;(global-set-key (kbd "C-=") 'tabbar-backward-group);;这几句的目的是绑定快捷键这样就可以直接用快捷键来操做了。
;(global-set-key (kbd "C--") 'tabbar-forward-group);;不过没有发现有很大用处,所以注释了。
;(global-set-key (kbd "C-0") 'tabbar-backward)
;(global-set-key (kbd "C-9") 'tabbar-forward)
|
现在打开多个文件看看,应该发现有tab出现了。
4.5 ido的配置,这个可以使你在用C-x C-f打开文件的时候在后面有提示,有很多可以配置的选项,懒了,就没有配置,哪位可以补充一下配置方法。我是直接打开了ido的支持,在emacs23中这个是自带的。
代码: |
(require 'ido)
(ido-mode t)
|
4.6配置一个字典服务器,在emacs中直接支持英文查单词!
首先做一点准备工作
代码: |
sudo apt-get install dict-xdict //这个可以在本机上配置一个字典服务器。装好后用 dict hello应该可以看到 hello的解释。^_^
http://ftp.ubuntu.org.cn/software/文本工具/dictionary-1.8.7.tar.gz //下载我上传的插件
|
然后解压 dictionary的那个压缩包。进入目录 make, 然后 cp *.elc /usr/share/emacs/site-lisp(其实这些那个README文件已经写过了)
这样就装好了,下面是配置。
代码: |
(autoload 'dictionary-search "dictionary"
"Ask for a word and search it in all dictionaries" t)
(autoload 'dictionary-match-words "dictionary"
"Ask for a word and search all matching words in the dictionaries" t)
(autoload 'dictionary-lookup-definition "dictionary"
"Unconditionally lookup the word at point." t)
(autoload 'dictionary "dictionary"
"Create a new dictionary buffer" t)
(autoload 'dictionary-mouse-popup-matching-words "dictionary"
"Display entries matching the word at the cursor" t)
(autoload 'dictionary-popup-matching-words "dictionary"
"Display entries matching the word at the point" t)
(autoload 'dictionary-tooltip-mode "dictionary"
"Display tooltips for the current word" t)
(autoload 'global-dictionary-tooltip-mode "dictionary"
"Enable/disable dictionary-tooltip-mode for all buffers" t)
;;==========================上面是readme中写过的东西,没有深究,照抄了,下面是键设定======================
(global-set-key [mouse-3] 'dictionary-mouse-popup-matching-words);;这个是最常用的,呵呵,右键弹出查找的菜单
(global-set-key [(control c)(d)] 'dictionary-lookup-definition)
(global-set-key [(control c)(s)] 'dictionary-search)
(global-set-key [(control c)(m)] 'dictionary-match-words)
(setq dictionary-server "localhost") ;;设定服务器在本地
(global-dictionary-tooltip-mode t)
(dictionary-tooltip-mode t)
;;基本没有什么难度,大家自己研究把。
|
配置好了以后,在emacs中输入一个英文单词,点击右键看看。呵呵,知道怎么用了把~,这个还可以增加词典等等的,只要改一改 dictd的设置,与emacs无关了,需要的话,我可写一点出来,也很简单。
4.7 emms的设置
可能你觉得这个很变态,用emacs来听歌,但是其实是很方便的,可以自带歌词显示的!!
需要 mpg321这个包,如果有 ogg的,还需要 ogg123等等,直接安装把
首先下载我上传的emms的包
代码: |
http://ftp.ubuntu.org.cn/software/文本工具/emms-2.0.tar.gz |
解压到 ~/myEmacs中,然后添加配置
代码: |
(add-to-list 'load-path "~/myEmacs/emms-2.0/")
(require 'emms-setup)
(emms-devel)
(setq emms-player-mplayer-command-name "mplayer"
emms-player-mplayer-parameters '("-slave")
emms-player-list '(emms-player-mpg321
emms-player-ogg123
emms-player-mplayer
emms-player-mplayer-playlist))
(setq emms-player-mpg321-parameters '("-o" "alsa"));;mpg321使用alsa输出
(setq emms-source-file-default-directory "~/Music" ;;歌曲目录
emms-lyrics-dir "~/Music/lyrics" );;歌词目录。
;; keys,键绑定
(global-set-key (kbd "<f3>") 'emms-playlist-mode-go-popup)
(global-set-key (kbd "C-c e t") 'emms-play-directory-tree)
(global-set-key (kbd "<f3>") 'emms-playlist-mode-go-popup)
(global-set-key (kbd "C-c e t") 'emms-play-directory-tree)
(global-set-key (kbd "C-c e x") 'emms-start)
(global-set-key (kbd "C-c e v") 'emms-stop)
(global-set-key (kbd "C-c e n") 'emms-next)
(global-set-key (kbd "C-c e p") 'emms-previous)
(global-set-key (kbd "C-c e o") 'emms-show)
(global-set-key (kbd "C-c e h") 'emms-shuffle)
(global-set-key (kbd "C-c e l") 'emms-play-playlist)
(global-set-key (kbd "C-c e SPC") 'emms-pause)
(global-set-key (kbd "C-c e a") 'emms-add-directory-tree)
(global-set-key (kbd "C-c e r") 'emms-toggle-repeat-track)
(global-set-key (kbd "C-c e R") 'emms-toggle-repeat-playlist)
(global-set-key (kbd "C-c e f") 'emms-play-file)
(global-set-key (kbd "C-c e d") 'emms-play-directory)
(global-set-key (kbd "C-c e m") 'emms-lyrics-toggle-display-on-minibuffer);;显示歌词
(global-set-key (kbd "C-c e M") 'emms-lyrics-toggle-display-on-modeline);;显示歌词
|
使用我就不多说了,比较简单,摸索一下很快就会了。还有歌词的我没有用过,不知道会不会有问题
其实可以看到,其中设置了播放器 mplayer因此播放一些视频文件也是可以的~~
4.8 gnus的配置
先稍微介绍一下 gnus能够干些什么,gnus可以用来收发邮件,可以用来订阅新闻组等等的。新闻组是个很不错的东西,和邮件列表很像的说,不了解的可以看看这个文档。 http://news.yaako.com/data/whatisnewsgroup.pdf 其中说,不懂上新闻组的,就是菜鸟!呵呵,我也弄不清什么的,才上几天的 新闻组,发现一个问题,就是好多客户端都是 outlook什么的。上网翻了一下,找到了一些文档,整理在这里把。
gnus是emacs自带的,功能很是强大,我才刚刚学用,还有很多不清楚的地方,还请看这篇帖子的大哥们能够指点一二。使用
gnus的话,主要是配置,可以把配置写在 .emacs中,不过建议单独写在 .gnus.el中,这样的话不必每次开机都自动启用gnus,在按下
M-x gnus的时候才会启动设置。下面是简单的.gnus.el的设置
代码: |
;;设定个人信息
(setq user-full-name "yourname");;名字
(setq user-mail-address "yourmail@***.com");邮箱地址
;设定nntp服务器,现在国内很全的就是这两个了
(setq gnus-select-method '(nntp "south.newsfan.net"));全中文的新帆新闻组,这个是电信的服务器,还有一个北方的服务器 news.newsfan.net.
(add-to-list 'gnus-secondary-select-methods '(nntp "news.yaako.com"));这个服务器上有很多中文的组,具体的上面的pdf有说明。
(gnus-agentize);打开代理,允许离线阅读
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode) ;使用话题模式,更适合阅读
(setq gnus-summary-show-article-charset-alist
'((1 . cn-gb-2312) (2 . big5) (3 . gbk) (4 . utf-8))) ;设定解码顺序
(eval-after-load "mm-decode"
'(progn
(add-to-list 'mm-discouraged-alternatives "text/html")
(add-to-list 'mm-discouraged-alternatives "text/richtext")));阅读的时候把html的头部什么的去掉,只要text部分
;;========================邮件组的设置已经可以了,下面配置收发信件========================================
;(setq pop3-leave-mail-on-server
t);;这一句是说不要把服务器上的信件删除,但是这样每次把没有删除的信件又取回来一次,很烦,所以我去掉了,那位高手知道如何不删除信件又不重复取信
的方法,麻烦告诉我一声,谢谢
(setq mail-sources
'((pop :server "pop3服务器"
:user "用户名"
:port "pop3"
:password "密码")))
(setq gnus-secondary-select-methods '((nnfolder "")));使用nnfolder的方式存放邮件,这个是最常用的方式
;;===================配置 smtp服务其器发送信件============================
(setq smtpmail-auth-credentials
'(("smtp服务器"
25
"用户名"
"密码")));;这个用户名和密码要和 smtp服务器对应
(setq smtpmail-default-smtp-server "smtp服务器")
(setq smtpmail-smtp-server "smtp服务器")
(setq message-send-mail-function 'smtpmail-send-it)
这里有个对应gmail的配置,据说gmail比较特殊,pop3需要ssl, smtp也很怪。相应的设置在这里:
;; Pop3
;;(setq mail-sources
;; '((pop :server "pop.gmail.com"
;; :port 995
;; :user "email.account"
;; :connection ssl
;; :leave t)))
;; Smtp
;;(setq message-send-mail-function 'smtpmail-send-it)
;;(setq smtpmail-default-smtp-server "smtp.gmail.com")
;;(setq smtpmail-smtp-service 587)
;;(setq smtpmail-starttls-credentials
;; '(("smtp.gmail.com"
;; 587
;; nil
;; nil)))
;;(setq smtpmail-auth-credentials
;; '(("smtp.gmail.com"
;; 587
;; "email.account"
;; nil)))
|
这样就可以使用 gnus来泡新闻组和收发邮件了,现在邮件应该在mail.misc这个组里面,如果没有可以新建 。
具体使用和详细的配置我是参考的 这里的文章; http://www.emacs.cn/Gnus/Gnus 还有 http://learn.tsinghua.edu.cn:8080/2005210329//document-backup/gnus.el.html 对gnus有兴趣的可以去看看。
---------------------------
就写到这里把,已经把emacs的强大体现了一点了,其他的东西我自己也不知道,有兄弟熟悉的的话可以帮助完善。呵呵。
代码: