<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wd and cc &#187; emacs</title>
	<atom:link href="http://wdicc.com/tag/emacs/feed/" rel="self" type="application/rss+xml" />
	<link>http://wdicc.com</link>
	<description>Happy every day...</description>
	<lastBuildDate>Wed, 01 Feb 2012 03:27:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>介绍下 org2blog</title>
		<link>http://wdicc.com/about-org2blog/</link>
		<comments>http://wdicc.com/about-org2blog/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 03:47:00 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[org2blog]]></category>

		<guid isPermaLink="false">http://wdicc.com/?p=815</guid>
		<description><![CDATA[org2blog 是什么 org2blog 是用来把 org-mode 格式的文章发布到 wordpress 的工具。其实之前使用 webloger.el 也可以发布到 wordpress，不过是 webloger.el 已经基本没人维护了，这个 org2blog 作者支持还很积极，另外 org-mode 还提供了一些额外的方便编辑的方法，所以其实 是个不错的东东。 安装 其实按照上面地址的内容，安装很简单。 git clone http://github.com/punchagan/org2blog.git (setq load-path (cons "~/.emacs.d/org2blog/" load-path)) (require 'org2blog-autoloads) 依赖 xml-rpc ，添加到 load-path 需要最新版本的 org-mode，我使用的是 emacs 24 里面的 7.7，之前使用 7.5(?) 的时候，遇到了发布的时候会在文章结尾附加 &#60;/body&#62;&#60;/html&#62; 导致 blog 的展现挂掉的问题。 使用 配置 ;; ;; org2blog ;; (require 'org2blog-autoloads) (setq [...]]]></description>
			<content:encoded><![CDATA[<div id="outline-container-1" class="outline-2">
<h2 id="sec-1">org2blog 是什么</h2>
<div id="text-1" class="outline-text-2">
<p><a href="https://github.com/punchagan/org2blog">org2blog</a> 是用来把 org-mode 格式的文章发布到 wordpress 的工具。其实之前使用 webloger.el 也可以发布到 wordpress，不过是<br />
webloger.el 已经基本没人维护了，这个 org2blog 作者支持还很积极，另外 org-mode 还提供了一些额外的方便编辑的方法，所以其实<br />
是个不错的东东。</p>
</div>
</div>
<div id="outline-container-2" class="outline-2">
<h2 id="sec-2">安装</h2>
<div id="text-2" class="outline-text-2">
<p>其实按照上面地址的内容，安装很简单。</p>
<pre class="example">git clone http://github.com/punchagan/org2blog.git
(setq load-path (cons "~/.emacs.d/org2blog/" load-path))
(require 'org2blog-autoloads)</pre>
<ol>
<li>依赖 <a href="http://launchpad.net/xml-rpc-el">xml-rpc</a> ，添加到 load-path</li>
<li>需要最新版本的 org-mode，我使用的是 emacs 24 里面的 7.7，之前使用 7.5(?) 的时候，遇到了发布的时候会在文章结尾附加<br />
&lt;/body&gt;&lt;/html&gt; 导致 blog 的展现挂掉的问题。</li>
</ol>
</div>
</div>
<div id="outline-container-3" class="outline-2">
<h2 id="sec-3">使用</h2>
<div id="outline-container-3-1" class="outline-3">
<h3 id="sec-3-1">配置</h3>
<div id="text-3-1" class="outline-text-3">
<pre class="example">;;
;; org2blog
;;

(require 'org2blog-autoloads)
(setq org2blog/wp-blog-alist
      `(("abc"
         :url "http://abc.com/xmlrpc.php"
         :username "admin"
         :password PWD
         :keep-new-lines t
         :confirm t
         :wp-code nil
         :tags-as-categories nil)
        ))

(setq org2blog/wp-buffer-template
  "#+DATE: %s
#+OPTIONS: toc:nil num:nil todo:nil pri:nil tags:nil ^:nil TeX:nil
#+CATEGORY: Heart
#+TAGS:
#+PERMALINK:
#+TITLE:
\n")</pre>
<p>我不使用 wordpress 的 code 格式，所以设置了 wp-code 为 nil。可以定义多个 blog。</p>
</div>
</div>
<div id="outline-container-3-2" class="outline-3">
<h3 id="sec-3-2">登陆，发帖</h3>
<div id="text-3-2" class="outline-text-3">
<p>M-x org2blog/wp-login 会提示你要登陆哪个 blog<br />
M-x org2blog/wp-new-entry 会使用设置的 template 打开一个 buffer<br />
M-x org2blog/wp-post-buffer 保存成 draft<br />
M-x org2blog/wp-post-buffer-and-publish 真实发布</p>
<p>另外，还可以发布一个 tree 而不是整个 org 文件，以及一些其他的操作就不多说了。</p>
<p>发布源代码可以使用 BEGIN_SRC END_SRC 块，或者冒号开头的行会被当作源代码。</p>
<p>我使用的是 wp-syntax，所以发布源代码使用 BEGIN_HTML 在里面使用 pre 标签</p>
<pre>#+BEGIN_HTML
&lt;pre lang="lisp"&gt;
(setq a 1)
&lt;/pre&gt;
#+END_HTML</pre>
</div>
</div>
<div id="outline-container-3-3" class="outline-3">
<h3 id="sec-3-3">其他</h3>
<div id="text-3-3" class="outline-text-3">
<p>使用 org2blog 只能从 org 发布到 wordpress，不能从 wordpress 回到 org 文件再进行编辑，不过我看到有人已经提供了一个解决方<br />
法，或许将来也会支持这个功能。</p>
<p>使用 org2blog 发布很讨厌的一点是，他会把你的 org 加上很多的 html 代码，再编辑的时候比较讨厌。</p>
<p>org2blog 在 github 的页面 <a href="https://github.com/punchagan/org2blog">https://github.com/punchagan/org2blog</a> 上面有不少有用的东西，建议看看。</p>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/about-org2blog/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>emacs 的列编辑</title>
		<link>http://wdicc.com/rectangles-in-emacs/</link>
		<comments>http://wdicc.com/rectangles-in-emacs/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 17:09:44 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://wdicc.com/rectangles-in-emacs/</guid>
		<description><![CDATA[列编辑我觉得是一个编辑器不能缺少的东西。在 vim 里面使用 C-v 就能进入列编辑，然后我通常用到的，也就是 d (删除) 和 I (插入)。在 emacs 里面一直没怎么用上这个，总感觉是操作很麻烦。最近操作了几次，发现也没那么难，呵呵。 emacs manual 里面关于列编辑的页面。emacs 里面那个默认的列编辑不会出来像 vim 里面那样的矩形选区（不过有别的方法好像可以做到），所以当你选择的时候，还是按行来选择的，你只需要关心选择的起始点和结束点之间的那个矩形就好了，你的操作只会在里面起作用。 对应到 vim 的 d，emacs 里面的应该是 C-x r d 或 C-x r k 了吧，对应到 I，应该是 C-x r t string 了吧，不过 emacs 里面这个是替换选择的东西为 string，你要是选个空的，应该就算是插入了吧。还有个 C-x r y 复制，我觉得会这几个应该就基本可以了吧。。]]></description>
			<content:encoded><![CDATA[<p>列编辑我觉得是一个编辑器不能缺少的东西。在 vim 里面使用 C-v 就能进入列编辑，然后我通常用到的，也就是 d (删除) 和 I (插入)。在 emacs 里面一直没怎么用上这个，总感觉是操作很麻烦。最近操作了几次，发现也没那么难，呵呵。</p>
<p>emacs manual 里面关于列编辑的<a href='http://www.gnu.org/software/emacs/manual/html_node/emacs/Rectangles.html'>页面</a>。emacs 里面那个默认的列编辑不会出来像 vim 里面那样的矩形选区（不过有别的方法好像可以做到），所以当你选择的时候，还是按行来选择的，你只需要关心选择的起始点和结束点之间的那个矩形就好了，你的操作只会在里面起作用。</p>
<p>对应到 vim 的 d，emacs 里面的应该是 C-x r d 或 C-x r k 了吧，对应到 I，应该是 C-x r t string <RET> 了吧，不过 emacs 里面这个是替换选择的东西为 string，你要是选个空的，应该就算是插入了吧。还有个 C-x r y 复制，我觉得会这几个应该就基本可以了吧。。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/rectangles-in-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>emacs 的 emms 里面的乱码</title>
		<link>http://wdicc.com/emms-coding-system/</link>
		<comments>http://wdicc.com/emms-coding-system/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 01:28:24 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[emms]]></category>

		<guid isPermaLink="false">http://wdicc.com/?p=755</guid>
		<description><![CDATA[emms 是基于 emacs 的一个播放器，不过其它他做的应该只是管理音乐，具体播放还是靠 mpg123 或 mplayer 这样的程序。 前几天下了一些 mp3, 这两天就又搞了搞 emms。emacser.cn 有篇文章就是介绍这个的，就不多说了。主要是被编码问题搞死了。 下载的 mp3 的 tag 是 gbk 的，可是设置了 emms-info-mp3info-coding-system 为 gbk 没效果，而用 mp3info 程序看了 mp3 的 tag，确实是 gbk 的，奇怪了就。后来发现 emms 还带了一个 emms-print-metadata 这个程序，这个程序貌似不需要设置编码，他会出来的结果直接就是 utf8, 可就算用这个 (通过设置 (setq emms-info-functions &#8216;(emms-info-libtag)) )，出来的结果还是乱码。 后来突然想起来是不是 cache 的问题，然后就发现有两个地方可能有 cache，一个是 emms-cache.el 一个是 emms-history.el，把这两个对应的 cache 文件删掉，再运行一次 emms 就没问题了。我还设置了下下面的。 &#40;setq emms-cache-file [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gnu.org/software/emms/">emms</a> 是基于 emacs 的一个播放器，不过其它他做的应该只是管理音乐，具体播放还是靠 mpg123 或 mplayer 这样的程序。</p>
<p>前几天下了一些 mp3, 这两天就又搞了搞 emms。emacser.cn 有篇<a href="http://emacser.com/emms.htm">文章</a>就是介绍这个的，就不多说了。主要是被编码问题搞死了。</p>
<p>下载的 mp3 的 tag 是 gbk 的，可是设置了 emms-info-mp3info-coding-system 为 gbk 没效果，而用 mp3info 程序看了 mp3 的 tag，确实是 gbk 的，奇怪了就。后来发现 emms 还带了一个 emms-print-metadata 这个程序，这个程序貌似不需要设置编码，他会出来的结果直接就是 utf8, 可就算用这个 (通过设置 (setq emms-info-functions &#8216;(emms-info-libtag)) )，出来的结果还是乱码。</p>
<p>后来突然想起来是不是 cache 的问题，然后就发现有两个地方可能有 cache，一个是 emms-cache.el 一个是 emms-history.el，把这两个对应的 cache 文件删掉，再运行一次 emms 就没问题了。我还设置了下下面的。</p>

<div class="wp_syntax"><div class="code"><pre class="lisp"><span class="br0">&#40;</span><span class="kw1">setq</span> emms-cache-file <span class="st0">&quot;~/.emacs.d/emms/emms-cache&quot;</span>
      emms-history-file <span class="st0">&quot;~/.emacs.d/emms/emms-history&quot;</span><span class="br0">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/emms-coding-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>elisp 最最初级的一点入门知识</title>
		<link>http://wdicc.com/basic-elisp-programing/</link>
		<comments>http://wdicc.com/basic-elisp-programing/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 15:37:08 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[elisp]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://wdicc.com/basic-elisp-programing/</guid>
		<description><![CDATA[其实上次写 http://wdicc.com/how-i-became-a-emacser 的时候，是想写一点 eslisp 入门的东西的，结果总觉得好像也写不出来什么，就写成另一篇了，呵呵。(看这篇前最好先看看那个吧，那个更入门。) 不过我还是觉得，用 emacs 如果不会一点 elisp，那基本你是用不住的。记那些无聊的快捷键有什么意思，有意思的是你能让 emacs 用你希望的模式工作。今天 twitter 上面看到一个词”计算姬”，感觉很有点意思，呵呵，小蜜就是给你干活的嘛，不要被她折磨就好。 其实主要是我自我感觉目前了解的 elisp 的东西，好像基本就够用了，所以才想写出来，给比我还糊涂的指条明路。 1 数据类型。 elisp 是有类型在里面的，我看好像有什么 sequence, number 之类，具体有哪些不重要，重要的是你使用的时候，比如比较的时候，切记要弄明白他们是什么类型。我找到一个 format 函数，感觉很好用，可以转类型，具体可以查文档，可以多用用。 2 调试 调一个程序的时候，我觉得最基本的就是 print 和 message 这两个函数了吧，加上上面的 format，基本应该能搞定了。在一段 elisp 后面使用 C-x C-e 就能直接执行他，执行之后就能在当前的 emacs 里面起作用，不过对我等菜鸟来说，有时候会遇到一些奇怪的问题，不行就还是再启动一个 emacs 来验证结果吧。 3 emacs 简单设置 掌握了上面两个，基本就可以定义自己的东西了。一般用的是 setq，比如下面这个 ;; 防止页面滚动时跳动， scroll-margin 3 可以在靠近屏幕边沿3行时就开始滚动，可以很好的看到上下文。 (setq scroll-margin 3 [...]]]></description>
			<content:encoded><![CDATA[<p>其实上次写 http://wdicc.com/how-i-became-a-emacser 的时候，是想写一点 eslisp 入门的东西的，结果总觉得好像也写不出来什么，就写成另一篇了，呵呵。(看这篇前最好先看看那个吧，那个更入门。)</p>
<p>不过我还是觉得，用 emacs 如果不会一点 elisp，那基本你是用不住的。记那些无聊的快捷键有什么意思，有意思的是你能让 emacs 用你希望的模式工作。今天 twitter 上面看到一个词”计算姬”，感觉很有点意思，呵呵，小蜜就是给你干活的嘛，不要被她折磨就好。</p>
<p>其实主要是我自我感觉目前了解的 elisp 的东西，好像基本就够用了，所以才想写出来，给比我还糊涂的指条明路。</p>
<p>1 数据类型。<br />
elisp 是有类型在里面的，我看好像有什么 sequence, number 之类，具体有哪些不重要，重要的是你使用的时候，比如比较的时候，切记要弄明白他们是什么类型。我找到一个 format 函数，感觉很好用，可以转类型，具体可以查文档，可以多用用。</p>
<p>2 调试<br />
调一个程序的时候，我觉得最基本的就是 print 和 message 这两个函数了吧，加上上面的 format，基本应该能搞定了。在一段 elisp 后面使用 C-x C-e 就能直接执行他，执行之后就能在当前的 emacs 里面起作用，不过对我等菜鸟来说，有时候会遇到一些奇怪的问题，不行就还是再启动一个 emacs 来验证结果吧。</p>
<p>3 emacs 简单设置<br />
掌握了上面两个，基本就可以定义自己的东西了。一般用的是 setq，比如下面这个</p>

<div class="wp_syntax"><div class="code"><pre class="elisp">;; 防止页面滚动时跳动， scroll-margin 3 可以在靠近屏幕边沿3行时就开始滚动，可以很好的看到上下文。
(setq scroll-margin 3
            scroll-conservatively 10000)
(set-terminal-coding-system 'utf-8)
(add-to-list 'auto-mode-alist '(&quot;\\.py\\'&quot; . python-mode))</pre></div></div>

<p>可以看到他一次设置了两个变量，其实写两个括号也是可以的。</p>
<p>还有下面的两行，他是执行了一个函数，这个函数里面干的什么，他接受什么参数，直接在 emacs 里面按 C-h f 然后输入你要查的函数的名字，就会显示 help 信息，很方便吧。</p>
<p>4 hook<br />
下面稍微高级一点，了解下 hook 怎么用。hook 这个东西翻译过来应该是钩子的意思吧，其实就是别人的程序预留的一些接口，可以让你在他的程序里面插入一些你自己的程序。比如下面这几个。</p>

<div class="wp_syntax"><div class="code"><pre class="elisp">(add-hook 'weblogger-start-edit-entry-hook (lambda()
    (auto-fill-mode -1)
    (abbrev-mode -1)
    (auto-complete-mode 1)
    ))
(add-hook 'cperl-mode-hook (lambda () (abbrev-mode -1)))
(add-hook 'view-mode-hook 'view-mode-keybinding-hook)
&nbsp;
(defun weblogger-edit-entry (&amp;optional entry)
  &quot;Edit a entry.  If ENTRY is specified, then use that entry.
Otherwise, open a new entry.&quot;
   ...........
  (run-hooks 'weblogger-start-edit-entry-hook)
)</pre></div></div>

<p>第一个是在 weblogger.el 开始编辑文件的时候，把那些 mode 关掉。第二个是 cperl-mode 启用的时候，把 abbrev-mode 关掉。第三个是在 view-mode-hook 执行的时候，执行那个函数。</p>
<p>最后是在实际代码里面这个 hook 是怎么执行的，能看到当调用 weblogger-edit-entry 的时候，就会在这里面某个时候去执行之前设置的 hook，这样个性化设置的目的就达到了。</p>
<p>eamcs 的各种 mode 一般都有各种的 hook，这应该能完全达到个性化的目的了，可有些时候想定制的地方没有 hook 怎么办？暴力一点，直接改他的程序好了。。。温柔一点的，那就看下面这个。</p>
<p>5 defadvice</p>
<p>defadvice 在文档里面写的很清楚，大概应该是可以在一个已有函数执行前或后执行你定义的东西。比如下面这个。</p>

<div class="wp_syntax"><div class="code"><pre class="elisp">;; use this to auto cancel notify
;; (add-hook 'erc-send-pre-hook
;;           (lambda(s)
;;             (erc-tray-change-state nil)))
(eval-after-load 'erc
  '(progn
     (defadvice erc-send-input (before change-tray-status activate)
       (erc-tray-change-state nil))))</pre></div></div>

<p>我设置了 erc 在收到消息的时候会发送 notify 到 tray，我想做到只要我在 erc 里面输入了一些东西（即使是空的），就把 tray 的状态标记为已读，就不用继续提醒我了。</p>
<p>erc 有个 erc-send-pre-hook，可以在发送一条消息前执行 hook，可是如果输入的是空行，是不会触发这个 hook 的，使用 defadvice 可以解决这个，具体使用方法还是看文档吧，我突然觉得我很罗嗦。。。。屁大点东西也能发一篇？。。。</p>
<p>我会的基本就说完了，其它高级玩意有需要的时候应该可以从文档里面去看吧，目前来看，会用 hook 和 defadvice 我就知足了，不行就来 irc 里面找牛人问一个，经过提示后，应该还是能解决的吧。反正不求能自己去写一个 mode，当时最少也要能看明白别人的那点东西，然后自己能改一下吧，要不用 emacs 会很痛苦的。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/basic-elisp-programing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我是怎么从 vim 转向 emacs 的</title>
		<link>http://wdicc.com/how-i-became-a-emacser/</link>
		<comments>http://wdicc.com/how-i-became-a-emacser/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 02:36:36 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://wdicc.com/how-i-became-a-emacser/</guid>
		<description><![CDATA[从尝试用 emacs，到现在基本（有些地方还不是很适应）习惯用 emacs，算起来得有 n 年了，我都忘记最早接触 emacs 是什么时候了。在 2010-3-20 之前尝试过很多次，基本都是记几个快捷键，过几天就又忘记了。后来自己想了下为什么不能持续的原因，我觉得有两个。 1 没有在日常工作里面使用。 之前我的开发工作基本都是直接在某台服务器上面的，这样就开发调试会比较方便，而那些机器一般要不会装 emacs，这样不常用就会导致记住的快捷键过几天就忘记了。最近刚好需要在本机写点程序，也就刚好用上了。 2 不会 elisp。 emacs 的配置文件都是 elisp 写的，而不经过配置的 emacs 就编辑文件来看，我觉得还不如去用 vim，vim 好用多了。我想刚看到 elisp 的时候一般都会觉得这个语言太变态了，全是一堆的括号。。。而不会 elisp 就会导致你只能去机械的复制别人的配置，如果刚好是你想要的，那还好，而如果还想做点小的修改，那就会很郁闷，用起来郁闷，不用可能更郁闷。不爽多了，就干脆不用 emacs 了。 如果你能在日常工作中经常使用，并且会写程序（比如 php,perl 什么的，随便哪个都行），那么对于基本没怎么配置过 .vimrc 的用户来说，切换到 emacs 其实应该还算是一个比较简单的事情。 1 emacs 是无模式的。 这就是说你不用经常去按那个 Esc 来切换模式了。没有模式也就意味着你不能使用像 vim 那么简短的命令了，因为像 a,i,o,h,j,k 这些对 emacs 来说，这些都是正常的输入字符，所以我们不得不在这些字符前面加上 C(control), M(Meta 一般是 Alt), S(shift) 这些前缀。在 [...]]]></description>
			<content:encoded><![CDATA[<p>从尝试用 emacs，到现在基本（有些地方还不是很适应）习惯用 emacs，算起来得有 n 年了，我都忘记最早接触 emacs 是什么时候了。在 2010-3-20 之前尝试过很多次，基本都是记几个快捷键，过几天就又忘记了。后来自己想了下为什么不能持续的原因，我觉得有两个。</p>
<p>1 没有在日常工作里面使用。<br />
之前我的开发工作基本都是直接在某台服务器上面的，这样就开发调试会比较方便，而那些机器一般要不会装 emacs，这样不常用就会导致记住的快捷键过几天就忘记了。最近刚好需要在本机写点程序，也就刚好用上了。</p>
<p>2 不会 elisp。<br />
emacs 的配置文件都是 elisp 写的，而不经过配置的 emacs 就编辑文件来看，我觉得还不如去用 vim，vim 好用多了。我想刚看到 elisp 的时候一般都会觉得这个语言太变态了，全是一堆的括号。。。而不会 elisp 就会导致你只能去机械的复制别人的配置，如果刚好是你想要的，那还好，而如果还想做点小的修改，那就会很郁闷，用起来郁闷，不用可能更郁闷。不爽多了，就干脆不用 emacs 了。</p>
<p>如果你能在日常工作中经常使用，并且会写程序（比如 php,perl 什么的，随便哪个都行），那么对于基本没怎么配置过 .vimrc 的用户来说，切换到 emacs 其实应该还算是一个比较简单的事情。</p>
<p>1 emacs 是无模式的。<br />
这就是说你不用经常去按那个 Esc 来切换模式了。没有模式也就意味着你不能使用像 vim 那么简短的命令了，因为像 a,i,o,h,j,k 这些对 emacs 来说，这些都是正常的输入字符，所以我们不得不在这些字符前面加上 C(control), M(Meta 一般是 Alt), S(shift) 这些前缀。在 emacs 里面需要按的可能还远不止这些控制字符加一个普通字符，比如我定义的 C-c n E 来打开 erc。不要被这些吓着了，并不需要你记住所有的，你只要记住你常用的就好了。</p>
<p>2 emacs 里面的 buffer。<br />
打开一个文件，就会出现一个 buffer。调用帮助，也会打开 buffer。使用 emacs 绝对不要和一些自动出现的 buffer 过不去，使用 emacs 的理念就是一个编辑器 n 个 buffer，编辑文件的，看 mail、news 的，上 irc 的等等。你需要的是一个方便的 buffer 切换的工具，推荐的有 ido-mode 和 ibuffer。</p>
<p>3 emacs 里面有各种 mode。<br />
vim 里面是通过设置 filetype(ft) 来达到语法高亮等功能的。emacs 里面是通过各种 mode。emacs 里面有主模式(main mode)，和辅模式(minor mode)。上面说的 ido-mode 就是一个辅模式。打开一个文件后，一般有一个主模式（通过一些方法也可以有多个），多个辅模式。比如我打开一个 js 文件，会同时使用到 js2-mode 这个主模式，和 highlight-tail-mode, autocomplate-mode 这几个辅模式。</p>
<p>4 写点 elisp。<br />
elisp 基本就是一堆的括号，括号最左半边的是操作符或函数，后面的都是他的参数，比如 (- 10 3)，具体这个是什么意思，就要去看看 “-” 是干嘛的，他会对后面的参数做什么事。再比如(setq xwl-at-company? (xwl-at-company))。先去看看那个 setq 是干嘛的，查完好像是设置变量的，他会把第二个参数的值赋给第一个参数。那第二个变量是个表达式，那就等于会把这个表达式的值赋给他，对吧。这个括号表达式是干嘛的呢？xwl-at-company 这个是自己写的函数，不需要参数，他会根据一些信息返回是不是在使用公司的网络。是返回 t，不是返回 nil。ok，这不就明白了么？呵呵。还有一些像 (if, (when, (progn 等等，都是这么个理解方法。<br />
写程序就避免不了调试，最简单的调试方法应该就是直接打印了吧，呵呵。elisp 里面可以使用 print, message 来输出一些调试信息。比如 (print (format “value of t: %s” t))，具体啥意思可以参考前面说的方法去查查。这些信息可以在一个叫 *Messages* 的 buffer 里面看到。</p>
<p>5 emacs 里面的帮助。<br />
C-h 是调用帮助，可以在后面再输入 ？ 来看看有什么可用的帮助。我一般用的是 m（看当前 mode 的一些快捷键设置），k（查某个快捷键是干嘛的），v（查 emacs 变量的值）。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/how-i-became-a-emacser/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>看了 12 怒汉 ( 12 Angry Men )</title>
		<link>http://wdicc.com/about-justice/</link>
		<comments>http://wdicc.com/about-justice/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 04:33:45 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Heart]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[justice]]></category>
		<category><![CDATA[movie]]></category>
		<category><![CDATA[thinking]]></category>

		<guid isPermaLink="false">http://wdicc.com/about-justice/</guid>
		<description><![CDATA[12 怒汉下了好久了，一直没看，正在看，还没看完就忍不住要写点什么。 俄语实在不好听，忍着看了 10 分钟，这个片子就开始吸引人了。12 个陪审团成员，还有其它人，几乎所有人都认为 20 分钟应该就会完事，因为这之前已经听法院审了三天了。在 12 比 1 的情况下，怎么说服其它人同意小孩是无罪的，这就是整个片子的内容。当然是有理有剧的。 当你手里掌握着别人的生命的时候，你会怎么做？今天上午还看了几集哈佛大学的那个关于公正的课，里面几个例子。 如果你是一个电车司机，刹车失灵了，轨道那头是 5 个工人，开过去肯定会把他们撞死，关键时刻你发现有个叉道，那边是 1 个工人，如果你打方向盘的话，那就是撞死一个人，你会怎么做？ 再如果司机不是你，没有叉道，而你当时你站在桥上，你旁边有个胖子，如果把那个胖子推下去，车就会停，你会怎么做？ 如果你是一个医生，医院来了 6 个病人，其中一个病的很重，其他几个轻一点。如果你救那个病重的，因为需要的时间会很长，那其它几个就会死。如果你先救那 5 个，那么病重的一个就肯定死，你怎么办？ 再如果，来了 5 个病人，他们分别需要移植 5 个器官，可是没有现成的。这时候你想起来旁边屋子里面有一个健康的人，如果把他的器官换给那 5 个人的话，那 5 个人就会得救，当然，这个人会死，你会做么？ 还有一个真实的案例。4 个人座船出去，路上遇到风暴，逃到了逃生艇上。没有吃的，里面有个孤儿，不听劝告，喝了海水，病的很严重，其它三个人把那个人杀了，然后挺了过去，得到了救助，到了岸上，他们供认了经过。然后你觉得他是有罪还是无罪呢？ 之前还看过一个文章，讲什么是民主的。看 这里 吧。 民主就是少数服从多数么？好像不是这样的，那民主是什么呢，我也不知道，gcd 说他们统治的国家就是民主的，可好像我连想上的网站都上不了，还不经过我同意，这个好像不那么民主。那倒底民主是什么呢？ 看了明朝那些事，头一次知道原来内阁是可以驳回皇帝的圣旨的，原来也不是说皇帝说什么就算什么的，他也得和大臣讲道理的。如果给你 10 个人让你管，那很简单，是不是，要干什么的时候，一个人一个人和他说明白就好了。如果是 100 个呢？ok，虽然累点，好像也还是可以说清楚的。可如果是 1000 个呢，显然一个一个说就不靠谱了，得想别的办法，那就是从 1000 个人里面选 10 个人，每人分给他们 99 个人，你有什么事，教会这 10 个人就好了，然后由他们去和手下的 [...]]]></description>
			<content:encoded><![CDATA[<p>12 怒汉下了好久了，一直没看，正在看，还没看完就忍不住要写点什么。</p>
<p>俄语实在不好听，忍着看了 10 分钟，这个片子就开始吸引人了。12 个陪审团成员，还有其它人，几乎所有人都认为 20 分钟应该就会完事，因为这之前已经听法院审了三天了。在 12 比 1 的情况下，怎么说服其它人同意小孩是无罪的，这就是整个片子的内容。当然是有理有剧的。</p>
<p>当你手里掌握着别人的生命的时候，你会怎么做？今天上午还看了几集哈佛大学的那个关于公正的课，里面几个例子。</p>
<p>如果你是一个电车司机，刹车失灵了，轨道那头是 5 个工人，开过去肯定会把他们撞死，关键时刻你发现有个叉道，那边是 1 个工人，如果你打方向盘的话，那就是撞死一个人，你会怎么做？</p>
<p>再如果司机不是你，没有叉道，而你当时你站在桥上，你旁边有个胖子，如果把那个胖子推下去，车就会停，你会怎么做？</p>
<p>如果你是一个医生，医院来了 6 个病人，其中一个病的很重，其他几个轻一点。如果你救那个病重的，因为需要的时间会很长，那其它几个就会死。如果你先救那 5 个，那么病重的一个就肯定死，你怎么办？</p>
<p>再如果，来了 5 个病人，他们分别需要移植 5 个器官，可是没有现成的。这时候你想起来旁边屋子里面有一个健康的人，如果把他的器官换给那 5 个人的话，那 5 个人就会得救，当然，这个人会死，你会做么？</p>
<p>还有一个真实的案例。4 个人座船出去，路上遇到风暴，逃到了逃生艇上。没有吃的，里面有个孤儿，不听劝告，喝了海水，病的很严重，其它三个人把那个人杀了，然后挺了过去，得到了救助，到了岸上，他们供认了经过。然后你觉得他是有罪还是无罪呢？</p>
<p>之前还看过一个文章，讲什么是民主的。看 <a href="http://tieba.baidu.com/f?kz=126121842">这里</a> 吧。</p>
<p>民主就是少数服从多数么？好像不是这样的，那民主是什么呢，我也不知道，gcd 说他们统治的国家就是民主的，可好像我连想上的网站都上不了，还不经过我同意，这个好像不那么民主。那倒底民主是什么呢？</p>
<p>看了明朝那些事，头一次知道原来内阁是可以驳回皇帝的圣旨的，原来也不是说皇帝说什么就算什么的，他也得和大臣讲道理的。如果给你 10 个人让你管，那很简单，是不是，要干什么的时候，一个人一个人和他说明白就好了。如果是 100 个呢？ok，虽然累点，好像也还是可以说清楚的。可如果是 1000 个呢，显然一个一个说就不靠谱了，得想别的办法，那就是从 1000 个人里面选 10 个人，每人分给他们 99 个人，你有什么事，教会这 10 个人就好了，然后由他们去和手下的 99 个人说明白，简单了吧。用这个模式，不管有多少人都可以搞定了，是不是？实际上军队不就是这个模式么。但发现没有，实际上你的权力被分到了那 10 个人的手上，如果他没有和手下的 99 个人表达你的意思，而表达的是他自己的意思，那么。。。皇帝有时候就得面对这个，想让内阁替你办事，那你就得把权力分给他们。</p>
<p>再来说民主。选举其实就是一个分权的过程，你把你的一部分权力分给了你选的代表，如果你都不知道这个代表你的人是男是女，或是太监的时候，这其实是很恐怖的，对吧。</p>
<p>这个片子没想到看到最后居然还转折了一下，有点意思，呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/about-justice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用 emacs 写 blog</title>
		<link>http://wdicc.com/use-emacs-publish-your-blog/</link>
		<comments>http://wdicc.com/use-emacs-publish-your-blog/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 07:35:16 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wdicc.com/use-emacs-publish-your-blog/</guid>
		<description><![CDATA[不想看大段文字的可以直接看 http://github.com/wd/work/tree/master/weblogger.el/。 先看看 这个， 我用的weblogger.el 就是从那来的，这个 el 打了 html 支持和 tags(summary) 的支持。 因为写中文 title 的时候，生成的 url 会有一堆的中文字符，看起来就是乱码，不可读，这时候可以在 wp 的后台指定一个 post-slug，url 会根据这个生成。这里我主要是研究了一下对 post-slug 的支持。 weblogger.el 里面 应该是在 weblogger-determine-capabilities 里面判断一下你的 blog 支持的类型，我看了 wordpress 的支持的 methods，里面metaWeblog.newPost, 和 blogger.newPost 应该都是支持的，他应该首选的是 metaWeblog 那个。 然后呢，就是看 wp 的 xml-rpc 文件，里面有个 mw_newPost 对应的就是 metaWeblog.newPost 应该是。在这个函数头试了一把，用的确实是这个。然后就看这里面是怎么处理的了。 这里面最后用的是 wp_insert_post 发的贴子，再看这个函数，能看到里面用的是 post_name 来生成的 post-slug。那么我们只要设置一下这个变量就可以了。在这个函数里面，搜一下 post-name 能看到 [...]]]></description>
			<content:encoded><![CDATA[<p>不想看大段文字的可以直接看 http://github.com/wd/work/tree/master/weblogger.el/。</p>
<p>先看看 <a href="http://emacser.com/weblogger.htm">这个</a>， 我用的weblogger.el 就是从那来的，这个 el 打了 html 支持和 tags(summary) 的支持。</p>
<p>因为写中文 title 的时候，生成的 url 会有一堆的中文字符，看起来就是乱码，不可读，这时候可以在 wp 的后台指定一个 post-slug，url 会根据这个生成。这里我主要是研究了一下对 post-slug 的支持。</p>
<p>weblogger.el 里面 应该是在 weblogger-determine-capabilities 里面判断一下你的 blog 支持的类型，我看了 wordpress 的支持的 methods，里面metaWeblog.newPost, 和 blogger.newPost 应该都是支持的，他应该首选的是 metaWeblog 那个。</p>
<p>然后呢，就是看 wp 的 xml-rpc 文件，里面有个 mw_newPost 对应的就是 metaWeblog.newPost 应该是。在这个函数头试了一把，用的确实是这个。然后就看这里面是怎么处理的了。</p>
<p>这里面最后用的是 wp_insert_post 发的贴子，再看这个函数，能看到里面用的是 post_name 来生成的 post-slug。那么我们只要设置一下这个变量就可以了。在这个函数里面，搜一下 post-name 能看到</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span class="co1">// Let WordPress generate the post_name (slug) unless</span>
<span class="co1">// one has been provided.</span>
<span class="re0">$post_name</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span>
<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$content_struct</span><span class="br0">&#91;</span><span class="st0">&quot;wp_slug&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="re0">$post_name</span> <span class="sy0">=</span> <span class="re0">$content_struct</span><span class="br0">&#91;</span><span class="st0">&quot;wp_slug&quot;</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>我们只要在 weblogger.el 里面 post 一个这个变量就好了。在 post 里面能看到如果有个 X-url 的话，他会 post 一个 link 字段出来。那就好了，把上面那个 wp_slug 改成 link，然后写 blog 的时候加一个字段 X-url 就会使用这个你指定的 url 了。</p>
<p>这个文章就是用 emacs 写的。 <img src='http://wdicc.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>又研究了下，再补充点内容，呵呵。(2010-03-10)</p>
<p>问题是这样的，新建一个 post 的时候会出来 subject, keywords, newsgroup 这三个字段，怎么能让他加上 summary 和 x-url 呢，这样我就不用每次都手动写了，怎么弄呢，我就找啊找啊，总算找到方法了。</p>
<p>新建的 buffer 里面不是会有个提示么，什么 &#8216;&#8211;text follows this line &#8211;&#8217;, 就找这个，看是哪里提供的。在 weblogger.el 里面，找了半天，发现没有这个提示。怎么回事？要相信程序，肯定是会有的，只能是找错了地方。</p>
<p>看看这个 el 的看头，引用了 message.el，搜了一下，这个原来是 gnus 提供的，找到这个 el，搜了一下，找到那几个字符了。原来是在这里面添加的。然后我就尝试定义 message-required-news-headers 这个变量，发现不好用，看来还是得在 weblogger.el 里面弄。在这里面找到 weblogger-edit-entry 这个函数，这个就是发帖子的时候用的，在里面有个顺序往下看，这个 message-goto-keywords 比较可疑，在 message.el 里面搜了下，果然，同时还看到一个 message-goto-summary，加上看看，嘿嘿，果然就搞定了。再找找 x-url，没找到，那就仿 summary 的写一个呗</p>

<div class="wp_syntax"><div class="code"><pre class="lisp"><span class="br0">&#40;</span><span class="kw1">defun</span> message-goto-x-url <span class="br0">&#40;</span><span class="br0">&#41;</span>
  <span class="st0">&quot;Move point to the x-url header.&quot;</span>
  <span class="br0">&#40;</span>interactive<span class="br0">&#41;</span>
  <span class="br0">&#40;</span>message-position-on-field <span class="st0">&quot;X-url&quot;</span> <span class="st0">&quot;Subject&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></pre></div></div>

<p>这不完了么，这下就爽多了，嘿嘿。。不过如果能把那些 keywords, summary 等字段改成什么 categories,tags 就好了。。。有时间看看。。。</p>
<p>又研究了一下，加点内容。。(2010-03-11)</p>
<p>其实就是上面留的这点东西，我自己改吧了一下，好像能用了。地址在 http://github.com/wd/work/tree/master/weblogger.el/，里面的 permlink 就是指定 url 的。我看发文章好像没问题了。</p>
<p>另外，我试着在这个 mode 里面让他自动启动 auto-complete-mode，可是怎么弄都不行，不知道怎么回事。下面是我在 .emacs 用的代码。</p>

<div class="wp_syntax"><div class="code"><pre class="lisp"><span class="br0">&#40;</span>add-hook 'weblogger-start-edit-entry-hook <span class="br0">&#40;</span><span class="kw1">lambda</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
    <span class="br0">&#40;</span>auto-fill-mode -<span class="nu0">1</span><span class="br0">&#41;</span>
    <span class="br0">&#40;</span>abbrev-mode -<span class="nu0">1</span><span class="br0">&#41;</span>
    <span class="br0">&#40;</span>auto-complete-mode <span class="nu0">1</span><span class="br0">&#41;</span>
    <span class="br0">&#41;</span><span class="br0">&#41;</span></pre></div></div>

<p>有人能帮忙不。。。</p>
<p>又修改了一些东西。。可以看看 github 的 commit log 。。。。(2010-03-12)</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/use-emacs-publish-your-blog/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>昨天和 sssslang 和 xwl 聚了个会</title>
		<link>http://wdicc.com/party-with-sssslang-and-xwl/</link>
		<comments>http://wdicc.com/party-with-sssslang-and-xwl/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 04:34:19 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://wdicc.com/?p=635</guid>
		<description><![CDATA[和 sssslang 倒是很早就见面来着，好像是他那会刚回北京？聊了聊 linux 相关的东西，呵呵。 说起来 linux 用户也挺郁闷的，平时旁边没几个用的，就算是用的，好像也都是 ubuntu 用户，基本就是当 windows 用的，很少主动去挖掘 linux 的一些东西，这些用户比较务实，主要还是在工作方面，开发的东西也都是工作相关的，比较少去做一些无聊的开发。。。所以和他们好像也没什么好聊的。 前两天 #emacs-cn 的 xwl 提议聚会，大家一拍即合，呵呵，定了时间地点，那就聚一个。 聊的东西基本围绕在 emacs， linux， mac 上面。最主要的是 xwl 秀了下他的小黑 macbook 和他的 emacs，sssslang 倒是很详细的问了下 xwl 用的 elisp 扩展，可我对那些不是很明白，我觉得 elisp 就是一个变态的语言。。。对我来说，还记得的可能有下面几个吧。 1 他的 emacs 的标题会显示宋词，会定时变化。 2 有个渐变的扩展，叫做 highlight tail 的，很 cool 吸引小 mm 的必备啊，呵呵。 3 他用了很多定时器，比如执行完编译后，会 split 出来一个新的窗口显示一些编译信息，如果没有错误，那等 3 秒，这个窗口就会自动关掉。还有 [...]]]></description>
			<content:encoded><![CDATA[<p>和 sssslang 倒是很早就见面来着，好像是他那会刚回北京？聊了聊 linux 相关的东西，呵呵。</p>
<p>说起来 linux 用户也挺郁闷的，平时旁边没几个用的，就算是用的，好像也都是 ubuntu 用户，基本就是当 windows 用的，很少主动去挖掘 linux 的一些东西，这些用户比较务实，主要还是在工作方面，开发的东西也都是工作相关的，比较少去做一些无聊的开发。。。所以和他们好像也没什么好聊的。</p>
<p>前两天 #emacs-cn 的 xwl 提议聚会，大家一拍即合，呵呵，定了时间地点，那就聚一个。 <img src='http://wdicc.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>聊的东西基本围绕在 emacs， linux， mac 上面。最主要的是 xwl 秀了下他的小黑 macbook 和他的 emacs，sssslang 倒是很详细的问了下 xwl 用的 elisp 扩展，可我对那些不是很明白，我觉得 elisp 就是一个变态的语言。。。对我来说，还记得的可能有下面几个吧。</p>
<p>1 他的 emacs 的标题会显示宋词，会定时变化。<br />
2 有个渐变的扩展，叫做 highlight tail 的，很 cool 吸引小 mm 的必备啊，呵呵。<br />
3 他用了很多定时器，比如执行完编译后，会 split 出来一个新的窗口显示一些编译信息，如果没有错误，那等 3 秒，这个窗口就会自动关掉。还有 1 里面说的那个，也是定时器弄的。<br />
4 有个叫 woman 的东西不错。<br />
5 xwl 和 sssslang 一直强调 ido 是个很不错的东西，不过我是不太明白的。呵呵。<br />
6 xwl 设置打开文件默认就进只读，因为一般来说打开文件都是看看，同时也不可能写很多文件。只读后，还能设置很多单键的快捷键，比如 vim 里面的 hjkli 这些，这样让 emacs 变的有模式起来，我觉得很 cool。不过居然没有别人想到么？那应该有个 vimoper-mod 吧。。。<br />
7 还有个用来画图的 graphviz 很 cool 的。</p>
<p>因为 xwl 用的是 mac，linux 也就是我和 ssslang 了，ssslang 没有本带，基本就是我秀了下我的 kde，openbox，conky 这些，好像也没别的了。<del datetime="2009-11-29T06:17:37+00:00">说到 linux 有个郁闷的，就是我没使用什么 networkmanager，wicd 之类，都是手动配置的 wpa_supplicant ，这样就需要知道 wifi 的 key 的类型什么的，没办法得到的话就只能猜，很不方便。人家 mac， windows， s60 都连上 wifi 上网了，我这还在猜 key 的类型。。。</del> 刚发现，iwlist 实际是能显示 key 信息的。</p>
<p>mac 的效果还是很不错的，国内的很多 mac 用户真是白瞎了这个尤物了，装什么 windows。xwl 可真是 apple 的忠实 fans，花 200 块钱升级系统。。。</p>
<p>说了这么多，我感觉我很像是去打酱油的。。。</p>
<p>说实话 Starbuck 的咖啡好像也不怎么样。。。尤其一会就凉了。。很郁闷，不过回来和老婆说，老婆说：你个傻子，就不知道点一个冰的啊。。。是啊，我为什么没点一个冰的呢？。。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/party-with-sssslang-and-xwl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>把 emacs 做为 python ide</title>
		<link>http://wdicc.com/use-emacs-as-python-ide/</link>
		<comments>http://wdicc.com/use-emacs-as-python-ide/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 03:16:38 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://wdicc.com/?p=542</guid>
		<description><![CDATA[emacs 用的其实不是很多，不过他实在是个好东西，各种 mode，用熟了肯定能帮你提升不少工作速度。 我用 emacs-cvs , ropemacs( dev 版， > 0.6 ）, rope ( > 0.9.2 ), company-mode ( > 0.4.2 ) 这几个软件在 gentoo 里面都还没有，我自己写了几个 ebuild。 装好之后，基本就是 require 一下就好，我没做什么设置，效果如下。 here]]></description>
			<content:encoded><![CDATA[<p>emacs 用的其实不是很多，不过他实在是个好东西，各种 mode，用熟了肯定能帮你提升不少工作速度。</p>
<p>我用 emacs-cvs , ropemacs( dev 版， > 0.6 ）, rope ( > 0.9.2 ), company-mode ( > 0.4.2 ) 这几个软件在 gentoo  里面都还没有，我自己写了几个 ebuild。</p>
<p>装好之后，基本就是 require 一下就好，我没做什么设置，效果如下。</p>
<p><a href="http://twitpic.com/a70je">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/use-emacs-as-python-ide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

