Posted on 2007-09-29 12:49
David.Ko 閱讀(1342)
評論(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的強大體現了一點了,其他的東西我自己也不知道,有兄弟熟悉的的話可以幫助完善。呵呵。
代碼: