<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0EGRn89fCp7ImA9WhdbEk4.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413</id><updated>2011-10-10T15:27:07.164+08:00</updated><category term="RMagick" /><category term="Python" /><category term="Plugin" /><category term="jQuery" /><category term="Architecture" /><category term="MySQL" /><category term="RESTful_Web_Services" /><category term="CSS" /><category term="English" /><category term="REST" /><category term="Std_Lib" /><category term="Source_Code" /><category term="Thunderbird" /><category term="Rails" /><category term="XML" /><category term="Tips" /><category term="JS" /><category term="Leben" /><category term="RadRails" /><category term="Refactoring" /><category term="Gems" /><category term="CSS_The_Missing_Manual" /><category term="Regular_Expression" /><category term="EQ" /><category term="Vi" /><category term="Reproductions" /><category term="Browser" /><category term="RSpec" /><category term="Rants" /><category term="Thinking" /><category term="Ruby" /><category term="RailsCasts" /><category term="BDD" /><category term="Linux" /><category term="HTML" /><category term="Mocha" /><category term="InstantRails" /><category term="Emacs" /><category term="The_Rails_Way" /><category term="SVN" /><category term="Jokes" /><category term="Blog" /><category term="Books" /><title>生活就是泪奔，哥特就是锅贴</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://lebenbeck.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>161</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/lebenbeck" /><feedburner:info uri="lebenbeck" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0MAQXc6eip7ImA9WhdVFkw.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-3449980996678072581</id><published>2011-09-21T15:34:00.005+08:00</published><updated>2011-09-21T21:24:00.912+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-21T21:24:00.912+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Source_Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>ActiveSupport中的class_attribute</title><content type="html">看rails guide的时候遇到了Class#class_attribute，怎么使用参见&lt;a href="http://guides.rubyonrails.org/active_support_core_extensions.html#class-attributes"&gt;guide&lt;/a&gt;和下面两篇文章，这里不做介绍&lt;br /&gt;&lt;a href="http://blog.obiefernandez.com/content/2010/04/tr3w-highlights-activesupport-class-class-attribute.html"&gt;http://blog.obiefernandez.com/content/2010/04/tr3w-highlights-activesupport-class-class-attribute.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ihower.tw/blog/archives/4878"&gt;http://ihower.tw/blog/archives/4878&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在看&lt;a href="https://github.com/rails/rails/blob/b9281e8e2c8a9955d551c0ec6720e9e342443c4b/activesupport/lib/active_support/core_ext/class/attribute.rb"&gt;源码&lt;/a&gt;的时候，发现第79行怎么都不能理解，为什么是&lt;br /&gt;&lt;pre class="quote code_bgcolor"&gt;singleton_class.#{name}&lt;br /&gt;&lt;/pre&gt;而不是&lt;br /&gt;&lt;pre class="quote code_bgcolor"&gt;self.class.#{name}&lt;br /&gt;&lt;/pre&gt;呢？&lt;br /&gt;&lt;br /&gt;由于我看的是&lt;a href="https://github.com/rails/rails/blob/b9281e8e2c8a9955d551c0ec6720e9e342443c4b/activesupport/lib/active_support/core_ext/class/attribute.rb"&gt;3.0.7的版本&lt;/a&gt;，于是又找到了最新的&lt;a href="https://github.com/rails/rails/blob/cdc4274931c2d6bafdf2b97f7e4ecedf89a8202e/activesupport/lib/active_support/core_ext/class/attribute.rb"&gt;3.1.0的版本&lt;/a&gt;&lt;br /&gt;看完之后更加迷惑，为什么要定义两个reader instance method，一个用singleton_class，一个用self.class呢？&lt;br /&gt;&lt;br /&gt;查阅了相关资料，翻看了源码提交记录，我找到了答案。&lt;br /&gt;其实本来在3.0.7版本中用self.class代替singleton_class是可以的，但为了支持在singleton_class上调用writer方法&lt;br /&gt;&lt;pre class="quote code_bgcolor"&gt;klass = Class.new { class_attribute :setting }&lt;br /&gt;object = klass.new&lt;br /&gt;object.singleton_class.setting = "foo"&lt;br /&gt;&lt;/pre&gt;所以用了singleton_class。&lt;br /&gt;&lt;br /&gt;由于object的singleton_class的superclass是klass，singleton_class自己又没定义过setting=()，所以singleton_class.setting=()还是会查找到klass里的定义并调用它。&lt;br /&gt;&lt;br /&gt;实际使用的时候，大部分情况还是object.setting=()而不是object.singleton_class.setting=()，为每个object创建singleton_class开销较大，所以做了&lt;a href="https://github.com/rails/rails/commit/320382ccd359397f2c83f8c0c622b296dcfb472b#activesupport/lib/active_support/core_ext/class"&gt;优化&lt;/a&gt;：object调用时直接查找self.class，避开了singleton_class。而针对singleton_class另做处理，由于方法查找时singleton_class优先于klass，所以&lt;br /&gt;&lt;pre class="quote code_bgcolor"&gt;def #{name}&lt;br /&gt; defined?(@#{name}) ? @#{name} : singleton_class.#{name}&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;会覆盖&lt;br /&gt;&lt;pre class="quote code_bgcolor"&gt;def #{name}&lt;br /&gt; defined?(@#{name}) ? @#{name} : self.class.#{name}&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;最后的问题是，谁引入的对singleton_class的支持呢？翻提交记录的时候找到了&lt;a href="https://github.com/rails/rails/commit/ab281f511ccb3893ea077fe8a7bb78cdd2db0885#activesupport/lib/active_support/core_ext/class/attribute.rb"&gt;答案&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-3449980996678072581?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/3449980996678072581/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=3449980996678072581" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/3449980996678072581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/3449980996678072581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/LIcTKocYf1A/activesupportclassattribute.html" title="ActiveSupport中的class_attribute" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2011/09/activesupportclassattribute.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQDSHwyeyp7ImA9WxBbFU4.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-7908682137338026065</id><published>2010-03-14T11:12:00.001+08:00</published><updated>2010-03-14T11:12:59.293+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-14T11:12:59.293+08:00</app:edited><title>Welcome home Becks</title><content type="html">&lt;p class="mobile-photo"&gt;&lt;a href="http://2.bp.blogspot.com/_TQA26q_Ts-k/S5xUO3VUq5I/AAAAAAAAAMw/Liz5PedIx9Q/s1600-h/61G8KSDR00BV0005-779297.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_TQA26q_Ts-k/S5xUO3VUq5I/AAAAAAAAAMw/Liz5PedIx9Q/s320/61G8KSDR00BV0005-779297.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322263559744402" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://1.bp.blogspot.com/_TQA26q_Ts-k/S5xUPJXigMI/AAAAAAAAAM4/vMTasNDNKOg/s1600-h/18783479_32020258-780707.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_TQA26q_Ts-k/S5xUPJXigMI/AAAAAAAAAM4/vMTasNDNKOg/s320/18783479_32020258-780707.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322268400877762" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_TQA26q_Ts-k/S5xUPiKzFBI/AAAAAAAAANA/oPZ8gTqYZbE/s1600-h/61G8KQMB00BV0005-782106.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_TQA26q_Ts-k/S5xUPiKzFBI/AAAAAAAAANA/oPZ8gTqYZbE/s320/61G8KQMB00BV0005-782106.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322275058324498" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://1.bp.blogspot.com/_TQA26q_Ts-k/S5xUQB5u2TI/AAAAAAAAANI/tPNOeIhbHkA/s1600-h/61G8KMDQ00BV0005-784627.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_TQA26q_Ts-k/S5xUQB5u2TI/AAAAAAAAANI/tPNOeIhbHkA/s320/61G8KMDQ00BV0005-784627.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322283576678706" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://3.bp.blogspot.com/_TQA26q_Ts-k/S5xUQcUnJ6I/AAAAAAAAANQ/EwISOjQvjrE/s1600-h/18785129_31640689-785848.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_TQA26q_Ts-k/S5xUQcUnJ6I/AAAAAAAAANQ/EwISOjQvjrE/s320/18785129_31640689-785848.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322290668742562" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://2.bp.blogspot.com/_TQA26q_Ts-k/S5xUQyasMOI/AAAAAAAAANY/Yi7b1wKvJNE/s1600-h/18772487_33838185-787137.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_TQA26q_Ts-k/S5xUQyasMOI/AAAAAAAAANY/Yi7b1wKvJNE/s320/18772487_33838185-787137.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322296599818466" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_TQA26q_Ts-k/S5xURdnAPBI/AAAAAAAAANg/9XUDsjD-G38/s1600-h/61G8KN9G00BV0005-789034.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_TQA26q_Ts-k/S5xURdnAPBI/AAAAAAAAANg/9XUDsjD-G38/s320/61G8KN9G00BV0005-789034.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5448322308194188306" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-7908682137338026065?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/7908682137338026065/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=7908682137338026065" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/7908682137338026065?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/7908682137338026065?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/HX1HRg3ZEbY/welcome-home-becks.html" title="Welcome home Becks" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_TQA26q_Ts-k/S5xUO3VUq5I/AAAAAAAAAMw/Liz5PedIx9Q/s72-c/61G8KSDR00BV0005-779297.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2010/03/welcome-home-becks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cBRXw4cCp7ImA9WxJbEko.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-8835759947103498158</id><published>2009-07-22T23:02:00.002+08:00</published><updated>2009-07-22T23:04:14.238+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-22T23:04:14.238+08:00</app:edited><title>Secrets of the Rails Console</title><content type="html">&lt;a href="http://slash7.com/articles/2006/12/21/secrets-of-the-rails-console-ninjas"&gt;Secrets of the Rails Console Ninjas&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-8835759947103498158?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/8835759947103498158/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=8835759947103498158" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8835759947103498158?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8835759947103498158?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/VbgPOYSB_R8/secrets-of-rails-console.html" title="Secrets of the Rails Console" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/07/secrets-of-rails-console.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMGRHY_fyp7ImA9WxJVE0g.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-4362716737446508416</id><published>2009-06-30T16:20:00.001+08:00</published><updated>2009-06-30T16:27:05.847+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-30T16:27:05.847+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><title>irb auto complete</title><content type="html">在~/.irbrc中加入：&lt;br /&gt;&lt;p class='quote'&gt;require 'irb/completion'&lt;br /&gt;ARGV.concat [ "--readline", "--prompt-mode", "simple" ]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-4362716737446508416?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/4362716737446508416/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=4362716737446508416" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/4362716737446508416?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/4362716737446508416?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/JE_jx3R2ZV4/irb-auto-complete.html" title="irb auto complete" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/06/irb-auto-complete.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAGRnYzcCp7ImA9WxJWEEk.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-6199379432227931623</id><published>2009-06-15T13:05:00.003+08:00</published><updated>2009-06-15T13:12:07.888+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-15T13:12:07.888+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>2 issues of VirtualBox on Ubuntu 8.04</title><content type="html">issue: "VirtualBox No suitable module for running kernel found"&lt;br /&gt;solution: &lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;sudo apt-get install virtualbox-ose-source&lt;br /&gt;sudo m-a update&lt;br /&gt;sudo m-a prepare&lt;br /&gt;sudo m-a a-i virtualbox-ose&lt;br /&gt;sudo /etc/init.d/vboxdrv restart&lt;/p&gt;&lt;br /&gt;issue: "VirtualBox Kernel driver not install"&lt;br /&gt;solution: &lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;sudo /etc/init.d/vboxdrv start&lt;br /&gt;sudo chmod 666 /dev/vboxdrv&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-6199379432227931623?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/6199379432227931623/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=6199379432227931623" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/6199379432227931623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/6199379432227931623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/R74hlSznzWg/2-issues-of-virtualbox-on-ubuntu-804.html" title="2 issues of VirtualBox on Ubuntu 8.04" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/06/2-issues-of-virtualbox-on-ubuntu-804.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCQ3o-cCp7ImA9WxJRGU8.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-8866515289689369719</id><published>2009-05-21T23:40:00.000+08:00</published><updated>2009-05-21T23:52:42.458+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-21T23:52:42.458+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vi" /><category scheme="http://www.blogger.com/atom/ns#" term="Browser" /><title>Vimperator</title><content type="html">&lt;a href="http://vimperator.org/trac/wiki/Vimperator"&gt;Vimperator&lt;/a&gt;是Firefox的一个&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4891"&gt;addon&lt;/a&gt;，可以像使用Vim一样来使用浏览器。&lt;br /&gt;&lt;br /&gt;以下是一些命令的备忘&lt;br /&gt;&lt;br /&gt;CTRL-Z&lt;br /&gt;Disable all Vimperator keys except &amp;lt;Esc&amp;gt; and pass them to the next event handler.&lt;br /&gt;If you also need to pass &amp;lt;Esc&amp;gt; in this mode to the web page, prepend it with &amp;lt;C-v&amp;gt;.&lt;br /&gt;&lt;br /&gt;CTRL-V&lt;br /&gt;If you only need to pass a single key to a JavaScript form field or another extension prefix the key with &amp;lt;C-v&amp;gt;.&lt;br /&gt;When Vimperator mode is temporarily disabled with &amp;lt;C-z&amp;gt;, &amp;lt;C-v&amp;gt; will pass the next key to Vimperator instead of the web page.&lt;br /&gt;&lt;br /&gt;Opened with the specified search engine if the token looks like a search string and the first word is the name of a search engine.&lt;br /&gt;The short name of a search engine is automatically guessed from its name. If you want to set a custom name, you can change it with :dialog searchengines.&lt;br /&gt;&lt;br /&gt;T Works like t but preselects current URL in the :tabopen query.&lt;br /&gt;&lt;br /&gt;:tabd[uplicate]&lt;br /&gt;Duplicates current tab.&lt;br /&gt;&lt;br /&gt;:wino[pen]&lt;br /&gt;Just like :tabopen but opens the resulting web page(s) in a new window.&lt;br /&gt;&lt;br /&gt;p&lt;br /&gt;Open (put) a URL based on the current clipboard contents in the current buffer.&lt;br /&gt;&lt;br /&gt;P&lt;br /&gt;Open (put) a URL based on the current clipboard contents in a new buffer. Works like p but opens a new tab.&lt;br /&gt;&lt;br /&gt;:ju[mps]&lt;br /&gt;List all jumps aka current tab's history aka session history.&lt;br /&gt;&lt;br /&gt;r&lt;br /&gt;Force reloading of the current page.&lt;br /&gt;&lt;br /&gt;R&lt;br /&gt;Force reloading of the current page skipping the cache.&lt;br /&gt;&lt;br /&gt;&amp;lt;C-c&amp;gt;&lt;br /&gt;Stop loading the current web page.&lt;br /&gt;&lt;br /&gt;ZQ&lt;br /&gt;Quit and don't save the session.&lt;br /&gt;&lt;br /&gt;ZZ&lt;br /&gt;Quit and save the session.&lt;br /&gt;&lt;br /&gt;g&amp;lt;C-g&amp;gt;&lt;br /&gt;Print file information.&lt;br /&gt;&lt;br /&gt;[count]gi&lt;br /&gt;Focus last used input field. If there is no last input field, it focuses the first input field. When used with [count] it directly jumps to the [count]th input field.&lt;br /&gt;&lt;br /&gt;zz&lt;br /&gt;Set full zoom value of current web page. Zoom value can be between 30 and 300%. If it is omitted, full zoom is reset to 100%.&lt;br /&gt;&lt;br /&gt;/{pattern}[/]&amp;lt;CR&amp;gt;&lt;br /&gt;If "\c" appears anywhere in the pattern the whole pattern is handled as though 'ignorecase' is on. "\C" forces case-sensitive matching for the whole pattern.&lt;br /&gt;&lt;br /&gt;:noh[lsearch]&lt;br /&gt;Remove the search highlighting.&lt;br /&gt;&lt;br /&gt;:buffers [filter]&lt;br /&gt;B&lt;br /&gt;Show a list of buffers (=tabs) matching [filter]. Without [filter] list all tabs.&lt;br /&gt;&lt;br /&gt;:tab {cmd}&lt;br /&gt;Execute {cmd} and tell it to output in a new tab. Works only for commands that support it, currently:&lt;br /&gt;      :tab help&lt;br /&gt;      :tab prefs[!]&lt;br /&gt;      :tab addons&lt;br /&gt;      :tab downloads&lt;br /&gt;&lt;br /&gt;g0&lt;br /&gt;Switch to the first tab.&lt;br /&gt;&lt;br /&gt;g$&lt;br /&gt;Switch to the last tab.&lt;br /&gt;&lt;br /&gt;u&lt;br /&gt;Undo closing of a tab.&lt;br /&gt;&lt;br /&gt;ExtendedHint mode&lt;br /&gt;{mode} can be one of:&lt;br /&gt;      ;; to focus a link and hover it with the mouse&lt;br /&gt;      ;? to show information about the element (incomplete)&lt;br /&gt;      ;s to save its destination&lt;br /&gt;      ;a to save its destination (prompting for save location)&lt;br /&gt;      ;f to focus a frame&lt;br /&gt;      ;F to follow a sequence of &amp;lt;CR&amp;gt;-delimited hints in background tabs&lt;br /&gt;      ;y to yank its destination location&lt;br /&gt;      ;Y to yank its text description&lt;br /&gt;&lt;br /&gt;:bma[rk]&lt;br /&gt;Add a bookmark.&lt;br /&gt;&lt;br /&gt;:bmarks [filter]&lt;br /&gt;List or open multiple bookmarks. Open the message window at the bottom of the screen with all bookmarks which match [filter] either in the title or URL.&lt;br /&gt;&lt;br /&gt;m{a-zA-Z}&lt;br /&gt;Set mark at the cursor position. Marks a-z are local to the buffer, whereas A-Z are valid between buffers.&lt;br /&gt;&lt;br /&gt;'{a-zA-Z}&lt;br /&gt;Jump to the mark in the current buffer. Marks a-z are local to the buffer, whereas A-Z are valid between buffers.&lt;br /&gt;&lt;br /&gt;:marks&lt;br /&gt;Show all location marks of the current web page.&lt;br /&gt;&lt;br /&gt;q{0-9a-zA-Z}&lt;br /&gt;Record a key sequence into a macro. Available macros are {0-9a-zA-Z} (uppercase to append). Type q to stop recording.&lt;br /&gt;&lt;br /&gt;:mac[ros] [pat]&lt;br /&gt;List recorded macros matching the optional regular expression [pat]. If no regexp is given, list all macros.&lt;br /&gt;&lt;br /&gt;:dialog printpreview&lt;br /&gt;&lt;br /&gt;&amp;lt;C-a&amp;gt;&lt;br /&gt;Increment last number in URL&lt;br /&gt;&lt;br /&gt;&amp;lt;C-x&amp;gt;&lt;br /&gt;Decrement last number in URL&lt;br /&gt;&lt;br /&gt;0&lt;br /&gt;Scroll to the absolute left of the document&lt;br /&gt;&lt;br /&gt;$&lt;br /&gt;Scroll to the absolute right of the document&lt;br /&gt;&lt;br /&gt;gU&lt;br /&gt;Go to the root of the website&lt;br /&gt;&lt;br /&gt;:messages&lt;br /&gt;Display previously given messages&lt;br /&gt;&lt;br /&gt;:restart&lt;br /&gt;Force the browser to restart&lt;br /&gt;&lt;br /&gt;:se[t] all&lt;br /&gt;Show all options.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-8866515289689369719?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/8866515289689369719/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=8866515289689369719" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8866515289689369719?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8866515289689369719?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/LdPcRnsFynE/vimperator.html" title="Vimperator" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/05/vimperator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cAQH4-fyp7ImA9WxVbGEs.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-5445648103520948137</id><published>2009-03-29T00:01:00.006+08:00</published><updated>2009-04-05T02:17:21.057+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-05T02:17:21.057+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><title>fastri</title><content type="html">&lt;p class="cmd cmd_normal"&gt;sudo gem install fastri&lt;br /&gt;fastri-server -b&lt;/p&gt;&lt;br /&gt;然后就可以&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;qri string&lt;/p&gt;如果显示大于一屏的话&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;qri string|less -r&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-5445648103520948137?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/5445648103520948137/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=5445648103520948137" title="2 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/5445648103520948137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/5445648103520948137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/AJtnlveFLSU/fastri.html" title="fastri" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/03/fastri.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EASXo5eCp7ImA9WxVWF00.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-7634503479933346693</id><published>2009-02-27T12:31:00.009+08:00</published><updated>2009-02-27T12:40:48.420+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-27T12:40:48.420+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Leben" /><title>和谐</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TQA26q_Ts-k/Sads2BXCCoI/AAAAAAAAAHc/a5wlo88YRCs/s1600-h/m2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 355px;" src="http://4.bp.blogspot.com/_TQA26q_Ts-k/Sads2BXCCoI/AAAAAAAAAHc/a5wlo88YRCs/s400/m2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307330361213192834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TQA26q_Ts-k/SadtA8AxZXI/AAAAAAAAAHk/vuooRW12xA0/s1600-h/m.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_TQA26q_Ts-k/SadtA8AxZXI/AAAAAAAAAHk/vuooRW12xA0/s400/m.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307330548756211058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TQA26q_Ts-k/SadtX1WXJ6I/AAAAAAAAAHs/tuKqUKXjoz8/s1600-h/m8.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 310px; height: 400px;" src="http://4.bp.blogspot.com/_TQA26q_Ts-k/SadtX1WXJ6I/AAAAAAAAAHs/tuKqUKXjoz8/s400/m8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307330942104709026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TQA26q_Ts-k/SadtbDEn5oI/AAAAAAAAAH0/UnKjZzIQU14/s1600-h/m9.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://1.bp.blogspot.com/_TQA26q_Ts-k/SadtbDEn5oI/AAAAAAAAAH0/UnKjZzIQU14/s400/m9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307330997328012930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TQA26q_Ts-k/SadtguBedJI/AAAAAAAAAH8/6QwJ_Jk6dEM/s1600-h/m3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 323px;" src="http://2.bp.blogspot.com/_TQA26q_Ts-k/SadtguBedJI/AAAAAAAAAH8/6QwJ_Jk6dEM/s400/m3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307331094756881554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TQA26q_Ts-k/SadtkyAl0cI/AAAAAAAAAIE/Fiqvkn0Jv2o/s1600-h/m5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 329px;" src="http://2.bp.blogspot.com/_TQA26q_Ts-k/SadtkyAl0cI/AAAAAAAAAIE/Fiqvkn0Jv2o/s400/m5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5307331164546388418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;可惜加里不在！&lt;br /&gt;&lt;br /&gt;什么时候能看到Rose大叔和Slash这样站在一起呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-7634503479933346693?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/7634503479933346693/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=7634503479933346693" title="2 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/7634503479933346693?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/7634503479933346693?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/bGhEJapi1pM/blog-post.html" title="和谐" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_TQA26q_Ts-k/Sads2BXCCoI/AAAAAAAAAHc/a5wlo88YRCs/s72-c/m2.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/02/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcERXk4cSp7ImA9WxVWEEw.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-8956630341279833492</id><published>2009-02-19T11:53:00.002+08:00</published><updated>2009-02-19T12:00:04.739+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-19T12:00:04.739+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MySQL" /><title>SQLyog</title><content type="html">MySQL 自带的图形工具太难用了。&lt;br /&gt;看到 Woody 同学在用 SQLyog，挺好用的。&lt;br /&gt;&lt;a href="http://www.webyog.com/en/downloads.php"&gt;http://www.webyog.com/en/downloads.php&lt;/a&gt;&lt;br /&gt;下载 SQLyog MySQL GUI - Community Edition&lt;br /&gt;然后用 wine 来跑:&lt;br /&gt;&lt;a href="http://www.webyog.com/faq/content/31/71/en/can-i-use-sqlyog-with-the-wine-windows-emulator-on-linux.html"&gt;http://www.webyog.com/faq/content/31/71/en/can-i-use-sqlyog-with-the-wine-windows-emulator-on-linux.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-8956630341279833492?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/8956630341279833492/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=8956630341279833492" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8956630341279833492?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8956630341279833492?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/l9-g1HsphE0/sqlyog.html" title="SQLyog" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/02/sqlyog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8HSXw-fyp7ImA9WxVXFEQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-3618239519291682130</id><published>2009-02-13T11:42:00.002+08:00</published><updated>2009-02-13T12:03:58.257+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-13T12:03:58.257+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Thunderbird" /><title>Highlighting text in thunderbird</title><content type="html">Thunderbird 里不能直接 highlight 文字的背景色，这点很不方便。&lt;br /&gt;Google了一下，&lt;a href="http://kb.mozillazine.org/Highlighting_in_messages"&gt;http://kb.mozillazine.org/Highlighting_in_messages&lt;/a&gt;，NND居然让我自己写HTML来实现。这种粗活应该让下人去做啊，怎么能让我来做呢？&lt;br /&gt;再 google 之，发现了一个插件 &lt;a href="https://addons.mozilla.org/zh-CN/thunderbird/addon/6509"&gt;Highlight Text&lt;/a&gt;，生活就此完美鸟。&lt;br /&gt;安装完后，在邮件编辑窗口里，View -&gt; Toolbars -&gt; Customize，将Highlight标签拖到toolbar上，然后就可以用了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-3618239519291682130?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/3618239519291682130/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=3618239519291682130" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/3618239519291682130?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/3618239519291682130?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/FDKOHRkFWtg/highlighting-text-in-thunderbird.html" title="Highlighting text in thunderbird" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/02/highlighting-text-in-thunderbird.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QAR309eyp7ImA9WxVREEQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-1072979471000710994</id><published>2009-01-16T16:38:00.001+08:00</published><updated>2009-01-16T16:42:26.363+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-16T16:42:26.363+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vi" /><title>用ctags在vim里实现跳转</title><content type="html">首先安装ctags:&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;sudo apt-get install ctags&lt;/p&gt;&lt;br /&gt;然后在源码的根目录下执行命令：&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;ctags -R&lt;/p&gt;或&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;ctags --recurse&lt;/p&gt;&lt;br /&gt;这会在根目录下生成一个tags文件&lt;br /&gt;&lt;br /&gt;接着在~/.vimrc里加上这两句&lt;br /&gt;set tags=tags;&lt;br /&gt;set autochdir&lt;br /&gt;&lt;br /&gt;然后按Ctrl-]，就可以跳转到方法定义的地方了。&lt;br /&gt;要想跳回去，按Ctrl-t&lt;br /&gt;&lt;br /&gt;参考：&lt;br /&gt;&lt;a href="http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx"&gt;http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://likeyesterday.spaces.live.com/Blog/cns!A80F5D17DD9D10BF!148.entry"&gt;http://likeyesterday.spaces.live.com/Blog/cns!A80F5D17DD9D10BF!148.entry&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-1072979471000710994?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/1072979471000710994/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=1072979471000710994" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/1072979471000710994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/1072979471000710994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/cRM_Cqy_1wc/ctagsvim.html" title="用ctags在vim里实现跳转" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/01/ctagsvim.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMSHg9fSp7ImA9WxVSFEo.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-2971250957565344766</id><published>2009-01-09T12:09:00.002+08:00</published><updated>2009-01-09T12:18:09.665+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-09T12:18:09.665+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SVN" /><title>SVN 忽略文件</title><content type="html">以前都是给某个具体的目录设置 svn:ignore 属性来忽略其下的某些文件。&lt;br /&gt;可是有些临时文件（比如vim产生的临时文件*.swp和备份文件*~）在很多目录下都可能会产生，而svn 的propedit 命令没有递归到子目录的选项（propset倒是有递归子目录选项，不过它会覆盖原来已有的属性设置），难道要每个目录都设置一次？&lt;br /&gt;&lt;br /&gt;svn有个global-ignores list，打开 ~/.subversion/config，设置如下：&lt;br /&gt;global-ignores = *.swp *~&lt;br /&gt;这样就可以忽略所有目录下的这些文件了。&lt;br /&gt;&lt;br /&gt;这个设置只是local的设置，并不会影响server。换句话说，别人机器上并不会自动忽略这些文件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-2971250957565344766?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/2971250957565344766/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=2971250957565344766" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2971250957565344766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2971250957565344766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/ApujbyUftk8/svn.html" title="SVN 忽略文件" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/01/svn.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IBQXo4fSp7ImA9WxVSFEU.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-5442169275160452921</id><published>2009-01-08T16:01:00.004+08:00</published><updated>2009-01-09T14:12:30.435+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-09T14:12:30.435+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vi" /><title>Vim Plugin - TabBar</title><content type="html">&lt;a href="http://lebenbeck.blogspot.com/2009/01/vim-project-plugin.html"&gt;上次&lt;/a&gt;用了个叫&lt;a href="http://www.vim.org/scripts/script.php?script_id=159"&gt;miniBufExplorer&lt;/a&gt;的插件，已经很好用了，唯一的缺点是不支持Alt+{1,2,3...}来切换。&lt;br /&gt;结果今天发现了另一个插件：&lt;a href="http://www.vim.org/scripts/script.php?script_id=1338"&gt;TabBar&lt;/a&gt;，它是基于miniBufExplorer的。&lt;br /&gt;&lt;br /&gt;这下可以用Alt+{1,2,3...}和Ctrl+Tab来模拟tab间的切换了。但是在窗口间切换就不方便，要用CTRL+w w，后来google了一下，发现了这篇文章：&lt;a href="http://www.lousycoder.com/blog/index.php?/archives/97-Vim-+Project-+Tabbar.html"&gt;http://www.lousycoder.com/blog/index.php?/archives/97-Vim-+Project-+Tabbar.html&lt;/a&gt;&lt;br /&gt;按里面的介绍，在~/.vimrc里加上以下的设置：&lt;br /&gt;map &amp;lt;C-H&gt; &amp;lt;C-W&gt;h&lt;br /&gt;map &amp;lt;C-J&gt; &amp;lt;C-W&gt;j&lt;br /&gt;map &amp;lt;C-K&gt; &amp;lt;C-W&gt;k&lt;br /&gt;map &amp;lt;C-L&gt; &amp;lt;C-W&gt;l&lt;br /&gt;然后按Ctrl+{h,j,k,l}就可以在窗口间肆意流窜了。&lt;br /&gt;&lt;br /&gt;默认tab的高度是1,也就是说打开的tab太多超过一行的话，后打开tab就看不见了。当然这时我们可以用鼠标拖动来扩大tab窗口的高度，然而更好的办法是配置一个tab窗口高度的最大值：&lt;br /&gt;let g:Tb_MaxSize = 3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-5442169275160452921?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/5442169275160452921/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=5442169275160452921" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/5442169275160452921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/5442169275160452921?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/ZUiJYVSQe7Q/vim-plugin-tabbar.html" title="Vim Plugin - TabBar" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/01/vim-plugin-tabbar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGQ3s8eyp7ImA9WxVSFE0.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-8700890929065835736</id><published>2009-01-06T18:52:00.004+08:00</published><updated>2009-01-08T16:13:42.573+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-08T16:13:42.573+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vi" /><title>Vim-Project Plugin</title><content type="html">Project quickstart guide:&lt;br /&gt;(From &lt;a href="http://wiki.rubyonrails.org/rails/pages/howtousevimwithrails"&gt;http://wiki.rubyonrails.org/rails/pages/howtousevimwithrails&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Here is a quick guide to get you started after installing Project.&lt;br /&gt;   1. Type :Project in Vim to launch the Project plugin.&lt;br /&gt;   2. Type \C to launch the create project routine.&lt;br /&gt;   3. Enter a name for the project (e.g. @RailsApp@)&lt;br /&gt;   4. Enter the directory path (e.g. /Users/me/Development/RailsApp)&lt;br /&gt;   5. Type . as the CD parameter.&lt;br /&gt;   6. Type * as the filter.&lt;br /&gt;   7. Type \r to load all files and directories.&lt;br /&gt;&lt;br /&gt;project中文帮助: &lt;a href="http://www.cppblog.com/DrMagic/archive/2007/11/19/36964.html"&gt;http://www.cppblog.com/DrMagic/archive/2007/11/19/36964.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;要使用本插件, 只需将其放置到 Vim 的插件目录(~/.vim/plugin)即可. 参见&lt;br /&gt;"|add-global-plugin|", 在下次打开 Vim 时, 输入如下命令 &gt;&lt;br /&gt;    :Project&lt;br /&gt;或者 &gt;&lt;br /&gt;    :Project filename&lt;br /&gt;&lt;br /&gt;如果没有指定具体的项目文件, 那么会默认使用$HOME/.vimprojects文件.&lt;br /&gt;&lt;br /&gt;命令: [g]vim +Project 可在 Vim 启动时同时自动载入project插件窗口.&lt;br /&gt;（可以在~/.bashrc里加个alias: alias vimp='vim +Project'）&lt;br /&gt;&lt;br /&gt;在~/.vimrc里设置标志位和热键映射：&lt;br /&gt;" Set project-flags&lt;br /&gt;  let g:proj_flags="imstg"&lt;br /&gt;" Project-adding-mappings&lt;br /&gt;  nmap &lt;silent&gt; &lt;Leader&gt;P :Project&lt;CR&gt;&lt;br /&gt;g:proj_flags默认的标志位是imst，这里加上g以后，就可以按&lt;F12&gt;关闭和打开左边的项目窗口。&lt;br /&gt;设置了上面那个映射之后，按\P就可以将光标焦点移到项目窗口。&lt;br /&gt;&lt;br /&gt;一些热键：&lt;br /&gt;&lt;br /&gt;&lt;S-Return&gt;(Shift+回车) 或 \s: 打开一个文件，但会水平分割目标窗口. &lt;br /&gt;&lt;br /&gt;\v: 仅仅显示文件内容, 而光标依然停留在项目窗口中.&lt;br /&gt;&lt;br /&gt;&lt;space&gt;: 增加项目窗口的宽度，反复点击则为在原宽度和增加后的宽度之间切换.&lt;br /&gt;&lt;br /&gt;\g: 搜索当前项目层所有文件.&lt;br /&gt;&lt;br /&gt;\G: 搜索项目所有层所有文件.&lt;br /&gt;&lt;br /&gt;当项目窗口因为或开或闭的折叠显得凌乱时, 按 zm 可以关闭所有的展开折叠.&lt;br /&gt;&lt;br /&gt;\r: 根据过滤符更新光标处的项目（也就是刷新该目录）&lt;br /&gt;&lt;br /&gt;\R: 递归执行 \r.&lt;br /&gt;&lt;br /&gt;另一个有用的plugin: &lt;a href="http://www.vim.org/scripts/script.php?script_id=159"&gt;miniBufExplorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;把下载的文件copy到~/.vim/plugin/目录下&lt;br /&gt;然后在.vimrc里加上：&lt;br /&gt;" minibufexpl setting&lt;br /&gt;  let g:miniBufExplMapWindowNavVim = 1&lt;br /&gt;  let g:miniBufExplMapWindowNavArrows = 1&lt;br /&gt;  let g:miniBufExplMapCTabSwitchBufs = 1&lt;br /&gt;  let g:miniBufExplModSelTarget = 1&lt;br /&gt;&lt;br /&gt;然后就可以用Ctrl+Tab键来切换tab了。&lt;br /&gt;&lt;br /&gt;要想删除某个文件的打开记录，则先Ctrl+UP切换到上方的MiniBufExplorer窗口，然后将光标移动到要删的文件名上（不是删文件，而是删文件的打开记录），按d就行了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-8700890929065835736?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/8700890929065835736/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=8700890929065835736" title="1 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8700890929065835736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/8700890929065835736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/EajPrZ291r0/vim-project-plugin.html" title="Vim-Project Plugin" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2009/01/vim-project-plugin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08NQnkyeCp7ImA9WxRVE0o.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-4405836546315072051</id><published>2008-11-11T12:59:00.001+08:00</published><updated>2008-11-11T13:04:53.790+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-11T13:04:53.790+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BDD" /><category scheme="http://www.blogger.com/atom/ns#" term="RSpec" /><title>The RSpec Book</title><content type="html">终于有 rspec 的书了：&lt;br /&gt;&lt;a href="http://www.pragprog.com/titles/achbd/the-rspec-book"&gt;http://www.pragprog.com/titles/achbd/the-rspec-book&lt;/a&gt;&lt;br /&gt;2009年4月出版，beta版2008年12月出：&lt;br /&gt;&lt;a href="http://groups.google.com/group/rspec/browse_thread/thread/832c6ce69b6b8921?pli=1"&gt;http://groups.google.com/group/rspec/browse_thread/thread/832c6ce69b6b8921?pli=1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-4405836546315072051?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/4405836546315072051/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=4405836546315072051" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/4405836546315072051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/4405836546315072051?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/uDDDS-ax-YA/rspec-book.html" title="The RSpec Book" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/11/rspec-book.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUABQnc7cCp7ImA9WxRVEkQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-2833089862464588206</id><published>2008-11-10T13:08:00.002+08:00</published><updated>2008-11-10T13:09:13.908+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-10T13:09:13.908+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Jokes" /><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions" /><title>Google Chrome浏览器Logo诞生过程（转）</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TQA26q_Ts-k/SRfB5dJuVbI/AAAAAAAAAEM/5A2c8aByasU/s1600-h/2979957129_e01589294c.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_TQA26q_Ts-k/SRfB5dJuVbI/AAAAAAAAAEM/5A2c8aByasU/s400/2979957129_e01589294c.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5266891482055202226" /&gt;&lt;/a&gt;&lt;br /&gt;太有才了！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-2833089862464588206?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/2833089862464588206/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=2833089862464588206" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2833089862464588206?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2833089862464588206?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/Rh9xERCD4kM/google-chromelogo.html" title="Google Chrome浏览器Logo诞生过程（转）" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_TQA26q_Ts-k/SRfB5dJuVbI/AAAAAAAAAEM/5A2c8aByasU/s72-c/2979957129_e01589294c.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/11/google-chromelogo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQASXk6cCp7ImA9WxRVEkQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-2583899914057964324</id><published>2008-11-10T12:57:00.002+08:00</published><updated>2008-11-10T13:02:28.718+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-10T13:02:28.718+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Browser" /><title>CHM Reader</title><content type="html">Firefox 的一个插件，可以在浏览器里打开 *.chm 文件，就像浏览网页一样。&lt;br /&gt;&lt;br /&gt;打开 CHM 文件：在工具栏上，文件 -&gt; Open CHM Files&lt;br /&gt;打开左侧目录（书签）栏：查看 -&gt; 侧栏 -&gt; CHM Reader，或 Ctrl + E&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-2583899914057964324?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/2583899914057964324/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=2583899914057964324" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2583899914057964324?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2583899914057964324?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/Jkn-e2Jf1IY/chm-reader.html" title="CHM Reader" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/11/chm-reader.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcGRHg_fCp7ImA9WxRWEko.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-7658399746804555777</id><published>2008-10-29T17:19:00.000+08:00</published><updated>2008-10-29T17:20:25.644+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-29T17:20:25.644+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Regular_Expression" /><title>Regular Expression Basic Syntax Reference</title><content type="html">&lt;a href="http://www.regular-expressions.info/reference.html"&gt;http://www.regular-expressions.info/reference.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-7658399746804555777?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/7658399746804555777/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=7658399746804555777" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/7658399746804555777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/7658399746804555777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/mqz9vOdtd84/regular-expression-basic-syntax.html" title="Regular Expression Basic Syntax Reference" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/10/regular-expression-basic-syntax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cBRX85cCp7ImA9WxRWEko.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-2357226882326568128</id><published>2008-10-29T17:03:00.000+08:00</published><updated>2008-10-29T17:04:14.128+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-29T17:04:14.128+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions" /><title>Who Do You Trust（转）</title><content type="html">有意思的一篇文章：&lt;a href="http://www.infoq.com/cn/articles/Who-Do-You-Trust-Linda-Rising"&gt;http://www.infoq.com/cn/articles/Who-Do-You-Trust-Linda-Rising&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-2357226882326568128?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/2357226882326568128/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=2357226882326568128" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2357226882326568128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2357226882326568128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/icgIRYKGr2s/who-do-you-trust.html" title="Who Do You Trust（转）" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/10/who-do-you-trust.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFR3Y5eyp7ImA9WxRWEkg.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-2635269294586736364</id><published>2008-10-29T12:07:00.001+08:00</published><updated>2008-10-29T12:08:36.823+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-29T12:08:36.823+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>查看系统是否是64位的</title><content type="html">&lt;p class="cmd cmd_normal"&gt;uname -a&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-2635269294586736364?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/2635269294586736364/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=2635269294586736364" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2635269294586736364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2635269294586736364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/bakBAdxRP90/64.html" title="查看系统是否是64位的" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/10/64.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYCR3o_eyp7ImA9WxRXFkQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-6874581820413599584</id><published>2008-10-23T01:31:00.002+08:00</published><updated>2008-10-23T01:39:26.443+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-23T01:39:26.443+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Blog" /><title>再设hosts</title><content type="html">不知道为什么，以前设的 hosts 不好使了：&lt;br /&gt;72.14.219.190 xxx.blogspot.com&lt;br /&gt;别人的不设也能访问，就是访问不了自己的，难道我人品有问题。&lt;br /&gt;&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;nslookup xxx.blogspot.com&lt;br /&gt;&lt;br /&gt;Server:  gjjline.bta.net.cn&lt;br /&gt;Address:  202.106.0.20&lt;br /&gt;&lt;br /&gt;Non-authoritative answer:&lt;br /&gt;Name:    blogspot.l.google.com&lt;br /&gt;Address:  209.85.175.191&lt;br /&gt;Aliases:  xxx.blogspot.com&lt;/p&gt;&lt;br /&gt;把得到的 IP 再设置到 hosts 里：&lt;br /&gt;209.85.175.191 xxx.blogspot.com&lt;br /&gt;又可以访问了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-6874581820413599584?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/6874581820413599584/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=6874581820413599584" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/6874581820413599584?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/6874581820413599584?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/EJ-1LnRYmFo/hosts.html" title="再设hosts" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/10/hosts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEHRXg9fSp7ImA9WxRXFkQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-6169584299041722217</id><published>2008-10-23T00:03:00.007+08:00</published><updated>2008-10-23T01:30:34.665+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-23T01:30:34.665+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions" /><title>How To Generate Local RDocs</title><content type="html">最近 &lt;a href="http://www.ruby-doc.org/core/"&gt;http://www.ruby-doc.org/core/&lt;/a&gt; 无法访问了，而 ri 用起来始终不习惯。偶然看到了个生成 Local RDocs 的方法。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mindsifter.com/2008/1/8/generate-local-ruby-core-rdocs"&gt;http://www.mindsifter.com/2008/1/8/generate-local-ruby-core-rdocs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://weblog.jamisbuck.org/2005/4/8/rdoc-template"&gt;http://weblog.jamisbuck.org/2005/4/8/rdoc-template&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download the template &lt;a href="http://www.jamisbuck.org/svn/rdoc-templates/jamis.rb"&gt;here&lt;/a&gt;&lt;br /&gt;To use it, copy it into the “rdoc/generators/template/html” directory of your Ruby installation.&lt;br /&gt;Then:&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;rdoc --template=jamis --op &amp;lt;some output dir&amp;gt;&lt;/p&gt;&lt;br /&gt;可能由于我机器上 rubygem 版本的原因，这个模板用不了，不过可以用自带的模板&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;rdoc --template=html --op &amp;lt;some output dir&amp;gt;&lt;/p&gt;&lt;br /&gt;注：执行这个命令时，要先转到 ruby 源代码的目录，默认是生成该目录下所有文件的 rdoc。&lt;br /&gt;也可以指定文件：&lt;br /&gt;&lt;p class="cmd cmd_normal"&gt;rdoc --template=html --op &amp;lt;some output dir&amp;gt; array.c&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-6169584299041722217?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/6169584299041722217/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=6169584299041722217" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/6169584299041722217?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/6169584299041722217?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/J-_TxPt09tU/how-to-generate-local-ruby-core-rdocs.html" title="How To Generate Local RDocs" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/10/how-to-generate-local-ruby-core-rdocs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIBRHczcSp7ImA9WxdVFk4.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-132571852513363521</id><published>2008-07-21T17:39:00.002+08:00</published><updated>2008-07-21T17:45:55.989+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-21T17:45:55.989+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Leben" /><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions" /><title>奇异鸟kiwi（转）</title><content type="html">&lt;a href="http://www.youtube.com/watch?v=sdUUx5FdySs"&gt;http://www.youtube.com/watch?v=sdUUx5FdySs&lt;/a&gt;&lt;br /&gt;很感人的视频，以前汉东推荐过的。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-132571852513363521?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/132571852513363521/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=132571852513363521" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/132571852513363521?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/132571852513363521?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/DpZnbkd0cBA/blog-post_21.html" title="奇异鸟kiwi（转）" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/07/blog-post_21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMHRHY6eSp7ImA9WxdVE0s.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-1162837401741636826</id><published>2008-07-18T16:04:00.002+08:00</published><updated>2008-07-18T16:07:15.811+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-18T16:07:15.811+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions" /><title>（单元）测试被高估了（转）</title><content type="html">讲测试的一篇好文。&lt;br /&gt;&lt;a href="http://railspikes.com/2008/7/11/testing-is-overrated"&gt;http://railspikes.com/2008/7/11/testing-is-overrated&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-1162837401741636826?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/1162837401741636826/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=1162837401741636826" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/1162837401741636826?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/1162837401741636826?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/H4KKpB45Iiw/blog-post_18.html" title="（单元）测试被高估了（转）" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/07/blog-post_18.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UARnc_fyp7ImA9WxdWFEQ.&quot;"><id>tag:blogger.com,1999:blog-724035857885774413.post-2513271840475041941</id><published>2008-07-08T14:37:00.001+08:00</published><updated>2008-07-08T14:40:47.947+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-08T14:40:47.947+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Reproductions" /><category scheme="http://www.blogger.com/atom/ns#" term="Rails" /><title>浅析Ruby on Rails部署方案（转）</title><content type="html">&lt;a href="http://docs.google.com/View?docid=ddcvzh74_28f9xppqfh"&gt;http://docs.google.com/View?docid=ddcvzh74_28f9xppqfh&lt;/a&gt;&lt;br /&gt;有数据有分析有结论，图文表并茂，相当强大。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/724035857885774413-2513271840475041941?l=lebenbeck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://lebenbeck.blogspot.com/feeds/2513271840475041941/comments/default" title="帖子评论" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=724035857885774413&amp;postID=2513271840475041941" title="0 条评论" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2513271840475041941?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/724035857885774413/posts/default/2513271840475041941?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lebenbeck/~3/IXt-_-GJMnk/ruby-on-rails.html" title="浅析Ruby on Rails部署方案（转）" /><author><name>林健</name><uri>http://www.blogger.com/profile/04299211693720243113</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://bp2.blogger.com/_TQA26q_Ts-k/R4MM9PFBO9I/AAAAAAAAAAM/XdVAD6Pu8MA/S220/view.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://lebenbeck.blogspot.com/2008/07/ruby-on-rails.html</feedburner:origLink></entry></feed>

