﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-YIYE的BLOG-随笔分类-Freebsd</title><link>http://www.cnitblog.com/yiye/category/5405.html</link><description>随便写写。累了.

警告:我的Blog并未迁移.
http://www.15661588.cn 这个是假冒的!  小心!
增加一个骗子QQ:80811541  卖外挂的!</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 09:37:47 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 09:37:47 GMT</pubDate><ttl>60</ttl><item><title>我是如何从 vim 转向 emacs 的*转载*</title><link>http://www.cnitblog.com/yiye/archive/2007/03/14/24040.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Wed, 14 Mar 2007 09:25:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2007/03/14/24040.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/24040.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2007/03/14/24040.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/24040.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/24040.html</trackback:ping><description><![CDATA[<p>以前，我多次试图从 vim 转变到 emacs 都失败了。原因很多，主要原因是 vim 的确一个很强大的 editor 不愧为 emacs 的主要竞争对手，vim 很多强大的功能，很难在 emacs 中找到相应的功能，那个时候还没有这个版，如果有的话，情况会好一些, 还有一个原因就是我周围几乎没有人用 emacs ，现在也是。</p>
<p>emacs 的入门比较 vim 要困难很多，我指的入门不是指简单的使用，而是高效的使用。vim 的很多操作几乎不需要配置就可以完成了，但是如果离开我那些复杂的 .emacs 文件，我认为 emacs 并不比 vim 好。有了我的 .emacs ， emacs 绝对是最好的 platform (not only an editor) ，因为他是我的软件，一些我常用的功能，都是按照我的方式工作的，而且我可以随时实现我喜欢的功能，也许别人不喜欢这样的操作，但是我喜欢，我可以让 emacs 让我喜欢的方式操作。几乎没有其它软件可以做到这一点。</p>
<p>我转变到 emacs 是一个痛苦和偶然的过程。我曾经煞有介事的&#8220;学习&#8221; emacs ， 写了很多笔记，现在看来，很傻，emacs 不是学出来的，是用出来的，很多功能不是用脑子记住的，而是用手记住的，我们不得不承认，有的时候肌肉的记忆能力，要比脑子的记忆能力强，而且快速，实用。很多体育运动员不就是用大量的训练提高肌肉对动作的记忆吗？</p>
<p>一次偶然的机会我发现了几个 vim 无法代替的几个功能，于是我开始真正喜欢 emacs 了。</p>
<p>首先是编写 TeX 文件的时候，很多数学符号可以快速的输入，可以方便的生成 dvi 文件，可以快速的输入 TeX 特有的特殊符号。</p>
<p>然后是 Python mode ，他是非常好的 Python 的 IDE ，可以很容易的编写 Python 程序，尤其是 Python 程序中用缩进来表示语法结构，在 Emacs 中很容易处理缩进。很容易把一段代码放入到Python 的解释器中执行，然后在解释器中交互的测试程序。参见 <a href="http://ann77.stu.cdut.edu.cn/PythonNote.html">我的Python 学习笔记</a></p>
<p>一个编辑 C or C++ 的时候的一些功能，例如 auto insert 功能， hungry delete, M-SPC(M-x just-on-space) indent 功能 (TAB) ，在 emacs 中写出来的程序，是最漂亮的格式。最重要的是还可以选择自己喜欢的 c style 。 当然 vim 中也可以，但是默认的是用 tab 键格式化 ，这样的缺点就是不能保证程序在所有的编辑器中都是一样的效果，但是我以前也用 TAB 来 indent ，原因是我不愿意输入很多 space 。而且 vim 对重新 indent 一段代码的功能也不是很好，尽管 g= 等等键也可以工作，但是不如 emacs 中的好。</p>
<p>vim 中的很多编辑命令要比 emacs 快的多，只要输入很少的键。</p>
<p>但是, 我认为中 emacs 的理念是，有很多工作，做好不要让用户记住那些快键，按照用户的习惯，猜想用户（主人）的意思，默默的做好(讨好)用户就行了。</p>
<p>例如，在 C 中，我们习惯用 tab 键来 indent 程序。那么就用 tab 键来 完成 M-x indent-line 的功能。我们经常在输入分号之后，输入一个回车，那好，emacs 就根据上下文猜测应该回车的地方，自动回车。你想删除很多空格，那好，emacs 就会根据上下文，只留下一个空格(M-x just-on-line) 或者空行(M-x delete-blank-line) ，如果你在只有一个空行下还要 M-x delete-blank-line ，那么就把single blank line 也删掉。</p>
<p>还有的功能也很好用。 </p>
<pre class=example>C-c C-c (M-x comment-region)<br>C-u C-c C-c uncomment-region<br></pre>
<p>还有自动补齐右边括号，补齐引号的功能，还有补齐大花括号的功能。参见<a href="http://ann77.stu.cdut.edu.cn/EmacsAutoInsertBrace.html">Emacs 中自动添加有半边括号的功能</a> 和 <a href="http://ann77.stu.cdut.edu.cn/EmacsElectricBrace.html">写C程序，输入左大花扩号自动补齐很多东西</a></p>
<p>还有 abbrivate 扩展的功能。</p>
<p>还有 fly spell 的功能。 emacs 知道主人是个粗心的人自动提示主人错了，但是 emacs 从来不把主人当傻瓜，不会自作聪明的改动，只有主人真的承认说，我错了 (按M-$)(注：我记不住具体的 M-x 命令了，可以用C-h k 查一个键的bind 的函数，记做 help key bind , 也可以用 C-h w 记做 help where， 查找一个函数的快键是什么 ) ，emacs 就提示很多可选的单词，供主人选择。 我记得有一个著名的把用户当作傻瓜的软件，总是把句子的行首单词 Capitalize，而且自动把他认为错了的单词改过来，每次我都要费尽心机想办法，怎么把这个功能关掉。</p>
<p>还有 auto fill 的功能， M-q 也总能干正确的事情。</p>
<p>还有 version control 的功能，emacs 几乎不用主人亲自备份文件了，他知道应该在合适的时候，备份文件。</p>
<p>还有 auto insert 的功能，他会自动根据环境，把当前的文件增加可执行权限，参见<a href="http://ann77.stu.cdut.edu.cn/EmacsChmodOnSave.html">在保存文件的时候，会自动给脚本增加可执行权限</a></p>
<p>还可以自动增加 </p>
<pre class=example>#!/bin/bash or #!/bin/perl #!/bin/python 。<br></pre>
参见<a href="http://ann77.stu.cdut.edu.cn/EmacsTemplate.html">Emacs 在创建文件的时候，自动添加 template 的内容</a>
<p>header.el的扩展还可以自动插入和更新 C 文件中的开头的一些信息，包括文件名称，创建日期，改动次数，纪录谁在什么时候为什么做了修改。还有公司信息，作者信息，版权信息等等。参见 <a href="http://ann77.stu.cdut.edu.cn/EmacsSourceCodeHeader.html">轻轻松松为源 程序增加文件头信息</a></p>
<p>还有 emacs 有很多程序无缝结合 ，如 python, perl， octave(matlab), gdb, pydb 等等，emacs 是最好的 IDE 了。</p>
<p>总之，驯化了的 emacs 是你的忠实的奴仆，他会按照主人的方式工作，猜想主人的意图。</p>
<p>然而，有的时候 emacs 是奔放的野马,总是难以驾驭，要想emacs 按照主人的意志工作，那么主人就有义务详细的告诉他该如何工作。</p>
<p>有两种办法，一种是向其他主人学习，请教，按照他的办法驯化 emacs 。</p>
<p>另一种办法是掌握 emacs 的高级用法，只有了解他的语言， Elisp (Emacs Lisp) ，明白了 emacs 的语言，才能够和 emacs 很好的交流，沟通， emacs 是一个很听话的孩子。</p>
<p>如果要融入 emacs 的文化，或者叫理念，甚至叫宗教， 那么就要 Hack 他的程序，了解他的五脏六腑，做一个 hacker。（注: hacker is NOT cracker ) 除了安装emacs-x-xx.rpm 还要安装 emacs-el.x-xx.rpm , 然后用 M-x find-function 看任何一个函数是如何实现的。</p>
<p>浏览了一会儿，你会感到什么是自由软件，什么是真正的自由。只要你愿意，你可以探索任何一个功能是怎么实现的。</p>
<p>使用其他的软件的时候，我总是在想办法发现软件提供给我什么功能，我怎样按照软件定义好的方式工作，我怎么去适应软件。</p>
<p>如果运气不好，碰到一个自以为是的软件，我会觉得被软件的作者愚弄。</p>
<p>如果运气再差一点，我会觉得被软件的作者侮辱，因为他把我当成傻瓜。</p>
<p>当然，也有运气好的时候，例如 vim ，他的编辑方式是最快的方式。</p>
<p>但是 emacs 不同，使用 emacs 的时候，我会想我喜欢用什么样的方式完成某个功能，大多数的情况，都可以简单的用 global-set-key, or local-set-key 解决掉。如果功能很复杂，就查找一下是不是有人实现过了， emacs 的社区中有很多好心人， www.emacswiki.org 是一个好地方。如果没有人实现，那么就自己写一个，然后贴到网上去。</p>
<p>开放，自由，这就是 emacs 。</p>
<p>emacs 总是想办法如何适用用户的方式，当然，缺点就是，初看上去 , emacs 不是很友好， 用户需要学习如何配置emacs 。</p>
<p>现在我很喜欢摆弄 emacs ， 我知道，只要我想得到，emacs 一般是可以做得到， 当然我想的要合理，我想买彩票中500万，emacs 肯定做不到 ，而且还不能和其他你需要的功能冲突。</p>
<p>有一项功能我一直没有想办法办到，就是类似 source in sight 的自动搜索一个函数的 caller ，自动成员变量补全，class browser 等等。这个功能很难，因为他要包含语言的语法语义分析。 C++ 中的 template , typedef , #define #if ， inline function, inner class (or structure, enum) , name space 等等的语言特性，增加了其难度。</p>
<p>尽管 semantic 号称可以，但是和 source in sight 还有差距。我用了几次，不好用， ECB 也是不伦不类。</p>
<p>我认为 semantic 的目标太大了，他要容纳所有语言的语法语义模糊分析的功能，这个很难，尽管他的作者是大名鼎鼎的 eric 。</p>
<p>我还是很喜欢 semantic ，因为我相信他行，于是我试图 hack semantic ，实现那些功能，尽管自动补全成员变量的功能，勉强可以了，但是其他复杂的功能，还是很难实现。semantic 太复杂了。</p>
<p>但是一有时间，我还是喜欢看上 semantic 几眼。</p>
<p>我这篇文章是用 notepad 编辑的，于是顺便列举一些 emacs 和 notepad 类似的功能，参见<a href="http://ann77.stu.cdut.edu.cn/EmacsNotepadLike.html">类似Notepad 基本操作快速入门</a></p>
<p><br></p>
<p><a href="http://ann77.stu.cdut.edu.cn/EmacsNotepadLike.html">原文出自:http://ann77.stu.cdut.edu.cn/EmacsFromViToEmacs.html<br></a></p>
<img src ="http://www.cnitblog.com/yiye/aggbug/24040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2007-03-14 17:25 <a href="http://www.cnitblog.com/yiye/archive/2007/03/14/24040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的emacs配置文件~~~</title><link>http://www.cnitblog.com/yiye/archive/2007/03/14/24039.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Wed, 14 Mar 2007 09:24:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2007/03/14/24039.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/24039.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2007/03/14/24039.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/24039.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/24039.html</trackback:ping><description><![CDATA[虽然不适自己写的 。但是已经感觉很好用了!里面的代码都是从 很多份EMACS配置文件中剪切出来的！<br><br>;; -*-Emacs-Lisp-*-<br><br>;; This file is designed to be re-evaled; use the variable first-time<br>;; to avoid any problems with this.<br>(defvar first-time t<br>&nbsp; "Flag signifying this is the first time that .emacs has been evaled")<br><br>;; Meta<br>(global-set-key "\M- " 'set-mark-command)<br>(global-set-key "\M-\C-h" 'backward-kill-word)<br>(global-set-key "\M-\C-r" 'query-replace)<br>(global-set-key "\M-r" 'replace-string)<br>(global-set-key "\M-g" 'goto-line)<br>(global-set-key "\M-h" 'help-command)<br><br>;; Function keys<br>(global-set-key [f1] 'manual-entry)<br>(global-set-key [f2] 'info)<br>(global-set-key [f3] 'repeat-complex-command)<br>(global-set-key [f4] 'advertised-undo)<br>(global-set-key [f5] 'eval-current-buffer)<br>(global-set-key [f6] 'buffer-menu)<br>(global-set-key [f7] 'other-window)<br>(global-set-key [f8] 'find-file)<br>(global-set-key [f9] 'save-buffer)<br>(global-set-key [f10] 'next-error)<br>(global-set-key [f11] 'compile)<br>(global-set-key [f12] 'grep)<br>(global-set-key [C-f1] 'compile)<br>(global-set-key [C-f2] 'grep)<br>(global-set-key [C-f3] 'next-error)<br>(global-set-key [C-f4] 'previous-error)<br>(global-set-key [C-f5] 'display-faces)<br>(global-set-key [C-f8] 'dired)<br>(global-set-key [C-f10] 'kill-compilation)<br><br>;; Keypad bindings<br>(global-set-key [up] "\C-p")<br>(global-set-key [down] "\C-n")<br>(global-set-key [left] "\C-b")<br>(global-set-key [right] "\C-f")<br>(global-set-key [home] "\C-a")<br>(global-set-key [end] "\C-e")<br>(global-set-key [prior] "\M-v")<br>(global-set-key [next] "\C-v")<br>(global-set-key [C-up] "\M-\C-b")<br>(global-set-key [C-down] "\M-\C-f")<br>(global-set-key [C-left] "\M-b")<br>(global-set-key [C-right] "\M-f")<br>(global-set-key [C-home] "\M-&lt;")<br>(global-set-key [C-end] "\M-&gt;")<br>(global-set-key [C-prior] "\M-&lt;")<br>(global-set-key [C-next] "\M-&gt;")<br><br>;; Mouse<br>(global-set-key [mouse-3] 'imenu)<br><br>;; Misc<br>(global-set-key [C-tab] "\C-q\t")&nbsp;&nbsp; ; Control tab quotes a tab.<br>(setq backup-by-copying-when-mismatch t)<br><br>;; Treat 'y' or &lt;CR&gt; as yes, 'n' as no.<br>(fset 'yes-or-no-p 'y-or-n-p)<br>(define-key query-replace-map [return] 'act)<br>(define-key query-replace-map [?\C-m] 'act)<br><br>;; Load packages<br>(require 'desktop)<br>(require 'tar-mode)<br><br>;; Pretty diff mode<br>(autoload 'ediff-buffers "ediff" "Intelligent Emacs interface to diff" t)<br>(autoload 'ediff-files "ediff" "Intelligent Emacs interface to diff" t)<br>(autoload 'ediff-files-remote "ediff"<br>&nbsp; "Intelligent Emacs interface to diff")<br><br>(if first-time<br>&nbsp;&nbsp;&nbsp; (setq auto-mode-alist<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (append '(("\\.cpp$" . c++-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("\\.hpp$" . c++-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("\\.lsp$" . lisp-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("\\.scm$" . scheme-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("\\.pl$" . perl-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("\\.py$" . python-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("\\.php$" . php-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) auto-mode-alist)))<br><br>;; Auto font lock mode<br>(defvar font-lock-auto-mode-list<br>&nbsp; (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode'python-mode'php-mode)<br>&nbsp; "List of modes to always start in font-lock-mode")<br><br>(defvar font-lock-mode-keyword-alist<br>&nbsp; '((c++-c-mode . c-font-lock-keywords)<br>&nbsp;&nbsp;&nbsp; (perl-mode . perl-font-lock-keywords))<br>&nbsp; "Associations between modes and keywords")<br><br>(defun font-lock-auto-mode-select ()<br>&nbsp; "Automatically select font-lock-mode if the current major mode is in font-lock-auto-mode-list"<br>&nbsp; (if (memq major-mode font-lock-auto-mode-list)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp; (font-lock-mode t))<br>&nbsp;&nbsp;&nbsp; )<br>&nbsp; )<br><br>(global-set-key [M-f1] 'font-lock-fontify-buffer)<br><br>;; New dabbrev stuff<br>;(require 'new-dabbrev)<br>(setq dabbrev-always-check-other-buffers t)<br>(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_")<br>(add-hook 'emacs-lisp-mode-hook<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda ()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set (make-local-variable 'dabbrev-case-fold-search) nil)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set (make-local-variable 'dabbrev-case-replace) nil)))<br>(add-hook 'c-mode-hook<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda ()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set (make-local-variable 'dabbrev-case-fold-search) nil)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set (make-local-variable 'dabbrev-case-replace) nil)))<br>(add-hook 'text-mode-hook<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(lambda ()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set (make-local-variable 'dabbrev-case-fold-search) t)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set (make-local-variable 'dabbrev-case-replace) t)))<br><br>;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C&nbsp; mode<br>(add-hook 'c-mode-hook 'hs-minor-mode)<br>(defun my-c-mode-auto-pair ()<br>&nbsp; (interactive)<br>&nbsp; (make-local-variable 'skeleton-pair-alist)<br>&nbsp; (setq skeleton-pair-alist&nbsp; '(<br>&nbsp;&nbsp;&nbsp; (?` ?` _ "''")<br>&nbsp;&nbsp;&nbsp; (?\( ?&nbsp; _ " )")<br>&nbsp;&nbsp;&nbsp; (?\[ ?&nbsp; _ " ]")<br>&nbsp;&nbsp;&nbsp; (?{ \n &gt; _ \n ?} &gt;)))<br>&nbsp; (setq skeleton-pair t)<br>&nbsp; (local-set-key (kbd "(") 'skeleton-pair-insert-maybe)<br>&nbsp; (local-set-key (kbd "{") 'skeleton-pair-insert-maybe)<br>&nbsp; (local-set-key (kbd "`") 'skeleton-pair-insert-maybe)<br>&nbsp; (local-set-key (kbd "[") 'skeleton-pair-insert-maybe))<br>(add-hook 'c-mode-hook 'my-c-mode-auto-pair)<br><br>;; C++ and C mode...<br>(defun my-c++-mode-hook ()<br>&nbsp; (setq tab-width 4)<br>&nbsp; (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)<br>&nbsp; (define-key c++-mode-map "\C-ce" 'c-comment-edit)<br>&nbsp; (setq c++-auto-hungry-initial-state 'none)<br>&nbsp; (setq c++-delete-function 'backward-delete-char)<br>&nbsp; (setq c++-tab-always-indent t)<br>&nbsp; (setq c-indent-level 4)<br>&nbsp; (setq c-continued-statement-offset 4)<br>&nbsp; (setq c++-empty-arglist-indent 4))<br><br>(defun my-c-mode-hook ()<br>&nbsp; (setq tab-width 4)<br>&nbsp; (define-key c-mode-map "\C-m" 'reindent-then-newline-and-indent)<br>&nbsp; (define-key c-mode-map "\C-ce" 'c-comment-edit)<br>&nbsp; (setq c-auto-hungry-initial-state 'none)<br>&nbsp; (setq c-delete-function 'backward-delete-char)<br>&nbsp; (setq c-tab-always-indent t)<br>;; BSD-ish indentation style<br>&nbsp; (setq c-indent-level 4)<br>&nbsp; (setq c-continued-statement-offset 4)<br>&nbsp; (setq c-brace-offset -4)<br>&nbsp; (setq c-argdecl-indent 0)<br>&nbsp; (setq c-label-offset -4))<br><br>;; Perl mode<br>(defun my-perl-mode-hook ()<br>&nbsp; (setq tab-width 4)<br>&nbsp; (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)<br>&nbsp; (setq perl-indent-level 4)<br>&nbsp; (setq perl-continued-statement-offset 4))<br><br>;; Scheme mode...<br>(defun my-scheme-mode-hook ()<br>&nbsp; (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent))<br><br>;; Emacs-Lisp mode...<br>(defun my-lisp-mode-hook ()<br>&nbsp; (define-key lisp-mode-map "\C-m" 'reindent-then-newline-and-indent)<br>&nbsp; (define-key lisp-mode-map "\C-i" 'lisp-indent-line)<br>&nbsp; (define-key lisp-mode-map "\C-j" 'eval-print-last-sexp))<br><br>;; Add all of the hooks...<br>(add-hook 'c++-mode-hook 'my-c++-mode-hook)<br>(add-hook 'c-mode-hook 'my-c-mode-hook)<br>(add-hook 'scheme-mode-hook 'my-scheme-mode-hook)<br>(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook)<br>(add-hook 'lisp-mode-hook 'my-lisp-mode-hook)<br>(add-hook 'perl-mode-hook 'my-perl-mode-hook)<br>(add-hook 'php-mode-hook 'my-php-mode-hook)<br><br>;; Complement to next-error<br>(defun previous-error (n)<br>&nbsp; "Visit previous compilation error message and corresponding source code."<br>&nbsp; (interactive "p")<br>&nbsp; (next-error (- n)))<br><br>;; Misc...<br>(transient-mark-mode 1)<br>(setq mark-even-if-inactive t)<br>(setq visible-bell nil)<br>(setq next-line-add-newlines nil)<br>(setq compile-command "make")<br>(setq suggest-key-bindings nil)<br>(put 'eval-expression 'disabled nil)<br>(put 'narrow-to-region 'disabled nil)<br>(put 'set-goal-column 'disabled nil)<br>(if (&gt;= emacs-major-version 21)<br>&nbsp;&nbsp;&nbsp; (setq show-trailing-whitespace t))<br><br>;; Elisp archive searching<br>(autoload 'format-lisp-code-directory "lispdir" nil t)<br>(autoload 'lisp-dir-apropos "lispdir" nil t)<br>(autoload 'lisp-dir-retrieve "lispdir" nil t)<br>(autoload 'lisp-dir-verify "lispdir" nil t)<br><br>;; X11 or PC using direct screen writes<br>(if window-system<br>&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (global-set-key [M-f1] 'hilit-repaint-command)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (global-set-key [M-f2] [?\C-u M-f1])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq hilit-mode-enable-list<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(not text-mode c-mode c++-mode emacs-lisp-mode lisp-mode<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scheme-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hilit-auto-highlight nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hilit-auto-rehighlight 'visible<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hilit-inhibit-hooks nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hilit-inhibit-rebinding t)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (require 'hilit19)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (require 'paren))<br>&nbsp; (setq baud-rate 2400)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; For slow serial connections<br>&nbsp; )<br><br>;; TTY type terminal<br>(if (and (not window-system)<br>&nbsp;&nbsp;&nbsp;&nbsp; (not (equal system-type 'ms-dos)))<br>&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if first-time<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (keyboard-translate ?\C-h ?\C-?)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (keyboard-translate ?\C-? ?\C-h)))))<br><br>;; Under UNIX<br>(if (not (equal system-type 'ms-dos))<br>&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if first-time<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (server-start))))<br><br>;; Add any face changes here<br>(add-hook 'term-setup-hook 'my-term-setup-hook)<br>(defun my-term-setup-hook ()<br>&nbsp; (if (eq window-system 'pc)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br>;;&nbsp; (set-face-background 'default "red")<br>&nbsp;&nbsp;&nbsp; )))<br><br>;; Restore the "desktop" - do this as late as possible<br>(if first-time<br>&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (desktop-load-default)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (desktop-read)))<br><br>;; Indicate that this file has been read at least once<br>(setq first-time nil)<br><br>;; No need to debug anything now<br><br>(setq debug-on-error nil)<br><br>;; All done<br>(message "All done, %s%s" (user-login-name) ".")<br><br>(setq auto-mode-alist<br><br>&nbsp;(cons '("\\.py$" . python-mode) auto-mode-alist))<br>&nbsp;<br>(setq interpreter-mode-alist<br><br>&nbsp;(cons '("python" . python-mode)<br><br>&nbsp;interpreter-mode-alist))<br>(autoload 'python-mode "python-mode" "Python editing mode." t)<br><br>;;; add these lines if you like color-based syntax highlighting<br><br>(global-font-lock-mode t)<br><br>(setq font-lock-maximum-decoration t)<br><br>(set-language-environment 'Chinese-GB)<br><br>(set-keyboard-coding-system 'euc-cn)<br><br>(set-clipboard-coding-system 'euc-cn)<br><br>(set-terminal-coding-system 'euc-cn)<br><br>(set-buffer-file-coding-system 'euc-cn)<br><br>(set-selection-coding-system 'euc-cn)<br><br>(modify-coding-system-alist 'process "*" 'euc-cn)<br><br>(setq default-process-coding-system <br><br>&nbsp;'(euc-cn . euc-cn))<br><br>(setq-default pathname-coding-system 'euc-cn)<br><br>(show-paren-mode t)<br>(setq show-paren-style 'parentheses)<br><br>(mouse-avoidance-mode 'animate)<br><br>(auto-image-file-mode)<br><br>(setq inhibit-startup-message t)<br><br>(setq inhibit-startup-message t)<br><br>;; 加载显示行号模块<br>(require 'display-line-number)<br>;; 如果想所有打开的文件都显示行的话就打开下面的注释<br>(global-display-line-number-mode 1)<br>;; 设置显示格式<br>(setq display-line-number-format "%4d|")<br>;; 在 tool bar 上增加一个图标，<br>;; 注意: 一定要在 load-path 中 可以找到 display-line-nuber.xpm 文件才行。<br>;;<br>(tool-bar-add-item "display-line-number"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'display-line-number-mode<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'display-line-number-mode<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :help "display line number!"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :button (cons :toggle&nbsp; '(and (boundp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display-line-number-mode)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; display-line-number-mode)))<br><br>;;<br>;; 使用方法<br>;; M-x display-line-number-mode<br>;; 用来 toggle 显示行号的模式<br>;; M-x display-line-number-mode-on<br>;; 启动显示行号的模式<br>;; M-x display-line-number-mode-off<br>;; 关闭显示行号的模式<br>;; 仅对某种 mode 启动显示行号的模式<br>;; (add-hook 'c-mode-hook 'display-line-number-mode)<br><br>(add-to-list 'load-path "~/Emacs/myconfig/color-themes")<br>(require 'color-theme)<br>(setq color-themes-directory-name "~/Emacs/myconfig/color-themes")<br>(if (display-graphic-p)<br>&nbsp;&nbsp;&nbsp; (setq color-themes-directory-name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (concat color-themes-directory-name "/gui"))<br>&nbsp; (setq color-themes-directory-name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (concat color-themes-directory-name "/console")))<br><br><br>(let* ((files (directory-files color-themes-directory-name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "^[^.].*\.el$"))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (randnum (% (abs (random t)) (length files )))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (selected-filename (nth randnum files)))<br>&nbsp; (load selected-filename)<br>&nbsp; (my-color-theme))<br><br>(defun wcy-color-theme-edit ()<br>&nbsp; (interactive)<br>&nbsp; (find-file current-color-theme-file-name))<br><br><br>(defun wcy-color-theme-apply ()<br>&nbsp; (interactive)<br>&nbsp; (my-color-theme)<br>&nbsp; (wcy-color-theme-adjust-hl-mode-face))<br>(defun wcy-color-theme-load-theme ( name)<br>&nbsp; (setq current-color-theme-file-name (concat color-themes-directory-name name ".el"))<br>&nbsp; (load current-color-theme-file-name))<br>(defun wcy-select-color-theme ()<br>&nbsp; (interactive)<br>&nbsp; (let* ((files (mapcar<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (function (lambda (s)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (list (replace-regexp-in-string "\\(.*\\)\\.el$" "\\1" s))))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (directory-files color-themes-directory-name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "^[^.].*\\.el$")))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (theme (completing-read "Input a theme:"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; files)))<br>&nbsp;&nbsp;&nbsp; (wcy-color-theme-load-theme theme)<br>&nbsp;&nbsp;&nbsp; (wcy-color-theme-apply)))<br>(defun wcy-random-select-color (&amp;optional prefer)<br>&nbsp; (interactive)<br>&nbsp; (let* ((files (mapcar<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (function (lambda (s)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (replace-regexp-in-string "\\(.*\\)\\.el$" "\\1" s)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (directory-files color-themes-directory-name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "^[^.].*\\.el$")))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (randnum (% (abs (random t)) (length files )))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (theme (nth randnum files)))<br>&nbsp;&nbsp;&nbsp; (wcy-color-theme-load-theme theme)<br>&nbsp;&nbsp;&nbsp; (wcy-color-theme-apply)))<br><br><br>(require 'hl-line)<br>;;(hl-line-mode -1)<br>;;(global-hl-line-mode -1)<br>;; for hight line mode<br>(or (facep 'my-hl-line-face) (make-face 'my-hl-line-face))<br>(setq hl-line-face 'my-hl-line-face)<br>(face-spec-set 'my-hl-line-face '((t (<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :background "DodgerBlue3"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;:bold<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;:weight nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :inverse-video nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ))))<br>(defun wcy-color-theme-adjust-hl-mode-face()<br>&nbsp; "interactive"<br>&nbsp; (let* ((color&nbsp; (x-color-values (face-attribute 'default :background))))<br>&nbsp;&nbsp;&nbsp; (if (null color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (error "not support.")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (let ((my-color (mapcar<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (lambda (x)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (let ((y (/ #XFFFF 4))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (delta #X18FF))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cond<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((&lt; x (* y 1))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (+ x delta))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((&lt; x (* y 2))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (+ x delta))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((&lt; x (* y 3))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (- x delta))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (t<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (- x delta)))))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (message "%S %S" color my-color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (set-face-attribute<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'my-hl-line-face nil<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :background<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (concat "#"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (mapconcat<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (lambda (c) (format "%04X" c))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my-color<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "")))))))<br>(wcy-color-theme-adjust-hl-mode-face)<br>&nbsp;&nbsp; <br><br><br>
<img src ="http://www.cnitblog.com/yiye/aggbug/24039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2007-03-14 17:24 <a href="http://www.cnitblog.com/yiye/archive/2007/03/14/24039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>E17的 汉化方法</title><link>http://www.cnitblog.com/yiye/archive/2007/01/26/22317.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Thu, 25 Jan 2007 17:43:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2007/01/26/22317.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/22317.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2007/01/26/22317.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/22317.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/22317.html</trackback:ping><description><![CDATA[<span class=postbody>Enlightenment DR17 安装和配置比较简单和方便： <br>到/usr/ports/x11-wm/enlightenment-devel里make install clean即可。 <br>然后在home里加入exec enlightenment到.xinitrc和.xsession，用startx即可进入 <br>桌面环境。 <br>中文可能会显示成方框，可以通过这样解决： <br>在菜单倒数第3项--&gt;第1项--&gt;Fonts选择后，即可看到Font Settings配置： <br>将所有项目中的Font都设置为verdana,Font Size为12.0pixels，并选中Enable Font Class(关键)，应用后即可。 <br></span>
<img src ="http://www.cnitblog.com/yiye/aggbug/22317.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2007-01-26 01:43 <a href="http://www.cnitblog.com/yiye/archive/2007/01/26/22317.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Freebsd 下 MOUNT用法</title><link>http://www.cnitblog.com/yiye/archive/2007/01/16/21953.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Tue, 16 Jan 2007 14:46:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2007/01/16/21953.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/21953.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2007/01/16/21953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/21953.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/21953.html</trackback:ping><description><![CDATA[freebsd下mount总结&nbsp;
<div class=post-text>1.mount FAT/FAT32分区：(C盘为例) <br><br>mount -t msdos /dev/ad0s1 /mnt <br>或 <br>mount_msdos /dev/ad0s1 /mnt for 4.x <br><br>mount_msdosfs /dev/ad0s1 /mnt for 5.x <br><br>2.mout Windows的扩展分区(FAT/FAT32)： <br><br>命令和1一样，只是要记住：扩展分区从s5开始，例如mount D盘,可用： <br><br>mount -t msdos /dev/ad0s5 /mnt <br>mount_msdos /dev/ad0s5 /mnt for 4.x <br>mount_msdosfs /dev/ad0s5 /mnt for 5.x <br><br><br>3.mount NTFS分区：(C盘为例) <br><br>mount -t ntfs /dev/ad0s1 /mnt <br>或 <br>mount_ntfs /dev/ad0s1 /mnt <br><br>注意1.chinese/gbfs 的 ntfs 似乎有问题，不建议玩家级用户使用 <br><br>注意2.：要让mount上的windows 分区(或CD-ROM)显示中文，需要升级你的ports，再安装gbfs: <br><br>#cd /usr/ports/chinese/gbfs <br>#make install clean <br><br>然后编译内核，注释掉options CD9660 <br><br>options MSDOS <br><br>注意3.在5.1-current上不用安装gbfs,用： <br><br>mount_msdosfs -L zh_CN.GB18030 /dev/ad0sX /mnt <br><br>命令就可以支持FAT32分区上的中文文件名，当然，locale可以不用18030，zh_CN.eucCN, zh_CN.GBK都可以！ <br><br>4.mount Linux Ext2fs/Ext3fs: <br><br>在内核里面加入options EXT2FS，编译内核。 <br>mount 的时候用mount_ext2fs 命令即可,ext3fs的mount也用mount_ext2fs <br><br>5.mount 普通数据光盘： <br><br>mount_cd9660 /dev/acd0 /cdrom <br><br>6.mount ISO 文件 <br><br>在5.x中如下 <br><br>mdconfig -a -t vnode -f abc.iso -u 1 <br>mount_cd9660 /dev/md1 /cdrom <br><br>4.8的版本 <br><br>vnconfig /dev/vn0 /home/xiaoche/a.iso <br>mount -t cd9660 /dev/vn0 /mnt <br><br>umount /mnt <br>vnconfig -u /dev/vn0 <br><br>7.mount CD、VCD、DVD <br><br>播放CD、VCD、DVD不用先mount上。 <br>如果你一定要mount上，可以这样： <br>#mount _cd9660 -s 0 /dev/acd0a /cdrom <br><br>8.mount 软盘： <br><br>1.Format: <br># /usr/sbin/fdformat -f 1440 /dev/fd0 <br>2. Run disklabel: <br># /sbin/disklabel -B -r -w /dev/fd0 fd1440 <br>3.Create New FS: <br># /sbin/newfs_msdos /dev/fd0 <br>4.Mount &amp; Use <br>#mount_msdosfs /dev/fd0 /mnt <br><br>9.mount usb <br><br>确保内核中有如下项 <br>device scbus <br>device da <br>device cd <br>在GENERIC中默认都有，如果没有，请编译内核。 <br>大多数U盘用的是FAT 文件系统，所以用 <br>mount -t msdos /dev/da0 /mnt <br>挂载 <br><br>10.mount ZIP软盘： OneZ 兄提供 <br><br>#mount_msdosfs /dev/afd0s4 /mnt/zip<br><br>-----------------------------------------------------------------------------------此文转载自<a href="http://www.prowork.com.cn/forum/topic452.html">http://www.prowork.com.cn/forum/topic452.html</a></div>
<img src ="http://www.cnitblog.com/yiye/aggbug/21953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2007-01-16 22:46 <a href="http://www.cnitblog.com/yiye/archive/2007/01/16/21953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>终端</title><link>http://www.cnitblog.com/yiye/archive/2006/10/15/18002.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Sun, 15 Oct 2006 13:52:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2006/10/15/18002.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/18002.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2006/10/15/18002.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/18002.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/18002.html</trackback:ping><description><![CDATA[<br><img height=1044 alt=抓图6.png src="http://www.cnitblog.com/images/cnitblog_com/yiye/%E6%8A%93%E5%9B%BE6.png" width=1396 border=0> <br>这是终端。。。我全开拉 。。。还想看看什么呢?<br>
<img src ="http://www.cnitblog.com/yiye/aggbug/18002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2006-10-15 21:52 <a href="http://www.cnitblog.com/yiye/archive/2006/10/15/18002.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MY FB桌面</title><link>http://www.cnitblog.com/yiye/archive/2006/10/15/17999.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Sun, 15 Oct 2006 11:17:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2006/10/15/17999.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/17999.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2006/10/15/17999.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/17999.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/17999.html</trackback:ping><description><![CDATA[<img height=1045 alt=抓图5.png src="http://www.cnitblog.com/images/cnitblog_com/yiye/%E6%8A%93%E5%9B%BE5.png" width=1395 border=0> <br>我的 FB桌面!!感觉还可以吧?<br>
<img src ="http://www.cnitblog.com/yiye/aggbug/17999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2006-10-15 19:17 <a href="http://www.cnitblog.com/yiye/archive/2006/10/15/17999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近学习UNIX系统,发两个图以表纪念.现在唯一个问题没解决掉.字体问题.字间距过大.还请高手帮助!</title><link>http://www.cnitblog.com/yiye/archive/2006/06/17/12438.html</link><dc:creator>yiye</dc:creator><author>yiye</author><pubDate>Sat, 17 Jun 2006 14:14:00 GMT</pubDate><guid>http://www.cnitblog.com/yiye/archive/2006/06/17/12438.html</guid><wfw:comment>http://www.cnitblog.com/yiye/comments/12438.html</wfw:comment><comments>http://www.cnitblog.com/yiye/archive/2006/06/17/12438.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/yiye/comments/commentRss/12438.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/yiye/services/trackbacks/12438.html</trackback:ping><description><![CDATA[<img height=621 alt=未命名.bmp src="http://www.cnitblog.com/images/cnitblog_com/yiye/未命名.bmp" width=1020 border=0> <img height=621 alt=未命名2.bmp src="http://www.cnitblog.com/images/cnitblog_com/yiye/未命名2.bmp" width=1021 border=0> <img height=621 alt=未命名3.bmp src="http://www.cnitblog.com/images/cnitblog_com/yiye/未命名3.bmp" width=1021 border=0> <br>&nbsp;<img height=621 alt=未命名4.bmp src="http://www.cnitblog.com/images/cnitblog_com/yiye/未命名4.bmp" width=1021 border=0> 
<img src ="http://www.cnitblog.com/yiye/aggbug/12438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/yiye/" target="_blank">yiye</a> 2006-06-17 22:14 <a href="http://www.cnitblog.com/yiye/archive/2006/06/17/12438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>