现在的位置: 首页 > 综合 > 正文

神的编辑嚣emacs的简单配置

2014年01月05日 ⁄ 综合 ⁄ 共 18163字 ⁄ 字号 评论关闭

一个lisper不用emacs的确説不过去哈! 虽然使用vim很多年,但由于用stumpwm做窗口管理嚣很久,配置使用emacs也不太难。简单从网上搜集整理一些资料就可以正常使用了,现记下以后再完善。所有配置文件放在~/.emacs.d下。更新在github


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

$ cat ~/.emacs.d/init.el

(add-to-list 'load-path "~/.emacs.d/")

(load "init-base")
(load "init-key")
(load "init-eshell")
(load "init-erc")

;(load "init-slime")
;(load "init-dict")
;(load "init-emms")
;(load "init-radio")

(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

;; ------------------------------------------------------------ [ ispell ]
(eval-after-load "ispell"
  '(progn
     ;; Use the -C option when running aspell, which will
     ;; ConsiderCamelCaseToBeCorrect
     (setq ispell-extra-args '("-C"))))

;(add-hook 'after-init-hook 'org-agenda-list)
(add-hook 'after-init-hook 'split-window-horizontally)

;(require 'dired+)
;(put 'dired-find-alternate-file 'disabled nil)  ;enable `a' command

;;这个东西必须放在最后%%
;;desktop.el是一个可以保存你上次emacs关闭时的状态,下一次启动时恢复为上次关闭的状态。就和vmware的suspend一样。
;;因为我要使用sawfish-mode,wiki-mode,html-helper-mode,放在这里才能保证下次启动时能正确辨认文件需要的模式。
;(load "desktop") 
;(desktop-load-default) 
;(desktop-read)

$
cat
~/.emacs.d/init-base.el

;;设置有用的个人信息,这在很多地方有用。
(setq user-full-name "sw2wolf")
(setq user-mail-address "***@163.com")

;;去掉Emacs和gnus启动时的引导界面
(setq inhibit-startup-message t)
(setq gnus-inhibit-startup-message t)

(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode nil)
(transient-mark-mode t)
(set-scroll-bar-mode nil)

(set-language-environment "UTF-8")
(set-background-color "Black") 
(set-foreground-color "White")

(add-to-list 'load-path "~/.emacs.d/")
;(setq default-directory "/media/E/www/qachina/db/doc/money")
(setq bookmark-default-file "~/.emacs.d/.emacs.bmk")
;; 同步更新书签文件 ;; 或者退出时保存
(setq bookmark-save-flag 1)

;(setenv "JAVA_HOME" "/usr/lib/jvm/jdk1.6.0_35")
;(setenv "PATH" (concat (getenv "PATH") ":" (getenv "JAVA_HOME") "/bin"))

;; 一打开就起用 text 模式。  
(setq default-major-mode 'text-mode)

;; 以 y/n代表 yes/no
(fset 'yes-or-no-p 'y-or-n-p)

;;粘贴于光标处,而不是鼠标指针处
(setq mouse-yank-at-point t)

;; 显示时间,格式如下
(display-time-mode 1) 
(setq display-time-24hr-format t) 
(setq display-time-day-and-date t)

(set-default-font "Bitstream Vera Sans Mono-10")
;; 设置中文字体
     (set-fontset-font "fontset-default"
      'gb18030 '("WenQuanYi Bitmap Song" . "unicode-bmp"))
;; 设置 sentence-end 可以识别中文标点
(setq sentence-end
      "\\([。!?]\\|……\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*")
(setq sentence-end-double-space nil)

(setq line-number-mode t)
;(global-linum-mode 'linum-mode);;在左边显示行号
(setq column-number-mode t) 

;自定义缩进长度
(setq standard-indent 4)

;; 显示括号匹配
(show-paren-mode t)
(setq show-paren-style 'parentheses)

;; 语法高亮
(global-font-lock-mode t)

;; 显示时间,格式如下
(display-time-mode 1)  
(setq display-time-24hr-format t)  
(setq display-time-day-and-date t)  

;; 支持emacs和外部程序的粘贴
(setq x-select-enable-clipboard t)

;; 在标题栏提示你目前在什么位置
(setq frame-title-format "emacs@%b")

;; 默认显示 80列就换行
(setq default-fill-column 80)

;; 设置默认tab宽度
(setq tab-width 4
      indent-tabs-mode t
      c-basic-offset 4)
(setq default-tab-width 4)

;;不要临时文件
(setq make-backup-files nil)
(setq auto-save-default nil)
(setq backup-inhibited t);;不产生备份

;;滚动页面时比较舒服,不要整页的滚动
(setq scroll-step 1
      scroll-margin 3
      scroll-conservatively 10000)

;;在文档最后自动插入空白一行,好像某些系统配置文件是需要这样的
(setq require-final-newline t)
;; 当光标在行尾上下移动的时候,始终保持在行尾。 
(setq track-eol t)

;;使用C-k删掉指针到改行末的所有东西
(setq-default kill-whole-line t)

;;没有提示音,也不闪屏
(setq ring-bell-function 'ignore)

;;去掉警告铃声
(setq visible-bell nil)

;;光标显示为一竖线
(setq-default cursor-type 'bar)

;;可以显示图片
(auto-image-file-mode t)

;;光标靠近鼠标指针时,让鼠标指针自动让开,别挡住视线。
(setq mouse-avoidance-mode 'animate)

;; 填入大中小括号,双单引号的匹配
;; 详细格式可以参照C-h f skeleton-pair-alist  
(setq skeleton-pair-alist  
      '((?\" _ "\"" >)
        (?\' _ "\'" >)
        (?\( _ ")" >)
        (?\[ _ "]" >)
        (?\{ _ "}" >)))

(setq skeleton-pair t)

(mapcar
 (function (lambda (setting)
	     (setq auto-mode-alist
		   (cons setting auto-mode-alist))))
 '(("\\.xml$" .  sgml-mode)
   ("\\.org\\'" . org-mode)
   ("\\\.bash" . sh-mode)
   ("\\.rdf$" .  sgml-mode)
   ("\\.session" . emacs-lisp-mode)
   ("\\.l$" . c-mode)
   ("\\.css$" . css-mode)
   ("\\.cfm$" . html-mode)
   ("gnus" . emacs-lisp-mode)
   ("\\.py$" . python-mode)
   ("\\.rkt$" . scheme-mode)
   ("\\.idl$" . idl-mode)))

;;默认链接网络浏览器打开
(setq browse-url-generic-program (executable-find "opera")
     browse-url-browser-function 'browse-url-generic)

$cat~/.emacs.d/init-key.el

(global-unset-key "\C-z")

;; 绑定全局键值
;; 也可以绑定单独到某个mode,比如cc-mode (define-key cc-mode-map (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "(")  'skeleton-pair-insert-maybe)
(global-set-key (kbd "{")  'skeleton-pair-insert-maybe)
(global-set-key (kbd "\'") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[")  'skeleton-pair-insert-maybe)

(global-set-key (kbd "C-j") 'goto-line)  
;;设置C-/为undo,M-/为set-mark 
(global-set-key (kbd "C-/") 'undo) 

;; 扩大或者缩小窗口(上下),Ctrl+{} 
(global-set-key (kbd "C-}") 'enlarge-window) 
(global-set-key (kbd "C-{") 'shrink-window)

(global-set-key (kbd "C-<left>")  'windmove-left)
(global-set-key (kbd "C-<right>") 'windmove-right)
(global-set-key (kbd "C-<up>")    'windmove-up)
(global-set-key (kbd "C-<down>")  'windmove-down)

;(global-set-key [(shift home)] '(lambda () (interactive) (other-window -1)))
;(global-set-key [(shift end)] '(lambda () (interactive) (other-window 1)))

(global-set-key "\C-x\C-m" 'execute-extended-command)
(global-set-key "\C-c\C-m" 'execute-extended-command)

;; 按下C-x k立即关闭掉当前的buffer
(global-set-key (kbd "C-x k") 'kill-this-buffer)

(defun open-shell-other-buffer ()
  "Open eshell in other buffer"
  (interactive)
  ;(split-window-horizontally)
  ;(split-window-vertically)
  ;(eshell)
  (ansi-term "csh")
  ;(let ((proc (start-process "cmd" nil "cmd.exe" "/C" "start" "cmd.exe")))
  ;(set-process-query-on-exit-flag proc nil))
)

(require 'thingatpt)
(global-set-key (kbd "<f1>") 'open-shell-other-buffer)
(global-set-key (kbd "<f2>") 'describe-char)
(global-set-key (kbd "<f3>") 'find-file-at-point)
(global-set-key (kbd "<f4>") 'forward-whitespace)
(global-set-key (kbd "<f5>") '(lambda () (interactive) (insert #x3bb)))
;;√:#x221a) π:#x3c0) λ:#x3bb ∑:#x2211
(global-set-key (kbd "<f6>") '(lambda () (interactive) (insert "/msg lambdabot @hoogle "))) ;used in ERC

;;对光标之前的表达式进行求值
(global-set-key [f5] 'slime-eval-last-expression)
(global-set-key [(f9)] 'list-bookmarks)
(global-set-key [(f10)] 'bookmark-set)
(global-set-key [(f12)] 'desktop-save)

;; (global-set-key [f11] 'my-maximized) 
;; (defun my-maximized () 
;;     (interactive) 
;;     (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
;;     (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))

(require 'ibuffer)
(global-set-key (kbd "C-x C-b") 'ibuffer)

$cat~/.emacs.d/init-eshell.el

;; 让 shell mode 可以正常显示颜色
;(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
;(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

(defun eshell/clear ()
  "clear the eshell buffer."
  (interactive)
  (let ((inhibit-read-only t))
    (erase-buffer)))

;; (setq eshell-prompt-function
;;       (lambda ()
;; 	(concat "" (user-login-name) "@" (system-name) " "
;; 		(eshell/pwd) "% ")))

;; echo "hello world" >> #<buffer eshell.txt>
;; echo hello > /dev/clip    
;; echo hello > /dev/kill

$cat~/.emacs.d/init-erc.el

;; The emacs IRC client
(eval-after-load "erc"
  '(progn
     ;; Basic erc setup
     (setq erc-nick "sw2wolf"
           erc-user-full-name "sw2wolf"
		   erc-email-userid "***@163.com"
		   erc-server "irc.freenode.net"
		   erc-port "6667"

           erc-autojoin-channels-alist 
		   '(("freenode.net" "#lisp" "#racket" "#haskell")
			 ("oftc.net" "#emacs-cn"))

           erc-keywords '("emms" "lisp")
		   erc-pals '("rms")

           erc-format-nick-function 'erc-format-@nick
           erc-interpret-mirc-color t
           erc-button-buttonize-nicks nil
           erc-track-position-in-mode-line 'after-modes)

	 (setq erc-default-coding-system '(utf-8 . utf-8))
	 (setq erc-encoding-coding-alist '(("#linuxfire" . chinese-iso-8bit)))
     (setq erc-ignore-list nil)

     (erc-scrolltobottom-enable)
     ;(erc-spelling-mode t)
     (erc-netsplit-mode t)
     (erc-autojoin-mode 1)
	 (erc-match-mode 1)

     ;; Lots of default messages say the whole hostname of a user. Instead, use
     ;; short forms.
     (erc-define-catalog-entry 'english 'JOIN
                               "%n has joined channel %c")
     (erc-define-catalog-entry 'english 'NICK
                               "%n is now known as %N")
     (erc-define-catalog-entry 'english 'MODE
                               "%n has change mode for %t to %m")
     (erc-define-catalog-entry 'english 'QUIT
                               "%n has quit: %r")
     (erc-define-catalog-entry 'english 'TOPIC
                               "%n has set the topic for %c: \"%T\"")

     (require 'erc-goodies)

     ;; Don't spam me bro
     (setq erc-hide-list '("JOIN" "PART" "QUIT"))

     ;; Don't spam my modeline.
     (require 'erc-track)
     (erc-track-mode 1)
     (setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
                                     "324" "329" "332" "333" "353" "477"))

     ;; Nickserv
     ;(load "~/.elliot-unix/emacs/erc-auth")
     ;(setq erc-prompt-for-nickserv-password nil)
     ;(require 'erc-services)
     ;(erc-services-mode 1)
	 (add-hook 'erc-after-connect
    	  '(lambda (SERVER NICK)
    	     (cond
    	      ((string-match "freenode\\.net" SERVER)
    	       (erc-message "PRIVMSG" "NickServ identify password1"))
    
    	      ((string-match "oftc\\.net" SERVER)
    	       (erc-message "PRIVMSG" "NickServ identify password2"))
    
    	      ((string-match "jin\\.tekken" SERVER)
    	       (erc-message "PRIVMSG" "#bitlbee identify password3")))))

     ;; Truncate buffers so they don't hog core.
     (setq erc-max-buffer-size 20000)
     (defvar erc-insert-post-hook)
     (add-hook 'erc-insert-post-hook 'erc-truncate-buffer)
     (setq erc-truncate-buffer-on-save t)))

(defadvice erc-cmd-IGNORE (after ignore-replys-to (&optional user) activate)
  "After every ignore, copy the list `erc-ignore-list' to
`erc-ignore-reply-list'. When I ignore someone, I want them *gone*."
  (erc-with-server-buffer (setq erc-ignore-reply-list erc-ignore-list)))

(defadvice erc-cmd-UNIGNORE (after ignore-replys-to (&optional user) activate)
  "In case of mistakes made with /ignore."
  (erc-with-server-buffer (setq erc-ignore-reply-list erc-ignore-list)))

(defun erc-cmd-OPME ()
  "tell chanserv to op me (from: http://paste.lisp.org/display/97466)"
  (interactive)
  (erc-message "PRIVMSG"
	       (format "chanserv op %s %s"
		       (erc-default-target)
		       (erc-current-nick)) nil))

(defun erc-cmd-DEOPME ()
  "deop myself (from: http://paste.lisp.org/display/97466)"
  (interactive)
  (erc-cmd-DEOP (format "%s" (erc-current-nick))))

;idk:  I don't know.
;iirc: If I Recall Correct
;afaik: As Far As I Know

$cat~/.emacs.d/init-slime.el

(setq common-lisp-hyperspec-root "~/HyperSpec")

(load (expand-file-name "~/quicklisp/slime-helper.el"))

;(setq inferior-lisp-program "/usr/local/bin/clisp")
;(setq inferior-lisp-program "/usr/local/bin/sbcl")
;(setq inferior-lisp-program "D:/ccl/wx86cl -K utf-8")
;(setq slime-multiprocessing t)
;(setq slime-net-coding-system 'utf-8-unix)
;(setq slime-lisp-implementations
;    '((sbcl ("/usr/local/bin/sbcl") :coding-system utf-8-unix)
;      (cmucl ("/usr/local/bin/cmucl") :coding-system iso-latin-1-unix)))
;(setq common-lisp-hyperspec-root "media/E/RnD/clisp/HyperSpec")
;(setq browse-url-browser-function
;      '(("/media/E/RnD/clisp/HyperSpec" . w3m-browse-url)
;        ("." . browse-url-default-browser)))

;(add-to-list 'load-path "/usr/share/emacs24/site-lisp/slime")
;(require 'slime)
;(slime-setup)
;(slime-setup '(slime-fancy))
;(require 'slime-autoloads)

;增加lisp代码的自动完成功能
(defun lisp-indent-or-complete (&optional arg)
    (interactive "p")
    (if (or (looking-back "^\\s-*") (bolp))
        (call-interactively 'lisp-indent-line)
        (call-interactively 'slime-indent-and-complete-symbol)))

(eval-after-load "lisp-mode"
    '(progn
        (define-key lisp-mode-map (kbd "TAB") 'lisp-indent-or-complete)))

;;按回车键后下一行代码自动缩进
(add-hook 'lisp-mode-hook '(lambda ()
      (local-set-key (kbd "RET") 'newline-and-indent))) 

(put 'upcase-region 'disabled nil)

$cat~/.emacs.d/init-emms.el

(add-to-list 'load-path "~/.emacs.d/emms-3.0")

(require 'emms-setup)
(emms-all) ;(emms-standard)
(emms-default-players)

(setq emms-stream-default-action "play")

;; coding settings
(setq emms-info-mp3info-coding-system 'gbk
	  emms-cache-file-coding-system 'utf-8
	  ;; emms-i18n-default-coding-system '(utf-8 . utf-8)
)
;; Show the current track each time EMMS
;; starts to play a track with "播放 : "
(add-hook 'emms-player-started-hook 'emms-show)
(setq emms-show-format "播放: %s")

;; 默认的播放目录
(setq emms-source-file-default-directory "~/music")
(setq emms-playlist-buffer-name "音乐")

;; mode line format
(setq emms-mode-line-format "[ %s ]"
      emms-lyrics-display-format "%s"
      emms-playing-time-display-format "%s")

;; global key-map
;; all global keys prefix is C-c e
;; compatible with emms-playlist mode keybindings
;; you can view emms-playlist-mode.el to get details about
;; emms-playlist mode keys map
(global-set-key (kbd "C-c e s") 'emms-stop)
(global-set-key (kbd "C-c e e") 'emms-pause)
;; (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 f") 'emms-show)
;; (global-set-key (kbd "C-c e >") 'emms-seek-forward)
;; (global-set-key (kbd "C-c e <") 'emms-seek-backward)
;; ;; these keys maps were derivations of above keybindings
(global-set-key (kbd "C-c e S") 'emms-start)
(global-set-key (kbd "C-c e g") 'emms-playlist-mode-go)
;; (global-set-key (kbd "C-c e t") 'emms-play-directory-tree)
;; (global-set-key (kbd "C-c e h") 'emms-shuffle)
(global-set-key (kbd "C-c e o") 'emms-play-file)
(global-set-key (kbd "C-c e l") 'emms-play-playlist)
;; (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 u") 'emms-score-up-playing)
;; (global-set-key (kbd "C-c e d") 'emms-score-down-playing)
;; (global-set-key (kbd "C-c e o") 'emms-score-show-playing)

$cat ~/.emacs.d/init-radio.el

;M-x radio RET, you can play radio using mplayer

(defun radio ()
   (interactive)
   (let ((filename
    (ido-completing-read "which radio?: "
        (directory-files "/home/sw2wolf/radio/" nil "\\.pls$\\|\\.asx$"))))
   (async-shell-command
       (concat "mplayer -nocache -playlist /home/sw2wolf/radio/" filename) "*mplayer*" )
    (message "choosen: %s" filename)))

$cat ~/radio/livexwb.pls

mms://livexwb.cri.com.cn/am846.wsx

;收发邮件,看新闻

$cat~/.gnus.el

(setq gnus-select-method '(nntp "news.newsfan.net"))
(setq user-full-name "sw2wolf") 
(setq user-mail-address "***@163.com")

;;;;;;;;;;;;;;;;;;;;  
;;   语言环境设定  
;;;;;;;;;;;;;;;;;;;;  
(set-language-environment 'Chinese-GB)
(setq gnus-default-charset 'chinese-iso-8bit
      gnus-group-name-charset-group-alist '((".*" . cn-gb-2312))
      gnus-summary-show-article-charset-alist
      '((1 . cn-gb-2312)
    (2 . gb18030)
    (3 . chinese-iso-8bit)
    (4 . gbk)
    (5 . big5)
    (6 . utf-8))
      gnus-newsgroup-ignored-charsets  
      '(unknown-8bit x-unknown iso-8859-1))

;;;;;;;;;;;;;;;;;;;;  
;;自动显示图片  
;;;;;;;;;;;;;;;;;;;;  
(auto-image-file-mode)
(setq mm-inline-large-images t)  
(add-to-list 'mm-attachment-override-types "image/*")

  
(setq gnus-posting-styles  
      '((".*"  
     (name "sw2wolf")
     (address "***@163.com")
     (signature "e^pi+1=0")
     )))

;; set email reader 
(setq gnus-secondary-select-methods '((nnml ""))) ;nnfolder,nnmbox, nnml

;; set pop server 
(setq mail-sources 
	  '((pop :server "pop.163.com"   ;; 在这里设置 pop3 服务器
             :user "***@163.com"         ;; 用户名
             :port "pop3"
             :password "***")))          ;; 密码

;; set smtp 
(setq smtpmail-auth-credentials 
    '(("smtp.163.com"                ;; SMTP 服务器
       25                            ;; 端口号
       "***@163.com"                 ;; 用户名
       "***")))                      ;; 密码

(setq smtpmail-default-smtp-server "smtp.163.com") 
(setq smtpmail-smtp-server "smtp.163.com") 
(setq message-send-mail-function 'smtpmail-send-it)

;;html转换成txt查看
(eval-after-load "mm-decode"
  '(progn
	 (add-to-list 'mm-discouraged-alternatives "text/html")
	 (add-to-list 'mm-discouraged-alternatives "text/richtext")))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

$cat
~/.emacs.d/init-mew.el

(setq load-path (cons "/usr/local/share/emacs/site-lisp/mew" load-path))
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)

(setq mew-icon-directory "/usr/local/share/emacs/site-lisp/mew/etc")

;;设定将密码保存一段时间,默认20分钟 
(setq mew-use-cached-passwd t)
(setq mew-passwd-timer-unit 999)
(setq mew-passwd-lifetime 999)

;; mew-pop-size设置成0时,pop邮件大小没有限制
(setq mew-pop-size 0)  
;; 不删除服务器上的邮件  
(setq mew-pop-delete t)  

(if (boundp 'read-mail-command)
     (setq read-mail-command 'mew))
(autoload 'mew-user-agent-compose "mew" nil t)

(if (boundp 'mail-user-agent)
     (setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
     (define-mail-user-agent
        'mew-user-agent
        'mew-user-agent-compose
        'mew-draft-send-message
        'mew-draft-kill
        'mew-send-hook))

;;smtp服务器认证设定 
;(setq mew-smtp-auth-list (quote ("CRAM-MD5" "LOGIN" "PLAIN"))) 
;;smtp服务器不用认证采用下面设定 
(setq mew-smtp-auth-list nil)

(setq toolbar-mail-reader 'Mew)
(set-default 'mew-decode-quoted 't)

(when (boundp 'utf-translate-cjk)
       (setq utf-translate-cjk t)
       (custom-set-variables
          '(utf-translate-cjk t)))
(if (fboundp 'utf-translate-cjk-mode)
     (utf-translate-cjk-mode 1)) 

;
;;用w3m来读html格式邮件
;; 
(setq mew-mime-multipart-alternative-list '("Text/Html" "Text/Plain" "*."))
(condition-case nil
  (require 'mew-w3m)
  (file-error nil)) 
(setq mew-use-text/html t)

(setq mew-config-alist '(
    ("default"
         ("name"         .  "***")
         ("user"         .  "***")
         ("smtp-server"  .  "smtp.163.com")
         ("smtp-port"    .  "25")
         ("pop-server"   .  "pop.163.com")
         ("pop-port"     .  "110")
         ("smtp-user"    .  "***")
         ("pop-user"     .  "***")
         ("mail-domain"  .  "163.com")
         ("mailbox-type" .  pop)
         ("pop-auth"     .  pass)
         ("smtp-auth-list" . ("PLAIN" "LOGIN" "CRAM-MD5")))
    ("Foobar1"
         ("name"         .  "***")
         ("user"         .  "***")
         ("smtp-server"  .  "smtp.163.com")
         ("smtp-port"    .  "25")
         ("pop-server"   .  "pop.163.com")
         ("pop-port"     .  "110")
         ("smtp-user"    .  "***")
         ("pop-user"     .  "***")
         ("mail-domain"  .  "163.com")
         ("mailbox-type" .  pop)
         ("pop-auth"     .  pass)
         ("smtp-auth-list" . ("PLAIN" "LOGIN" "CRAM-MD5")))
	;; ("Foobar2"
    ;;      (mailbox-type          imap)
    ;;      (proto                 "%")
    ;;      (imap-server           "imap.gmail.com")
    ;;      (imap-user             "imapuser@gmail.com")
    ;;      (name                  "***")
    ;;      (user                  "***")
    ;;      (mail-domain           "gmail.com")
    ;;      (imap-size             0)
    ;;      (imap-delete           t)
    ;;      (imap-queue-folder     "%queue")
    ;;      (imap-trash-folder     "%Trash") ;; This must be in concile with your IMAP box setup
    ;;      (smtp-auth-list        ("PLAIN" "LOGIN" "CRAM-MD5")) 
    ;;      (smtp-user             "***@gmail.com")
    ;;      (smtp-server           "smtp.gmail.com"))
	;; news group comp.lang.lisp
	;; (usenet
    ;;     (mailbox-type         . mbox)
    ;;     (proto                . -)
    ;;     (nntp-server           "news.aioe.org")
    ;;     (nntp-user             nil) ;; should be nil default
    ;;     (nntp-header-only      nil)
    ;;     (nntp-newsgroup        "-comp.lang.lisp")
    ;;     (nntp-size             0)
    ;;     (nntp-msgid-user       "***")
    ;;     (smtp-auth-list        ("PLAIN" "LOGIN" "CRAM-MD5"))
    ;;     (smtp-user             "***@gmail.com")
    ;;     (smtp-server           "smtp.gmail.com")
 
    ;;     (mailinglist
    ;;      (mailbox-type          pop)
    ;;      (proto                 +)
    ;;      (pop-server            "pop.gmail.com")
    ;;      (name                  "***")
    ;;      (user                  "***")
    ;;      (mail-domain           "gmail.com")
    ;;      (pop-auth              pass)
    ;;      (pop-user              "***@gmail.com")
    ;;      (smtp-user             "***@gmail.com")
    ;;      (smtp-server           "smtp.gmail.com")))
))

(setq mew-ssl-verify-level 0)


;;;;;;;;;;;;;;;;;;;;;; 
;;信件引用设置 
;;;;;;;;;;;;;;;;;;;;;; 
(setq mew-cite-fields '("From:" "Subject:" "Date:" "Message-ID:")) 
(setq mew-cite-format "From: %s\nSubject: %s\nDate: %s\nMessage-ID: %s\n\n") 
(setq mew-cite-prefix-function 'mew-cite-prefix-username) 

;;gnus可以将密码放在配置文件里,收邮件的时候就不用输入密码了 
;;我找了一下,发现下面这个变量应该有类似功能,但没有搞掂,高人帮忙! 
;(setq mew-passwd-alist '(hvjhvjhvj)


;; 默认的邮件保存在~/Mail,里面的文件Addrbook是地址本设置,设置好,在写邮件时可以自动补全,同gnus里使用bbdb一样,也有组群发功能。 

;; 一个地址簿样本: 

;; 代码: 
;; hvj hvj@hvj.org 
;; hhh hhh@hvj.org 
;; h hvj, hhh

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

$cat
~/.emacs.d/init-dict.el

;;stardict
;; author: pluskid
;; 调用 stardict 的命令行接口来查辞典
;; 如果选中了 region 就查询 region 的内容,否则就查询当前光标所在的词
(global-set-key (kbd "C-c d") 'kid-star-dict)
;(global-set-key [mouse-3] 'kid-star-dict);;鼠标右键
(defun kid-star-dict ()
    (interactive)
    (let ((begin (point-min))
          (end (point-max)))
        (if mark-active
            (setq begin (region-beginning)
                  end (region-end))
            (save-excursion (backward-word) (mark-word)
                (setq begin (region-beginning)
                      end (region-end))))

;; 有时候 stardict 会很慢,所以在回显区显示一点东西
;; 以免觉得 Emacs 在干什么其他奇怪的事情。
    (message "searching for %s ..." (buffer-substring begin end))
    (tooltip-show (shell-command-to-string (concat "sdcv -n " (buffer-substring begin end))))))

;You need to download stardict-langdao-ec-gb-2.4.2.tar.bz2 and extract it into ~/.stardict

;$ls ~/.stardict/dic/stardict-langdao-ec-gb-2.4.2

langdao-ec-gb.dict
langdao-ec-gb.idx
langdao-ec-gb.idx.oft

langdao-ec-gb.ifo

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


抱歉!评论已关闭.