David.Ko

          Follow my heart!
          posts - 100, comments - 11, trackbacks - 0, articles - 0
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          公告

          大家可以通過我的QQ:398956598MSN:wjmjhfs@hotmail.com 和我聯系!!

          相冊

          積分與排名

          • 積分 - 91031
          • 排名 - 636

          最新評論

          Emacs23 配置指南

          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這部分,有空格的中間用短橫線連起來。(就是減號)

          ---------------發個帖子好累阿,其余的部分明天再發了 Smile-------------------------------

          繼續 ===============(還是放到一個帖子里面,便于大家查閱和指點錯誤)===================

          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的強大體現了一點了,其他的東西我自己也不知道,有兄弟熟悉的的話可以幫助完善。呵呵。
          代碼:
          主站蜘蛛池模板: 南陵县| 改则县| 盐源县| 柞水县| 胶南市| 疏勒县| 高邮市| 河池市| 咸阳市| 定日县| 津南区| 丰原市| 华池县| 宁德市| 文登市| 罗源县| 苏尼特右旗| 将乐县| 关岭| 宣武区| 年辖:市辖区| 康马县| 罗田县| 海兴县| 翁源县| 台安县| 岳阳市| 容城县| 兴仁县| 平山县| 临泉县| 拉萨市| 城步| 乌兰浩特市| 汉源县| 深水埗区| 朝阳市| 栖霞市| 南靖县| 友谊县| 平潭县|