2011年10月24日

          Windows下ORACLE 10g安裝與操作圖解

          Oracle 2008-08-07 08:17:34 閱讀7580 評論8 字號:大中小 

          剛剛接觸ORACLE的人來說,從那里學,如何學,有那些工具可以使用,應該執行什么操作,一定回感到無助。所以在學習使用ORACLE之前,首先來安裝一下ORACLE 10g,在來掌握其基本工具。俗話說的好:工欲善其事,必先利其器。我們開始吧!

            首先將ORACLE 10g的安裝光盤放入光驅,如果自動運行,一般會出現如圖1安裝界面:


          圖1

            單擊“開始安裝”,就可以安裝ORACLE 10g,一般會檢查系統配置是否符合要求,然后出現“Oracle DataBase 10g安裝”對話框,如圖2所示:



          圖2

            在安裝Oracle DataBase 10g時可以選擇“基本安裝”和“高級安裝”兩種方法。選擇“基本安裝”時,“Oracle主目錄位置”用于指定Oracle DataBase 10g軟件的存放位置;“安裝類型”用于指定Oracle產品的安裝類型(企業版、標準版和個人版)。如果選擇“創建啟動數據庫”,那就要指定全局數據庫名稱和數據庫用戶的口令。

            選擇“高級安裝”,單擊“下一步”,會出現“指定文件對話框”,在源路徑顯示的是安裝產品所在的磁盤路徑;目標名稱用于資定Oracle主目錄所對應的環境變量,目標路徑用于指定安裝Oracle軟件的目標安裝路徑。設置目標名稱為:OraDb10g_home1,目標路徑為:D:oracleproduct10.1.0db1。如圖3:



          圖3

            單擊“下一步”,會加載Oracle產品列表,然后出現“選擇安裝類型”對話框;如圖4:



          圖4

            選擇安裝類型時一般選擇“企業版”,單擊“下一步”,會出現“選擇數據庫配置”對話框,如圖5 :



          圖5

            在“選擇數據庫配置”對話框中可以選擇是否要創建啟動數據庫,如果要創建數據庫還要選擇建立數據庫的類型。選擇“不創建啟動數據庫”單擊“下一步”,會出現“概要”對話框,如圖6所示:



          圖6

            單擊“安裝”,就會開始安裝Oracle DataBase 10g產品了。如圖7為安裝過程:



          圖7

            圖8為安裝完成



          圖8

            在安裝完成Oracle Database 10g后,就要建立數據庫。

             數據庫配置助手(Database Configuration Assistant)用于創建數據庫、配置數據庫選項、刪除數據庫和管理模板。在安裝Oracle database 10g的時候如果沒有建立數據庫,在安裝完成之后就可以使用數據庫配置助手(DBCA)建立數據庫。

             建立數據庫的方法有兩種,第一種是在命令行下直接運行:dbca;第二種是點擊開始菜單:開始=>程序=>Oracle=>oraDb10g_home1=>Configuration and Migration Tool=>Database Configuration Assistant。如圖1:



          圖1

            之后,具體步驟如下,先出現歡迎對話框,如圖2:



          圖2

            單擊“下一步”,出現“操作”對話框,該對話框用于要執行的數據庫操作(創建數據庫、配置數據庫選項、刪除數據庫和管理模板),如圖3:



          圖3

            如果是第一次創建數據庫,只能創建數據庫和管理模板可以使用,選擇創建數據庫,單擊“下一步”,會出現數據庫模板對話框,如圖4:



          圖4

            數據庫模板是本地硬盤上的XML文件,用來存儲數據庫的配置信息。

            選擇“事務處理”,單擊“下一步”,會顯示數據庫標示對話框,該對話框用于設置全局數據庫名和例程名。如圖5:



          圖5

            全局數據庫名,格式一般為:db_name.db_domain。db_name用于對應數據庫名,db_domain對應于網絡域名。SID(例程)應該與db_name完全一致.如圖5都設置為:demo.

            單擊“下一步”,會出現“管理選項”對話框。用于設置OEM管理信息,如圖6:



          圖6

            如果要集中管理所有的Oracle數據庫,那就要選擇“Grid Control管理數據庫”,如果只管理本地數據庫,那就選擇“使用Database Control管理數據庫”。

            選擇“使用Database Control管理數據庫”,單擊“下一步”,會出現“數據庫身份證明”對話框,該對話框用于設置初始數據庫用戶帳號的口令。如圖7:



          圖7

            要選擇用戶SYS、SYSTEM、DBSNMP、SYSMAN使用相同的口令,那就選擇“所有賬戶使用同一口令”。這里選擇“使用不同的口令”,分別設置用戶的口令:SYS用戶的口令為ORACLE,SYSTEM用戶的口令為MANAGER,DBSNMP用戶的口令為DBSNMP,SYSMAN用戶的口令為SYSMAN。

            設置口令后,單擊“下一步”,會出現“存儲選項”對話框,該對話框用于指定數據庫的存儲機制(文件系統、自動存儲管理、裸設備),如圖8:



          圖8

            選擇“文件系統”,單擊“下一步”,會出現“數據庫文件位置”對話框,該對話框用于指定數據庫文件的存放位置。如圖9:
             

            圖9

            選擇“使用模板中的數據庫文件位置”,單擊“下一步”,會出現“恢復配置”對話框,該對話框用于指定數據庫的恢復選項,如圖10:
            

            圖10

            快速恢復區用于恢復數據,以免系統發生故障時丟失數據;啟用歸檔用于將數據庫設置為ARCHIVELOG模式,使得當數據庫出現失敗時可以完全恢復數據庫數據。

            單擊“下一步”,會出現“數據庫內容”對話框,該對話框用指定是否安裝示例方案,并運行自定義腳本。如圖11:



          圖11

            單擊“下一步”,會出現“初始化參數”對話框,該對話框用配置初始化參數、數據庫字符集和連接模式。如圖12:
             

            圖12

            這里的內容相對初學者來說有墊補好理解,放到后面講解。

            單擊“下一步”,會出現“數據庫存儲”對話框,該對話框用指定控制文件、數據文件、重做日志文件、名稱和尺寸。如圖13:
             

            圖13

            單擊“下一步”,會出現“創建選項”對話框,該對話框用指定建立數據庫,還是保存為數據庫模板。如圖14:
            

           圖14

            單擊“完成”,會顯示“確認”對話框,列出了要安裝Oracle選項的所有信息。如圖15:
             

            圖15

            單擊“確定”,就完成數據庫的建立過程。就會開始數據庫的建立,如圖16:



          圖16

            當數據庫建立完成后,就會出現如下對話框,如圖17:
             

            圖17

            當建立完成數據庫后,系統會鎖定除SYS、SYSTEM、DBSNMP、SYSMAN之外的所有其他用戶。應為以后要使用SCOTT用戶,所以在點擊“口令管理”按鈕后,解鎖SCOTT用戶,如圖18:
             

            圖18

            指定用戶口令為TIGER,單擊“確定”按鈕,最后單擊“退出”按鈕完成數據庫建立的全部過程。


          posted @ 2011-10-24 10:00 longsooooon 閱讀(836) | 評論 (0)編輯 收藏

          2011年10月9日


          超簡單方法解決Struts2中一個action處理多個請求
          關鍵字: struts2, action, 多個方法
              這幾天用Struts2+MySQL做名片管理系統的時候,遇到了一些問題,或許別人看來不是什么問題,但作為一個剛剛開始學習Struts2的新手,
          很多東西對我來說還是很有難度的.比如我現在要說的在一個action中處理多個請求的問題.

              簡要描述一下問題的產生:我要做的名片管理系統中的一個用戶管理模塊,其中有兩個最主要的方法就是登錄和注冊,這兩個方法都是在UserAction中處理.
          而按照通常的狀況而言,一個Action中只會有一個execute方法,也就只能解決一個請求(大概看了下Struts,好像其中可以通過在form中加一個hidden元素,
          然后再在execute方法中用getCommond()的方法來進行判別).不過我在Struts2中沒有發現類似的解決辦法,這也很有可能是我剛剛學習Struts2造成的,
          畢竟到現在我都還沒弄到一本完整的教材,就只是到處找了些零散的資料,然后,做的過程遇到問題再自己猜想結合google找到的一些東西來尋求解決.

              遇到這個問題之后,我自己開始沒有想明白是什么狀況,該怎么解決.于是在網上找了下,找到的方法貌似都不是很簡單,要么就很復雜,要么就要涉及一些比較深的知識.
          后面我在執行這個程序的時候,發現Eclipse提出的一個warning,而正是這個warning給了我很大的提示,讓我找到的解決方法.

              Warning是這樣的:No configuration found for the specified action: 'UserAction.action' in namespace: '/pages/user'.
          Form action defaulting to 'action' attribute's literal value. 原因就是我在struts.xml中定義的action的name與login.jsp中的form中的action的name不一致,
          將兩個的名字改成相同就好了,不要求以.action結束,如都為:LoginAction,也就是struts.xml中的<action name="LoginAction" class="main.UserAction">,
          和JSP頁面中的<s:form action="LoginAction" method="POST">.


              而在struts.xml中定義的action還有一個參數method,既然已經可以根據action的name找到對應的action,那還要這個參數做什么呢?另外,execute在不更改的情況下,
          也是默認會調用的方法,再結合自己在網上找到的一些資料,我覺得可以嘗試一下將struts.xml中的action中的method進行設置.
          于是就有了下面的兩個action的配置:struts.xml中的<action name="login" class="main.UserAction"  method="login">和
          JSP頁面中的<s:form action="login" method="POST">. 提交上面的表單form的時候,在struts.xml中找到該form對應的action的方法為login(),
          于是就到類UserAction中找到該方法并調用.因而也就能夠調用UserAction類的login()方法了.
              這樣上面的問題也就可以解釋了:因為兩個地方定義的方法的名字不同,所以在點擊登錄進行login.jsp的時候就會彈出上述提示,
          但由于struts.xml中只定義(配置)一個action,默認的方法為execute(),故而編譯器還是能夠找到該方法進行執行.
              根據上面的推斷,因而可以再添加一個注冊頁面register.jsp,將其中的表單form定義為:<s:form action="register" method="POST">,
          而將struts.xml增加一個設置:<action name="register" class="main.UserAction" method="register">.
          這樣當register.jsp的action請求被攔截器攔截之后通過struts.xml的配置就可以找到UserAction類的register()方法進行相應的處理了,
          因而也就可以實現一個UserAction中處理多個請求action了.

              PS:由于本人剛剛學習Struts2不到兩個星期,而且以前也沒有接觸過Struts方面的程序設計.所以,
          肯定會有理解不對的地方,麻煩各位發現的朋友幫我指出來,謝謝

           來自:http://www.360doc.com/content/09/1122/16/144699_9541328.shtml
          posted @ 2011-10-09 17:37 longsooooon 閱讀(1616) | 評論 (0)編輯 收藏

          2011年9月14日

          windows下安裝emacs及添加配置文件(網絡整合收集)

          前言
          在這個蔚藍色的星球上,流傳著兩大神器的傳說:據說Emacs是神的編輯器,而Vim是編輯器之神。
          一些人勇敢地拾起了Vim或Emacs,卻發現學習曲線陡峭而漫長,還是有一些人留下來了,堅定地守護著這兩大神器。
          一些說葡萄太酸的人想離開又不甘心,總是問:它們到底神在哪里啊?
          Emacs和Vim介紹來自:http://os.51cto.com/art/201101/242518.htm

          首先我們需要下載windows版的emacs,官網下載地址:
          http://ftp.gnu.org/pub/gnu/emacs/windows/
          比如我下載的是:emacs-23.3-bin-i386.zip
          在硬盤里解壓后有個addpm.exe,雙擊運行它。

          在Windows下是無法手動建立.emacs文件的,你可以打開emacs然后在Options下隨便
          挑個選項比如:Paren Match Highlighting然后點Save Options
          你就可以看到下面的提示
          Wrote c:/Documents and Settings/Administrator/Application Data/.emacs
          這時已經生成.emacs文件了。
          為了以后可以反復使用配置和插件,我們需要改變插件導入路徑,在C:\Documents
          and Settings\Administrator\Application Data\.emacs添加下面代碼

          '(load-file "D:\emacs-23.3\.emacs");;要在第一行且單獨一行
          然后在D:\emacs-23.3文件下建立配置文件.emacs,寫入下面的代碼。

          ;;改變默認路徑
          (setenv "HOME" "D:/emacs-23.3")
          (setenv "PATH" "D:/emacs-23.3")
          ;;set the default file path
          (setq default-directory "~/")

          最后在D:/emacs-23.3下建立文件夾ConFile,把插件(默認插件在lisp文件夾里)都扔進去,
          比如說display-line-number.el
          在.emacs中寫入下面的代碼。

          ;;顯示行號
          (load-file "~/ConFile/display-line-number.el")
          (require 'display-line-number)
          (global-display-line-number-mode t)

          Emacs23可以不用插件顯示行號
          在配置.emacs文件中加上
          (global-linum-mode t)
          或者m-x  global-linum-mode回車(m-x就是Alt+x)
          就可以顯示行號,而且在用了tabbar插件的情況下,這種方式不會出現差一行的錯誤.

          (setq case-fold-search nil);;查找的時候就強制匹配大小寫t,nil
          (setq case-replace  nil);;強制大小寫自動替換


          下面是我從網上找的 Emacs基本配置稍加整理,
          我的.emacs文件祥細代碼(網絡收藏整理的):

          ;;'(load-file "D:\emacs-23.3\.emacs");;放在C:\~~~\.emacs文件里第一行且單獨一行
          ;;'(global-linum-mode t)
          ;;改變默認路徑
          (setenv "HOME" "D:/emacs-23.3")
          (setenv "PATH" "D:/emacs-23.3")

          ;============================ 語言環境字符集設置 =================================
          ;;這一部份主要用在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 global-linum-mode t);行號
          (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 version-control 'never);;不需要而不是想換個地方保存備份文件
          (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 "XXXXXX")
          (setq user-mail-address "XXXXXX@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-") '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 "XXXXXXX" ;; 用戶名
          ;; :port "110"
          :password "XXXXXX"))) ;; 密碼
          (setq gnus-secondary-select-methods '((nnfolder "")))

          (setq user-full-name "XXXXXXXX") ;; 外發的郵件采用這個名字
          (setq user-mail-address "XXXXXX@163.com") ;;外發的郵件采用這個地址
          (setq smtpmail-auth-credentials
          '(("smtp.163.com" ;; SMTP服務器
          25
          "XXXXXX" ;; 用戶名
          "XXXXXX"))) ;; 密碼
          (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 @ 2011-09-14 10:43 longsooooon 閱讀(8274) | 評論 (0)編輯 收藏
          僅列出標題  

          導航

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 万州区| 油尖旺区| 昌乐县| 南乐县| 监利县| 镇远县| 闽侯县| 隆林| 巴楚县| 来安县| 鄂尔多斯市| 沙洋县| 富平县| 德州市| 吉安县| 黄石市| 文成县| 瑞金市| 林周县| 澎湖县| 衡山县| 富裕县| 镇江市| 龙岩市| 二连浩特市| 皋兰县| 佛冈县| 贺州市| 营山县| 遵义市| 丹巴县| 瑞昌市| 佛冈县| 青浦区| 太谷县| 赤水市| 丰台区| 望江县| 神农架林区| 滦南县| 安吉县|