<?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>夜游长空 &#187; 开发</title>
	<atom:link href="http://www.zhangdi.name/tag/%e5%bc%80%e5%8f%91/feed" rel="self" type="application/rss+xml" />
	<link>http://www.zhangdi.name</link>
	<description>Blog of Daniel &#38; Kimi</description>
	<lastBuildDate>Wed, 13 Oct 2010 05:05:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Rails on Vim</title>
		<link>http://www.zhangdi.name/2008/08/26/rails-on-vim.html</link>
		<comments>http://www.zhangdi.name/2008/08/26/rails-on-vim.html#comments</comments>
		<pubDate>Tue, 26 Aug 2008 10:53:56 +0000</pubDate>
		<dc:creator>zhangdi</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[开发]]></category>

		<guid isPermaLink="false">http://www.zhangdi.name/?p=306</guid>
		<description><![CDATA[一直在非常缓慢的学习RubyOnRails。工欲善其事，必先利其器。程序员的利器之一就是编辑器。所有接触过Rails的人，都会对一个叫做TextMate的编辑器记忆深刻。但是我不是Mac用户，而TextMate又坚持不出Linux和Windows版本。想花钱用都没有机会。（当然，除非先花钱买个MacBook）这就坚定了我继续使用我自己的利器－－Vim的决心。 在Ubuntu里面配置Vim非常简单。apt-get吧。然后gem install vim-ruby吧。这样你的Vim就有了最新的对于Ruby的支持。这还不够，因为我要开发Rails应用。要让Vim懂Rails。有个非常帅的Vim插件，rails.vim。它可以让人不离开Vim把Rails的一切都搞定。比如，script/generate model xxx，只需要在Vim里面:Rgenerate model xxx。还可以帮助非常快速的在Rails项目中切换文件。功能很强大，具体看这里吧。 不过，我使用的Rails是2.1+版本，这个rails.vim有一点问题。在:Rgenerate migration xxx的时候，总是打开一个空文件，而不是自动生成的migration文件。经过研究，发现原来是Rails2.1+后，每个migration文件的前缀由原来的序号变成了一个UTC的时间字符串。而rails.vim的策略是先-p执行一下命令，然后分析生成的文件名，再真正执行命令，最后打开文件。这个逻辑对于其他的命令都OK，只有migration不行。就是因为它的命名规则中加入了UTC时间字符串。导致了第一次-p执行和第二次真正执行之间文件名不同（因为时间还是稍微有差别的，比如1秒）。 知道了问题，就可以轻松把它修正。这就是源代码的力量。 在rails.vim中搜索这句话: 1 edit `=RailsRoot().'/'.file` 替换为: 1 2 3 4 5 6 7 if target == &#34;migration&#34; let suffix = strpart&#40;file, stridx&#40;file, &#34;_&#34;&#41;&#41; let filename = system&#40;'ls '.RailsRoot&#40;&#41;.'/db/migrate/*'.suffix&#41; edit `=filename` else edit `=RailsRoot().'/'.file` endif 相关文章KXShell的一个Demo开心网“争车位”游戏分析（纯技术）解决使用gem安装时出现mkmf找不到的问题为Wordpress的评论部分加上头像Free Ruby on Rails Book]]></description>
			<content:encoded><![CDATA[<p>一直在非常缓慢的学习RubyOnRails。工欲善其事，必先利其器。程序员的利器之一就是编辑器。所有接触过Rails的人，都会对一个叫做TextMate的编辑器记忆深刻。但是我不是Mac用户，而TextMate又坚持不出Linux和Windows版本。想花钱用都没有机会。（当然，除非先花钱买个MacBook）这就坚定了我继续使用我自己的利器－－Vim的决心。</p>
<p>在Ubuntu里面配置Vim非常简单。apt-get吧。然后gem install vim-ruby吧。这样你的Vim就有了最新的对于Ruby的支持。这还不够，因为我要开发Rails应用。要让Vim懂Rails。有个非常帅的Vim插件，<a href="http://www.vim.org/scripts/script.php?script_id=1567" target="_blank">rails.vim</a>。它可以让人不离开Vim把Rails的一切都搞定。比如，script/generate model xxx，只需要在Vim里面:Rgenerate model xxx。还可以帮助非常快速的在Rails项目中切换文件。功能很强大，具体看<a href="http://rails.vim.tpope.net/" target="_blank">这里</a>吧。</p>
<p>不过，我使用的Rails是2.1+版本，这个rails.vim有一点问题。在:Rgenerate migration xxx的时候，总是打开一个空文件，而不是自动生成的migration文件。经过研究，发现原来是Rails2.1+后，每个migration文件的前缀由原来的序号变成了一个UTC的时间字符串。而rails.vim的策略是先-p执行一下命令，然后分析生成的文件名，再真正执行命令，最后打开文件。这个逻辑对于其他的命令都OK，只有migration不行。就是因为它的命名规则中加入了UTC时间字符串。导致了第一次-p执行和第二次真正执行之间文件名不同（因为时间还是稍微有差别的，比如1秒）。</p>
<p>知道了问题，就可以轻松把它修正。这就是源代码的力量。</p>
<p>在rails.vim中搜索这句话:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;">edit <span style="color:#996600;">`=RailsRoot().'/'.file`</span></pre></td></tr></table></div>

<p>替换为:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">if</span> target == <span style="color:#996600;">&quot;migration&quot;</span>
  let suffix = strpart<span style="color:#006600; font-weight:bold;">&#40;</span>file, stridx<span style="color:#006600; font-weight:bold;">&#40;</span>file, <span style="color:#996600;">&quot;_&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  let filename = <span style="color:#CC0066; font-weight:bold;">system</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'ls '</span>.<span style="color:#9900CC;">RailsRoot</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#996600;">'/db/migrate/*'</span>.<span style="color:#9900CC;">suffix</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  edit <span style="color:#996600;">`=filename`</span>
<span style="color:#9966CC; font-weight:bold;">else</span>
  edit <span style="color:#996600;">`=RailsRoot().'/'.file`</span>
endif</pre></td></tr></table></div>

<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://www.zhangdi.name/2008/09/21/kxshell-demo.html" title="KXShell的一个Demo">KXShell的一个Demo</a></li><li><a href="http://www.zhangdi.name/2008/09/17/hack-the-parking-game-in-kaixin001.html" title="开心网“争车位”游戏分析（纯技术）">开心网“争车位”游戏分析（纯技术）</a></li><li><a href="http://www.zhangdi.name/2008/09/16/fixing-no-such-file-to-load-mkmf-erro.html" title="解决使用gem安装时出现mkmf找不到的问题">解决使用gem安装时出现mkmf找不到的问题</a></li><li><a href="http://www.zhangdi.name/2008/07/24/add-avatar-to-wordpress-comment-section.html" title="为Wordpress的评论部分加上头像">为Wordpress的评论部分加上头像</a></li><li><a href="http://www.zhangdi.name/2007/10/09/free-ruby-on-rails-book.html" title="Free Ruby on Rails Book">Free Ruby on Rails Book</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.zhangdi.name/2008/08/26/rails-on-vim.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为WordPress的评论部分加上头像</title>
		<link>http://www.zhangdi.name/2008/07/24/add-avatar-to-wordpress-comment-section.html</link>
		<comments>http://www.zhangdi.name/2008/07/24/add-avatar-to-wordpress-comment-section.html#comments</comments>
		<pubDate>Thu, 24 Jul 2008 15:21:23 +0000</pubDate>
		<dc:creator>zhangdi</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Avatar]]></category>
		<category><![CDATA[BLOG]]></category>
		<category><![CDATA[Gravatar]]></category>
		<category><![CDATA[开发]]></category>

		<guid isPermaLink="false">http://www.zhangdi.name/?p=264</guid>
		<description><![CDATA[看到很多Blog的评论部分有头像的功能，就像把自己的也加上。大概查了一下，发现Wordpress和Gravatar已经集成了。也就是说，Wordpress已经默认支持Gravatar的头像了。如果没听说过Gravatar，那就去自己看看吧。 真正需要写的代码很少，因为Wordpress已经为我们提供了一个函数：get_avatar()。用这个函数可以轻松的在任何地方插入头像。 1 2 get_avatar&#40;$comment, $size='96', $default='the default image link'&#41;; // 这个是函数原型。 echo get_avatar&#40;$comment&#41;; // 在需要的地方把这个函数的返回值echo出来。 $comment是必须的参数，在大多数评论的模板上可以直接写get_avatar($comment)。（当然，前提是你的评论的主循环的变量是$comment，一般都是这样的，除非那个模板作者是个另类。）如果需要改变默认的头像大小，可以修改参数$size，例如$size=&#8217;64&#8242;。最后一个可选参数是如果评论作者没有头像，使用此图片作为头像。 相关文章将Delicious的bookmarks自动发布到WordpressWordpress升级到2.7以后不在这里写技术性文章了Rails on Vim转移到feedsky]]></description>
			<content:encoded><![CDATA[<p>看到很多Blog的评论部分有头像的功能，就像把自己的也加上。大概查了一下，发现Wordpress和Gravatar已经集成了。也就是说，Wordpress已经默认支持Gravatar的头像了。如果没听说过Gravatar，那就去自己看看吧。</p>
<p>真正需要写的代码很少，因为Wordpress已经为我们提供了一个函数：get_avatar()。用这个函数可以轻松的在任何地方插入头像。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">get_avatar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'96'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$default</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'the default image link'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 这个是函数原型。</span>
<span style="color: #b1b100;">echo</span> get_avatar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 在需要的地方把这个函数的返回值echo出来。</span></pre></td></tr></table></div>

<p>$comment是必须的参数，在大多数评论的模板上可以直接写get_avatar($comment)。（当然，前提是你的评论的主循环的变量是$comment，一般都是这样的，除非那个模板作者是个另类。）如果需要改变默认的头像大小，可以修改参数$size，例如$size=&#8217;64&#8242;。最后一个可选参数是如果评论作者没有头像，使用此图片作为头像。</p>

<a href="http://www.zhangdi.name/wp-content/gallery/misc/wordpress-avatar.jpg" title="" rel="lightbox[singlepic42]" >
	<img class="ngg-singlepic ngg-center" src="http://www.zhangdi.name/index.php?callback=image&amp;pid=42&amp;width=320&amp;height=240&amp;mode=" alt="wordpress-avatar.jpg" title="wordpress-avatar.jpg" />
</a>

<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://www.zhangdi.name/2008/12/19/post-delicious-bookmarks-to-wordpress-daily-automatically.html" title="将Delicious的bookmarks自动发布到Wordpress">将Delicious的bookmarks自动发布到Wordpress</a></li><li><a href="http://www.zhangdi.name/2008/12/12/wordpress-upgrades-to-27.html" title="Wordpress升级到2.7">Wordpress升级到2.7</a></li><li><a href="http://www.zhangdi.name/2008/10/08/no-tech-posts-anymore-here.html" title="以后不在这里写技术性文章了">以后不在这里写技术性文章了</a></li><li><a href="http://www.zhangdi.name/2008/08/26/rails-on-vim.html" title="Rails on Vim">Rails on Vim</a></li><li><a href="http://www.zhangdi.name/2008/02/21/move-feed-to-feedsky.html" title="转移到feedsky">转移到feedsky</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.zhangdi.name/2008/07/24/add-avatar-to-wordpress-comment-section.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

