1,svn-status下如何刪除選中(mark)的未受版本控制(unknow)的文件?
  為svn-status-rm提供強制刪除參數
  M-u 1
  M-x svn-status-rm
2,同時開多個shell
  M-x shell???????????????????? ;開個SHELL先
??? M-x rename-buffer???????????? ;改成*shell*以外的名字
????????????????????????????????? ;繼續上面的步驟, 同理可實現開多個gdb多個telnet。
3, 以其它編碼方式打開文件或執行命令
??? C-x Ret c <命令>

4,protobuf-mode出現錯誤:error: `c-lang-defconst' must be used in a file?
? 刪除emacs的cc-mode.elc文件。
? 不行則嘗試將.emacs中該mode的load語句移到后面

5,emacs的跳轉
 C-M-f和C-M-b是forward-sexp和backward-sexp,在括號后則匹配括號,否則匹配一個詞。
 C-M-n和C-M-p是forward-lise和backward-list,專用于括號間跳轉。

6,花括號補齊時自動換行并縮進
 (defun my-c-cpp-mode-common-hook()
? (c-set-style "linux")
? (setq c-basic-offset 4)
? ;(c-toggle-auto-hungry-state 1)????????????????????????????
? (which-function-mode t)
? (define-key c-mode-base-map [(return)] 'newline-and-indent)
? (local-set-key (kbd "RET") 'newline-and-indent)
? (setq c-macro-shrink-window-flag t)
? (setq c-macro-preprocessor "cpp")
? (setq c-macro-cppflags " ")
? (setq c-macro-prompt-flag t)
? (setq abbrev-mode t)
? (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)
? (local-set-key (kbd "`") 'skeleton-pair-insert-maybe)
? (local-set-key (kbd "[") 'skeleton-pair-insert-maybe)
? )
(add-hook 'c-mode-common-hook 'my-c-cpp-mode-common-hook)
(add-hook 'c++-mode-common-hook 'my-c-cpp-mode-common-hook)

7,獲得快捷鍵的文本表示。
樣板語句為(kbd ""),將光標放在""之間,然后執行M-x edmacro-insert-key,然后按照提示開始按鍵就產生了完整的文本表示。

8,讓cedet的跳轉更精確
cedet是基于源代碼解析來運作的,所以非常精確,對于一個稍具規模(多目錄層次)的程序,cedet會因為不能定位到include讓效果大打折扣,
ede-cpp-root-project用于解決這個問題:
#Project.ede
(ede-cpp-root-project "tempproject":file "~/learn/tempproject/Project.ede"
??? :include-path '( "/common" )
??? :spp-table '( ("_DEBUG" . "")))

"tempproject"  是項目名稱,隨便填一個
"~/learn/tempproject/Project.ede" 是項目根目錄下的一個文件,僅用于標記項目根目錄
"/common" 是項目的包含路徑,最開始是"/"表示的是項目根目錄(這里是"~/learn/tempproject/")。
???????????????????? 如果使用system-include-path,則最開始的/表示的就是系統根目錄了。
      ? 不以"/"開始的目錄則表示是當前buffer(需要展開include路徑的源文件buffer)所在目錄。
"_DEBUG"  是定義的宏

9,xshell中compile時,編譯輸出的中文導致界面內容顯示錯亂,不輸出中文就可以了.
(setq compile-command "LANG=en_US make")

10,長句子總是自動換行顯示
(custom-set-variables
'(truncate-partial-width-windows nil))

11,內聯函數縮進過多
? (c-set-offset 'inline-open 0)

12,不讓光標閃爍
(blink-cursor-mode nil)
如果在gnome-terminal中運行emacs時:
  運行gconf-editor,取消/desktop/gnome/interface/cursor_blink
如果在linux text mode中運行時:
  ~/.bashrc中添加: alias emacst="echo -e '\033[?17;0;64c' && TERM=vt100 emacs -nw"
  然后以emacst啟動emacs,注意:退出emacs后光標也不再閃爍。
13,ediff-directories默認顯示同時存在于兩個目錄中的文件,要顯示不同時存在于兩個目錄中的文件,按D即可。
14,gnus中當我進入一個組,所有的已讀消息都沒有了,我如何再看到它們?
當你通過 `RET' 進入一個 Summary buffer 時,只有未讀郵件和標記的郵件
被加載。用 `C-u RET' 來取得所有可用郵件。如果只想讀最新的300 個,用
`C-u 300 RET'。
參考:http://zoomquiet.org/res/scrapbook/ZqFLOSS/data/20101130102435/index.html