一个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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;