• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            emacs23的使用


            ;============================ 語言環境字符集設置 =================================
            ;;這一部份主要用在linux 環境下,windows下沒什么作用
            ;; (set-language-environment 'Chinese-GB)
            ;; (set-keyboard-coding-system 'utf-8)
            ;; (set-clipboard-coding-system 'utf-8)
            ;; (set-terminal-coding-system 'utf-8)
            ;; (set-buffer-file-coding-system 'utf-8)
            ;; (set-default-coding-systems 'utf-8)
            ;; (set-selection-coding-system 'utf-8)
            ;; (modify-coding-system-alist 'process "*" 'utf-8)
            ;; (setq default-process-coding-system '(utf-8 . utf-8))
            ;; (setq-default pathname-coding-system 'utf-8)
            ;; (set-file-name-coding-system 'utf-8)
            ;; (setq ansi-color-for-comint-mode t) ;;處理shell-mode亂碼,好像沒作用
            ;=========================== 語言環境字符集設置結束 ===============================

            ;============================ MS Windows環境下字體設置 ===========================
            (setq default-frame-alist
            (append
              '((font . "fontset-chinese")) default-frame-alist))


            (create-fontset-from-fontset-spec
              "-outline-Courier New-normal-r-normal-normal-13-97-96-96-c-*-fontset-chinese")
            (set-fontset-font
             "fontset-default" nil
             "-outline-新宋體-normal-r-normal-normal-14-*-96-96-c-*-iso10646-1" nil 'prepend)
            (set-fontset-font
             "fontset-chinese" 'kana
             "-outline-新宋體-normal-r-normal-normal-14-*-96-96-c-*-iso10646-1" nil 'prepend)
            (set-fontset-font
             "fontset-chinese" 'han
             "-outline-新宋體-normal-r-normal-normal-14-*-96-96-c-*-iso10646-1" nil 'prepend)
            (set-fontset-font
             "fontset-chinese" 'cjk-misc
             "-outline-新宋體-normal-r-normal-normal-14-*-96-96-c-*-iso10646-1" nil 'prepend)
            (set-fontset-font
             "fontset-chinese" 'symbol
             "-outline-新宋體-normal-r-normal-normal-14-*-96-96-c-*-iso10646-1" nil 'prepend)
            (set-default-font "fontset-chinese")

            ;===========================MS Windows環境下字體設置結束 =========================

             

            ;============================ Linux環境下字體設置 =================================

            ;; (create-fontset-from-fontset-spec
            ;; "-*-courier-medium-r-normal-*-14-*-*-*-*-*-fontset-courier")
            ;; (set-default-font "fontset-courier")
            ;; (setq default-frame-alist
            ;; (append
            ;; '((font . "fontset-courier")) default-frame-alist))

            ;; (set-fontset-font
            ;; "fontset-default" nil
            ;; "-*-simsun-*-*-*-*-14-*-*-*-*-*-gb2312.1980-*" nil 'prepend)
            ;; (set-fontset-font
            ;; "fontset-courier" 'kana
            ;; "-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0" nil 'prepend)
            ;; (set-fontset-font
            ;; "fontset-courier" 'han
            ;; "-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0" nil 'prepend)
            ;; (set-fontset-font
            ;; "fontset-courier" 'cjk-misc
            ;; "-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0" nil 'prepend)

            ;============================ Linux環境下字體設置結束 ==============================


            ;;;;;;;;;;;;;;;;;;;;語言環境字體設置結束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


            ;;解決中英文混排不能正確fill的問題,好像沒什么用
            ;; (put-charset-property 'chinese-cns11643-5 'nospace-between-words t)
            ;; (put-charset-property 'chinese-cns11643-6 'nospace-between-words t)
            ;; (put-charset-property 'chinese-cns11643-7 'nospace-between-words t)


            ;;;;;;;;;;;;;;;;;;;;;;;;;;;  設置窗口界面 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

            (set-foreground-color "grey")
            (set-background-color "black")
            (set-cursor-color "gold1")
            (set-mouse-color "gold1")

            (set-scroll-bar-mode nil)
            ;;取消滾動欄

            ;;(customize-set-variable 'scroll-bar-mode 'right))
            ;;設置滾動欄在窗口右側,而默認是在左側

            (tool-bar-mode nil)
            ;;取消工具欄

            (setq default-frame-alist
                         '((vertical-scroll-bars) 
                           (top . 25)
                           (left . 45)                              
                           (width . 110)
                           (height . 40)          
                           (background-color . "black")
                           (foreground-color . "grey")
                           (cursor-color     . "gold1")
                           (mouse-color      . "gold1")
                           (tool-bar-lines . 0)
                           (menu-bar-lines . 1)
                           (right-fringe)
                           (left-fringe)))

                          
            ;; 設置另外一些顏色:語法高亮顯示的背景和主題,區域選擇的背景和主題,二次選擇的背景和選擇
            (set-face-foreground 'highlight "white")
            (set-face-background 'highlight "blue")
            (set-face-foreground 'region "cyan")
            (set-face-background 'region "blue")
            (set-face-foreground 'secondary-selection "skyblue")
            (set-face-background 'secondary-selection "darkblue")

             

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;  設置界面結束  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

             

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;   顯示時間設置   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            (display-time-mode 1);;啟用時間顯示設置,在minibuffer上面的那個杠上
            (setq display-time-24hr-format t);;時間使用24小時制
            (setq display-time-day-and-date t);;時間顯示包括日期和具體時間
            (setq display-time-use-mail-icon t);;時間欄旁邊啟用郵件設置
            (setq display-time-interval 10);;時間的變化頻率,單位多少來著?
             
            ;;;;;;;;;;;;;;;;;;;;;;;;;;;  顯示時間設置結束  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

             


            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定制操作習慣;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

            ;;設置打開文件的缺省路徑
            (setq default-directory "/")

            ;;ido的配置,這個可以使你在用C-x C-f打開文件的時候在后面有提示;
            ;;這里是直接打開了ido的支持,在emacs23中這個是自帶的.
            (ido-mode t)

            (setq visible-bell t)
            ;;關閉煩人的出錯時的提示聲
            (setq inhibit-startup-message t)
            ;;關閉emacs啟動時的畫面

            (setq gnus-inhibit-startup-message t)
            ;;關閉gnus啟動時的畫面

            (fset 'yes-or-no-p 'y-or-n-p)
            ;; 改變 Emacs 固執的要你回答 yes 的行為。按 y 或空格鍵表示 yes,n 表示 no。

            (setq font-lock-maximum-decoration t)
            (setq font-lock-global-modes '(not shell-mode text-mode))
            (setq font-lock-verbose t)
            (setq font-lock-maximum-size '((t . 1048576) (vm-mode . 5250000)))
            ;; 語法高亮。除 shell-mode 和 text-mode 之外的模式中使用語法高亮。

            (setq column-number-mode t)
            (setq line-number-mode t)
            ;;顯示行列號

            (setq mouse-yank-at-point t)
            ;;不要在鼠標點擊的那個地方插入剪貼板內容。我不喜歡那樣,經常把我的文檔搞的一團糟。我覺得先用光標定位,然后鼠標中鍵點擊要好的多。不管你的光標在文檔的那個位置,或是在 minibuffer,鼠標中鍵一點擊,X selection 的內容就被插入到那個位置。

            (setq kill-ring-max 200)
            ;;設置粘貼緩沖條目數量.用一個很大的kill ring(最多的記錄個數). 這樣防止我不小心刪掉重要的東西

            (setq-default auto-fill-function 'do-auto-fill)
             ; Autofill in all modes;;
            (setq default-fill-column 120)
            ;;把 fill-column 設為 60. 這樣的文字更好讀

            (setq-default indent-tabs-mode nil)
            (setq default-tab-width 8)
            (setq tab-stop-list ())
            ;;不用 TAB 字符來indent, 這會引起很多奇怪的錯誤。編輯 Makefile 的時候也不用擔心,因為 makefile-mode 會把 TAB 鍵設置成真正的 TAB 字符,并且加亮顯示的。

            (setq sentence-end "\\([。!?]\\|……\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*")
            (setq sentence-end-double-space nil)
            ;;設置 sentence-end 可以識別中文標點。不用在 fill 時在句號后插入兩個空格。

            (setq enable-recursive-minibuffers t)
            ;;可以遞歸的使用 minibuffer

            (setq scroll-margin 3  scroll-conservatively 10000)
            ;;防止頁面滾動時跳動, scroll-margin 3 可以在靠近屏幕邊沿3行時就開始滾動,可以很好的看到上下文。

            (setq default-major-mode 'text-mode)
            (add-hook 'text-mode-hook 'turn-on-auto-fill)
            ;;設置缺省主模式是text,,并進入auto-fill次模式.而不是基本模式fundamental-mode

            (setq show-paren-mode t) ;;打開括號匹配顯示模式
            (setq show-paren-style 'parenthesis)
            ;;括號匹配時可以高亮顯示另外一邊的括號,但光標不會煩人的跳到另一個括號處。

            (setq mouse-avoidance-mode 'animate)
            ;;光標靠近鼠標指針時,讓鼠標指針自動讓開,別擋住視線。

            (setq frame-title-format "emacs@%b")
            ;;在標題欄顯示buffer的名字,而不是 emacs@wangyin.com 這樣沒用的提示。

            (setq uniquify-buffer-name-style 'forward);;好像沒起作用
            ;; 當有兩個文件名相同的緩沖時,使用前綴的目錄名做 buffer 名字,不用原來的foobar<?> 形式。

            (setq auto-image-file-mode t)
            ;;讓 Emacs 可以直接打開和顯示圖片。

            ;(auto-compression-mode 1)  
            ;打開壓縮文件時自動解壓縮。

            (setq global-font-lock-mode t)
            ;;進行語法加亮。

            (setq-default kill-whole-line t)
            ;; 在行首 C-k 時,同時刪除該行。

            (add-hook 'comint-output-filter-functions
                  'comint-watch-for-password-prompt)
            ;;當你在shell、telnet、w3m等模式下時,必然碰到過要輸入密碼的情況,此時加密顯出你的密碼

            ;; (setq version-control t);;啟用版本控制,即可以備份多次
            ;; (setq kept-old-versions 2);;備份最原始的版本兩次,及第一次編輯前的文檔,和第二次編輯前的文檔
            ;; (setq kept-new-versions 1);;備份最新的版本1次,理解同上
            ;; (setq delete-old-versions t);;刪掉不屬于以上3中版本的版本
            ;; (setq backup-directory-alist '(("." . "~/backups")));;設置備份文件的路徑
            ;; (setq backup-by-copying t);;備份設置方法,直接拷貝
            ;; Emacs 中,改變文件時,默認都會產生備份文件(以 ~ 結尾的文件)。可以完全去掉
            ;; (并不可取),也可以制定備份的方式。這里采用的是,把所有的文件備份都放在一
            ;; 個固定的地方("~/backups")。對于每個備份文件,保留最原始的兩個版本和最新的
            ;; 1個版本。并且備份的時候,備份文件是復本,而不是原件。

            (setq make-backup-files nil)
            ;; 設定不產生備份文件

            (setq auto-save-mode nil)
            ;;自動保存模式

            (setq-default make-backup-files nil)
            ;; 不生成臨時文件

            (put 'scroll-left 'disabled nil)     ;允許屏幕左移
            (put 'scroll-right 'disabled nil)    ;允許屏幕右移
            (put 'set-goal-column 'disabled nil)
            (put 'narrow-to-region 'disabled nil)
            (put 'upcase-region 'disabled nil)
            (put 'downcase-region 'disabled nil)
            (put 'LaTeX-hide-environment 'disabled nil)
            ;;把這些缺省禁用的功能打開。

            ;;允許emacs和外部其他程序的粘貼
            (setq x-select-enable-clipboard t)

            (setq mouse-yank-at-point t)
            ;;使用鼠標中鍵可以粘貼

            (setq user-full-name "王光平")
            (setq user-mail-address "getmails@163.com")
            ;;設置有用的個人信息,這在很多地方有用。

            (setq require-final-newline t)
            ;; 自動的在文件末增加一新行

            (setq-default transient-mark-mode t)
            ;;Non-nil if Transient-Mark mode is enabled.

            (setq track-eol t)
            ;; 當光標在行尾上下移動的時候,始終保持在行尾。

            (setq Man-notify-method 'pushy)
            ;; 當瀏覽 man page 時,直接跳轉到 man buffer。

            (setq next-line-add-newlines nil)
            ;;Emacs 21 中已經是缺省設置。按 C-n 或向下鍵時不添加新行。
             
            (global-set-key [home] 'beginning-of-buffer)
            (global-set-key [end] 'end-of-buffer)
            ;;設置home鍵指向buffer開頭,end鍵指向buffer結尾


            (global-set-key (kbd "C-,") 'scroll-left)
            ;; "C-,"設為屏幕左移命令
            (global-set-key (kbd "C-.") 'scroll-right)
            ;; "C-."設為屏幕右移命令

            (global-set-key [f1] 'manual-entry)
            (global-set-key [C-f1] 'info )

            (global-set-key [f3] 'repeat-complex-command)

            (global-set-key [f4] 'other-window)
            ;; 跳轉到 Emacs 的另一個buffer窗口

            (defun du-onekey-compile ()
              "Save buffers and start compile"
              (interactive)
              (save-some-buffers t)
              (switch-to-buffer-other-window "*compilation*")
              (compile compile-command))
              (global-set-key [C-f5] 'compile)
              (global-set-key [f5] 'du-onekey-compile)
            ;;  C-f5, 設置編譯命令; f5, 保存所有文件然后編譯當前窗口文件

            (global-set-key [f6] 'gdb)            
            ;;F6設置為在Emacs中調用gdb

            (global-set-key [C-f7] 'previous-error)
            (global-set-key [f7] 'next-error)

            (defun open-eshell-other-buffer ()
              "Open eshell in other buffer"
              (interactive)
              (split-window-vertically)
              (eshell))
            (global-set-key [(f8)] 'open-eshell-other-buffer)
            (global-set-key [C-f8] 'eshell)
            ;;目的是開一個shell的小buffer,用于更方便地測試程序(也就是運行程序了),我經常會用到。
            ;;f8就是另開一個buffer然后打開shell,C-f8則是在當前的buffer打開shell

            (setq speedbar-show-unknown-files t);;可以顯示所有目錄以及文件
            (setq dframe-update-speed nil);;不自動刷新,手動 g 刷新
            (setq speedbar-update-flag nil)
            (setq speedbar-use-images nil);;不使用 image 的方式
            (setq speedbar-verbosity-level 0)

            (global-set-key [f9] 'speedbar)
            ;;設置f9調用speedbar命令
            ;;使用 n 和 p 可以上下移動,
            ;; + 展開目錄或文件進行瀏覽,- 收縮,RET 訪問目錄或文件,g 更新 speedbar。

            (setq dired-recursive-copies 'top)
            (setq dired-recursive-deletes 'top)
            ;;讓 dired 可以遞歸的拷貝和刪除目錄。
            (global-set-key [C-f9] 'dired)
            ;;設置[C-f9]為調用dired命令

            (global-set-key [f10] 'undo)            
            ;;設置F10為撤銷

            (global-set-key [f11] 'calendar)
            ;;設置F11快捷鍵指定Emacs 的日歷系統

            (global-set-key [f12] 'list-bookmarks)
            ;;設置F12 快速察看日程安排

            (setq time-stamp-active t)
            (setq time-stamp-warn-inactive t)
            (setq time-stamp-format "%:y-%02m-%02d %3a %02H:%02M:%02S chunyu")
            ;; 設置時間戳,標識出最后一次保存文件的時間。

            (global-set-key (kbd "M-g") 'goto-line)
            ;;設置M-g為goto-line

            (global-set-key (kbd "C-SPC") 'nil)
            ;;取消control+space鍵設為mark

            (global-set-key (kbd "M-<SPC>") 'set-mark-command)
            ;;這樣 我就不用按 C-@ 來 setmark 了, C-@ 很不好按。

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定制操作習慣結束;;;;;;;;;;;;;;;;;;;;;;;;;;;;


            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  設置日歷 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;;設置日歷的一些顏色
            (setq calendar-load-hook
            '(lambda ()
            (set-face-foreground 'diary-face "skyblue")
            (set-face-background 'holiday-face "slate blue")
            (set-face-foreground 'holiday-face "white")))

            ;;設置我所在地方的經緯度,calendar里有個功能是日月食的預測,和你的經緯度相聯系的。
            ;; 讓emacs能計算日出日落的時間,在 calendar 上用 S 即可看到
            (setq calendar-latitude +39.54)
            (setq calendar-longitude +116.28)
            (setq calendar-location-name "北京")

            ;; 設置陰歷顯示,在 calendar 上用 pC 顯示陰歷
            (setq chinese-calendar-celestial-stem
              ["甲" "乙" "丙" "丁" "戊" "己" "庚" "辛" "壬" "癸"])
            (setq chinese-calendar-terrestrial-branch
              ["子" "丑" "寅" "卯" "辰" "巳" "戊" "未" "申" "酉" "戌" "亥"])

            ;; 設置 calendar 的顯示
            (setq calendar-remove-frame-by-deleting t)
            (setq calendar-week-start-day 1)            ; 設置星期一為每周的第一天
            (setq mark-diary-entries-in-calendar t)     ; 標記calendar上有diary的日期
            (setq mark-holidays-in-calendar nil)        ; 為了突出有diary的日期,calendar上不標記節日
            (setq view-calendar-holidays-initially nil) ; 打開calendar的時候不顯示一堆節日

            ;; 去掉不關心的節日,設定自己在意的節日,在 calendar 上用 h 顯示節日
            (setq christian-holidays nil)
            (setq hebrew-holidays nil)
            (setq islamic-holidays nil)
            (setq solar-holidays nil)
            (setq general-holidays '((holiday-fixed 1 1 "元旦")
                                     (holiday-fixed 2 14 "情人節")
                                     (holiday-fixed 3 14 "白色情人節")
                                     (holiday-fixed 4 1 "愚人節")
                                     (holiday-fixed 5 1 "勞動節")
                                     (holiday-float 5 0 2 "母親節")
                                     (holiday-fixed 6 1 "兒童節")
                                     (holiday-float 6 0 3 "父親節")
                                     (holiday-fixed 7 1 "建黨節")
                                     (holiday-fixed 8 1 "建軍節")
                                     (holiday-fixed 9 10 "教師節")
                                     (holiday-fixed 10 1 "國慶節")
                                     (holiday-fixed 12 25 "圣誕節")))

            ;;Calendar模式支持各種方式來更改當前日期
            ;;(這里的“前”是指還沒有到來的那一天,“后”是指已經過去的日子)
            ;;  q      退出calendar模式
            ;; C-f     讓當前日期向前一天
            ;; C-b     讓當前日期向后一天
            ;; C-n     讓當前日期向前一周
            ;; C-p     讓當前日期向后一周
            ;; M-}     讓當前日期向前一個月
            ;; M-{     讓當前日期向后一個月
            ;; C-x ]   讓當前日期向前一年
            ;; C-x [   讓當前日期向后一年
            ;; C-a     移動到當前周的第一天
            ;; C-e     移動到當前周的最后一天
            ;; M-a     移動到當前月的第一天
            ;; M-e     多動到當前月的最后一天
            ;; M-<     移動到當前年的第一天
            ;; M->     移動到當前年的最后一天

            ;;Calendar模式支持移動多種移動到特珠日期的方式
            ;; g d     移動到一個特別的日期
            ;;  o      使某個特殊的月分作為中間的月分
            ;;  .      移動到當天的日期
            ;; p d     顯示某一天在一年中的位置,也顯示本年度還有多少天。
            ;; C-c C-l 刷新Calendar窗口

            ;; Calendar支持生成LATEX代碼。
            ;; t m     按月生成日歷
            ;; t M     按月生成一個美化的日歷
            ;; t d     按當天日期生成一個當天日歷
            ;; t w 1   在一頁上生成這個周的日歷
            ;; t w 2   在兩頁上生成這個周的日歷
            ;; t w 3   生成一個ISO-SYTLE風格的當前周日歷
            ;; t w 4   生成一個從周一開始的當前周日歷
            ;; t y     生成當前年的日歷

            ;;EMACS Calendar支持配置節日:
            ;; h       顯示當前的節日
            ;; x       定義當天為某個節日
            ;; u       取消當天已被定義的節日
            ;; e       顯示所有這前后共三個月的節日。
            ;; M-x holiday  在另外的窗口的顯示這前后三個月的節日。


            ;; 另外,還有一些特殊的,有意思的命令:
            ;; S       顯示當天的日出日落時間(是大寫的S)
            ;; p C     顯示農歷可以使用
            ;; g C     使用農歷移動日期可以使用


            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  日歷設置結束 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

             

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  設置日記 ;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;

            (setq diary-file "~/diary");; 默認的日記文件
            (setq diary-mail-addr "getmails@163.com")
            (add-hook 'diary-hook 'appt-make-list)
            ;;當你創建了一個'~/diary'文件,你就可以使用calendar去查看里面的內容。你可以查看當天的事件,相關命令如下 :
            ;;  d     顯示被選中的日期的所有事件
            ;;  s     顯示所有事件,包括過期的,未到期的等等

            ;; 創建一個事件的樣例:
            ;; 02/11/1989
            ;;     Bill B. visits Princeton today
            ;;     2pm Cognitive Studies Committee meeting
            ;;     2:30-5:30 Liz at Lawrenceville
            ;;     4:00pm Dentist appt
            ;;     7:30pm Dinner at George's
            ;;     8:00-10:00pm concert

            ;; 創建事件的命令:
            ;; i d   為當天日期添加一個事件
            ;; i w   為當天周創建一個周事件
            ;; i m   為當前月創建一個月事件
            ;; i y   為當前年創建一個年事件
            ;; i a   為當前日期創建一個周年紀念日
            ;; i c   創建一個循環的事件


            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  設置日記結束  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

             

            ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 自定義lisp包設置  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


            ;=======================五筆輸入法設置======================
            ;; (add-to-list 'load-path "~/lisp/wubi/wubi")
            ;; (require 'wubi)
            ;; (register-input-method "chinese-wubi" "Chinese-GB" 'quail-use-package "wubi" "wubi")
            ;; (wubi-load-local-phrases)
            ;; (setq default-input-method "chinese-wubi")


            ;;這幾句Lisp代碼的作用是設置中文環境、注冊五筆字型輸入法。保存.emacs后請重新啟動emacs,
            ;;使得上面的設置生效。現在您可以用快捷鍵C-\ (同時按住 Ctrl和反斜線鍵)喚出五筆字型輸入法了。
            ;;在emacs的mode line上會出現“五筆字型”的字樣。

            ;=======================五筆輸入法設置結束===================


            ;======================= cscope 設置 =======================
            ;;使用 cscope 瀏覽源代碼,這個xcscope是個改進版,為每一次查找的結果使用不同 buffer ,
            ;;這樣就可以保存以前的結果。

            (add-to-list 'load-path  "~/lisp/xcscope") ;; 將軟件包所在的路徑加到 EMACS 的 load-path
            (require 'xcscope) ;; 加載相應的軟件

            ;; C-c s a             設定初始化的目錄,一般是你代碼的根目錄
            ;; C-s s I             對目錄中的相關文件建立列表并進行索引
            ;; C-c s s             序找符號
            ;; C-c s g             尋找全局的定義
            ;; C-c s c             看看指定函數被哪些函數所調用
            ;; C-c s C             看看指定函數調用了哪些函數
            ;; C-c s e             尋找正則表達式
            ;; C-c s f             尋找文件
            ;; C-c s i             看看指定的文件被哪些文件include


            ;===================== cscope 設置結束 ======================


            ;======================== tabbar設置 ========================
            (add-to-list 'load-path  "~/lisp/tabbar")
            (require 'tabbar)
            (tabbar-mode)
            ;========================tabbar設置結束=======================


            ;======================= wb-line-number設置 ==================
            ;;增加一個顯示行號的buffer
            ;(add-to-list 'load-path  "~/lisp/wb-line-number")
            ;(require 'wb-line-number)
            ;(wb-line-number-enable)
            ;====================== wb-line-number設置結束 ================

            ;======================= setnu設置 ============================
            ;;再增加一個顯示行號的功能
            (add-to-list 'load-path  "~/lisp/setnu")
            (require 'setnu)
            (global-set-key [f2] (quote setnu-mode))

            ;======================= setnu設置結束 =====================


            ;====================== rect-mark設置 =========================
            ;; 按下shift拖拽鼠標即可選擇矩形區域
            ;; Support for marking a rectangle of text with highlighting.
            (add-to-list 'load-path  "~/lisp/rect-mark")
            (require 'rect-mark)
            (define-key ctl-x-map "r\C-@" 'rm-set-mark)
            (define-key ctl-x-map [?r ?\C-\ ] 'rm-set-mark)
            (define-key ctl-x-map "r\C-x" 'rm-exchange-point-and-mark)
            (define-key ctl-x-map "r\C-w" 'rm-kill-region)
            (define-key ctl-x-map "r\M-w" 'rm-kill-ring-save)
            (define-key global-map [S-down-mouse-1] 'rm-mouse-drag-region)
            (autoload 'rm-set-mark "rect-mark"
              "Set mark for rectangle." t)
            (autoload 'rm-exchange-point-and-mark "rect-mark"
              "Exchange point and mark for rectangle." t)
            (autoload 'rm-kill-region "rect-mark"
              "Kill a rectangular region and save it in the kill ring." t)
            (autoload 'rm-kill-ring-save "rect-mark"
              "Copy a rectangular region to the kill ring." t)
            (autoload 'rm-mouse-drag-region "rect-mark"
              "Drag out a rectangular region with the mouse." t)

            ;; Use this section in your "~/.emacs" to modify picture mode so that
            ;; it automatically uses the rect-mark equivalents of many commands.

            ;; One vision of a better picture mode.
            (add-hook 'picture-mode-hook 'rm-example-picture-mode-bindings)
            (autoload 'rm-example-picture-mode-bindings "rect-mark"
              "Example rect-mark key and mouse bindings for picture mode.")

            ;=====================  rect-mark設置結束 =========================

            ;=====================  info文件設置 ==============================
            ;;Info 的菜單是按 Info-directory-list 的順序列出的,而 Info-directory-list 是在啟動 info 時
            ;;用Info-default-directory-list 來初始的。所以要添加 Info 目錄是要設置 Info-default-directory-list。
            ;;在添加的 Info 目錄中,創建一個叫 dir 的文件(其實所有 Info-directory-list 里有一個文件就行了,
            ;;在 ${emacs}/info 文件夾下有這個文件,修改這個也可以)。

            (add-to-list 'Info-default-directory-list  "~/lisp/info/")

            ;; n:跳轉到該節點的下一個節點;          
            ;; p:跳轉到該節點的上一個節點;
            ;; m: 指定菜單名而選擇另外一個節點;
            ;; f:進入交叉引用主題;
            ;; l:進入該窗口中的最后一個節點;
            ;; TAB:跳轉到該窗口的下一個超文本鏈接;
            ;; RET:進入光標處的超文本鏈接;
            ;; u:轉到上一級主題;
            ;; d:回到 info 的初始節點目錄;
            ;; h:調出 info 教程;
            ;; q:退出 info。

            ;===================  info文件設置結束 ============================


            ;===================== AUCTeX設置 =================================
            (load "~/lisp/auctex/site-lisp/auctex.el" nil t t)
            (load "~/lisp/auctex/site-lisp/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)

            ;===================== AUCTeX設置結束 =============================


            ;===================== 文件頭header設置 ===========================
            ;;當我們保存文件的時候,有很多信息可以自動更新.如何自動更新信息, 更新那些信息,
            ;也是可以完全自己配置. 包括文件名稱,最后一次修改時間,文件保存次數,最后一次修改的作者等等.
            ;;可以用 M-x make-header 自動生成文件頭信息.
            (add-to-list 'load-path  "~/lisp/header")
            (require 'header)
            (setq make-header-hooks '(header-mode-line
                                        header-blank
                                        header-file-name
                                        header-blank
                                        header-copyright
                                        header-blank
                                        header-author
                                        header-creation-date
                                        header-modification-author
                                        header-modification-date
                                        header-update-count
                                        header-blank
                                        header-history
                                        header-blank
                                        ))
            (setq header-copyright-notice "  源成工作室 作品" )
            (make-local-variable 'user-full-name)
            (make-local-variable 'user-mail-address)

            ;===================== 文件頭header設置結束 ==========================


            ;===================== template設置 =================================
            (add-to-list 'load-path  "~/lisp/template")
            (require 'template)
            (template-initialize)

            ;===================== template設置結束===============================

            ;===================== cedet設置 =====================================

            (add-to-list 'load-path "~/lisp/cedet-1.0pre3/speedbar")
            (add-to-list 'load-path "~/lisp/cedet-1.0pre3/eieio")
            (add-to-list 'load-path "~/lisp/cedet-1.0pre3/semantic")
            (add-to-list 'load-path "~/lisp/cedet-1.0pre3/common")
            (require 'cedet)
            ;; (add-to-list 'load-path "~/lisp/ecb-2.32")
            ;; (require 'ecb)

            ;; Ecb的操作:
            ;; C-c . g d 目錄列表窗口
            ;; C-c . g s 源碼窗口
            ;; C-c . g m 方法和變量窗口
            ;; C-c . g h 歷史窗口
            ;; C-c . g l 最后選擇過的編輯窗口
            ;; C-c . g 1 編輯窗口1
            ;; C-c . g n 編輯窗口n
            ;; C-c . l c 選擇版面
            ;; C-c . l r 重畫版面
            ;; C-c . l t 拴牢版面(鎖定版面)
            ;; C-c . l w 拴牢可見的ecb窗口
            ;; C-c . \   拴牢編繹窗口

            ;; 其中l為小寫字母(L),大家別看錯!!

            ;======================cedet設置結束==================================

             


            ;;;;;;;;;;;;;;;;;;;;;;;;;; 自定義lisp包設置結束  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

             


            ;=====================    GNUS設置  =================================
            (setq gnus-select-method '(nntp "news.yaako.com"))
            (setq gnus-default-subscribed-newsgroups
              '( "cn.comp.os.linux")) ;;

            ;; (add-to-list 'gnus-secondary-select-methods '(nntp "news.yourSecondProvider.net"))
            ;; (add-to-list 'gnus-secondary-select-methods '(nntp "news.yourThirdProvider.net"))
            ;;想讓 Gnus 在多個的服務器上取新聞


            ;;中文相關
            (set-language-environment 'Chinese-GB)
            (setq gnus-default-charset 'chinese-iso-8bit
               gnus-group-name-charset-group-alist '((".*" . chinese-iso-8bit))
               gnus-summary-show-article-charset-alist
                   '((1 . chinese-iso-8bit)
                     (2 . gbk)
                     (3 . big5)
                     (4 . utf-8))
               gnus-newsgroup-ignored-charsets
                   '(unknown-8bit x-unknown iso-8859-1))


            (setq mail-sources
                   '((pop :server "pop3.163.com" ;; 在這里設置pop3服務器
                   :user "66656799" ;; 用戶名
            ;;       :port "110"
                   :password "wcmwlw"))) ;; 密碼
            (setq gnus-secondary-select-methods '((nnfolder "")))

             

            (setq user-full-name "getmails") ;; 外發的郵件采用這個名字
            (setq user-mail-address "getmails@163.com") ;;外發的郵件采用這個地址
            (setq smtpmail-auth-credentials
                  '(("smtp.163.com" ;; SMTP服務器
                  25
                  "getmails" ;; 用戶名
                  "wcmwlw"))) ;; 密碼
            (setq smtpmail-default-smtp-server "smtp.163.com")
            (setq smtpmail-smtp-server "smtp.163.com")
            (setq message-send-mail-function 'smtpmail-send-it)

            (setq nnmail-expiry-wait 3);;Gnus 默認的保質期是7天,如果你覺得時間不合適,可以自己設置

            (add-hook 'gnus-article-prepare-hook
                      (lambda ()
                        (setq fill-column 60)
                        (gnus-article-fill-long-lines)))
            ;;讓gnus把這種郵件排版整齊后再顯示給我們看

            (add-hook 'gnus-article-prepare-hook 'gnus-article-date-local)
            ;;將郵件的發出時間轉換為本地時間

            (gnus-add-configuration '(article
                                      (vertical 1.0
                                                (summary .4 point)
                                                (article 1.0))))
            ;; 改變閱讀新聞時窗口的布局,窗口劃分為上4下6(比例)

            (eval-after-load "mm-decode"
              '(progn
                 (add-to-list 'mm-discouraged-alternatives "text/html")
                 (add-to-list 'mm-discouraged-alternatives "text/richtext")))
            ;另外,有些用web方式發出的郵件里有html,加入下面的設置,只看其中的
            ;plain text部分:

            (setq gnus-thread-sort-functions
                  '(
                    (not gnus-thread-sort-by-date)
                    (not gnus-thread-sort-by-number)
                    ))
            ;;排序

            (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
            ;; 有時訂閱了很多新聞組,堆在一起不好管理。這個功能可以創建目錄來分層管理

            (setq gnus-read-newsrc-file nil  gnus-save-newsrc-file nil)

            ;========================   GNUS設置結束  ===============================

             

            ;;=========================== 方便編程操作的設置=====================================

            (setq compile-command "make")
            ;;emacs的默認compile命令是調用make -k,我把它改成了make。你也可以把它改成其他的,比如gcc之類的.

            ;;把c語言風格設置為k&r風格
            (add-hook 'c-mode-hook
            '(lambda ()
            (c-set-style "k&r")))

            ;;把C++語言風格設置為stroustrup風格
            (add-hook 'c++-mode-hook
            '(lambda()
            (c-set-style "stroustrup")))

            ;========================================================================

            (load-library "hideshow")
            (add-hook 'c-mode-hook 'hs-minor-mode)
            (add-hook 'c++-mode-hook 'hs-minor-mode)
            (add-hook 'java-mode-hook 'hs-minor-mode)
            (add-hook 'perl-mode-hook 'hs-minor-mode)
            (add-hook 'php-mode-hook 'hs-minor-mode)
            (add-hook 'emacs-lisp-mode-hook 'hs-minor-mode)
            ;;能把一個代碼塊縮起來,需要的時候再展開
            ;;  M-x              hs-minor-mode
            ;;  C-c @ ESC C-s    show all
            ;;  C-c @ ESC C-h    hide all
            ;;  C-c @ C-s        show block
            ;;  C-c @ C-h        hide block
            ;;  C-c @ C-c toggle hide/show

            ;========================================================================

            (defun my-c-mode-auto-pair ()
              (interactive)
              (make-local-variable 'skeleton-pair-alist)
              (setq skeleton-pair-alist  '(
                (?` ?` _ "''")
                (?\( ?  _ " )")
                (?\[ ?  _ " ]")
                (?{ \n > _ \n ?} >)))
              (setq skeleton-pair t)
              (local-set-key (kbd "(") 'skeleton-pair-insert-maybe)
              (local-set-key (kbd "{") 'skeleton-pair-insert-maybe)
              (local-set-key (kbd "`") 'skeleton-pair-insert-maybe)
              (local-set-key (kbd "[") 'skeleton-pair-insert-maybe))
            (add-hook 'c-mode-hook 'my-c-mode-auto-pair)
            (add-hook 'c++-mode-hook 'my-c-mode-auto-pair)
            ;;輸入左邊的括號,就會自動補全右邊的部分.包括(), "", [] , {} , 等等。

            ;=========================================================================
            (setq semantic-load-turn-everything-on t)
            ;(add-hook 'semantic-init-hooks 'semantic-idle-completions-mode)

            (setq semanticdb-project-roots
                    (list
                    (expand-file-name "/")))
            ;;配置Semantic的檢索范圍

            (setq semanticdb-default-save-directory "~/")
            ;;設置semantic.cache路徑

            (global-set-key [(meta ?/)] 'hippie-expand)
            ;;M-/ 綁定到 hippie-expand

            (autoload 'senator-try-expand-semantic "senator")
            (setq hippie-expand-try-functions-list
                  '(senator-try-expand-semantic  ;優先調用了senator的分析結果
                    try-expand-dabbrev     ;當前的buffer補全
             try-expand-dabbrev-visible   ;別的可見的窗口里尋找補全
             try-expand-dabbrev-all-buffers  ;所有打開的buffer
             try-expand-dabbrev-from-kill
             try-complete-file-name-partially
             try-complete-file-name
             try-expand-all-abbrevs
             try-expand-list
             try-expand-line
             try-complete-lisp-symbol-partially
             try-complete-lisp-symbol))
            ;設置 hippie-expand 的補全方式。它是一個優先列表, hippie-expand 會優先使用表最前面的函數來補全。

            ;=========================================================================


            ;==========================================================================

             

            ;;========================== 方便編程操作設置結束====================================


             

            posted on 2006-08-25 09:35 王光平 閱讀(6228) 評論(3)  編輯 收藏 引用 所屬分類: linux世界

            評論

            # re: emacs23的使用[未登錄] 2007-10-30 22:10 Andrew

            哥們,你這個太牛了  回復  更多評論   

            # re: emacs23的使用 2007-12-18 16:23 liuchuan98

            太感謝了!
            我的emacs23字體老是不能顯示那個“镕”,有了你這個就可以了,哈哈。  回復  更多評論   

            # re: emacs23的使用[未登錄] 2008-04-08 08:05 david

            頂  回復  更多評論   

            <2006年8月>
            303112345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            留言簿(4)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            麻豆精品久久久久久久99蜜桃| 色综合久久综精品| 伊人久久大香线蕉综合影院首页| 天天做夜夜做久久做狠狠| 久久婷婷色综合一区二区| 久久婷婷激情综合色综合俺也去| 国产成人精品白浆久久69| 久久久久久亚洲精品无码| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久青青草原精品国产软件| 久久五月精品中文字幕| 精品久久久久久亚洲精品 | 久久亚洲欧洲国产综合| 老色鬼久久亚洲AV综合| 欧美性猛交xxxx免费看久久久| 久久亚洲精品国产精品| 亚洲国产成人精品91久久久| 色欲av伊人久久大香线蕉影院 | 亚洲AV伊人久久青青草原| 婷婷伊人久久大香线蕉AV | 色综合久久中文字幕综合网| 国产精品久久成人影院| 久久WWW免费人成一看片| 日本久久中文字幕| 久久精品国产99国产精偷 | 久久久久婷婷| 久久久无码精品午夜| 成人亚洲欧美久久久久| 久久精品国产99国产电影网 | 久久午夜福利电影| 国产午夜精品理论片久久| 精品国际久久久久999波多野| 欧美精品国产综合久久| 亚洲国产日韩欧美综合久久| 久久精品国产只有精品66 | 久久久久香蕉视频| 久久一区二区三区免费| 久久久久久午夜精品| 久久婷婷色综合一区二区| 亚洲αv久久久噜噜噜噜噜| 午夜人妻久久久久久久久|