一个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-") 'windmove-left)
(global-set-key (kbd "C-") 'windmove-right)
(global-set-key (kbd "C-") 'windmove-up)
(global-set-key (kbd "C-") '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 "") 'open-shell-other-buffer)
(global-set-key (kbd "") 'describe-char)
(global-set-key (kbd "") 'find-file-at-point)
(global-set-key (kbd "") 'forward-whitespace)
(global-set-key (kbd "") '(lambda () (interactive) (insert #x3bb)))
;;√:#x221a) π:#x3c0) λ:#x3bb ∑:#x2211
(global-set-key (kbd "") '(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" >> #
;; 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 "[email protected]")
;; (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 [email protected]
;; hhh [email protected]
;; 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.ifo
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;