<?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://easwy.com/blog/archives/category/text/feed/" rel="self" type="application/rss+xml" />
	<link>http://easwy.com/blog</link>
	<description>关注Linux, Scala, Android, Java, 开源软件和嵌入式系统</description>
	<lastBuildDate>Mon, 12 Mar 2012 02:03:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Easwy的vim配置共享：包括.vimrc及整个.vim目录</title>
		<link>http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/</link>
		<comments>http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 02:03:30 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1160</guid>
		<description><![CDATA[<p>刚才有网友来信询问我的vim配置，我在很久以前已经把我的所有vim配置上传到github了，有兴趣的朋友可以在<a href="https://github.com/easwy/share/tree/master/vim/vimrc" title="Easwy的.vimrc和.vim目录" target="_blank"></a>找到我最新的.vimrc和整个的.vim目录。</p>
<p>你可以点此<a href="https://github.com/easwy/share/zipball/master" title="下载Easwy的vimrc" target="_blank">下载Easwy的vimrc</a>，如果你了解git，你也可以使用git命令下载整个版本历史：</p>

<code>git clone https://github.com/easwy/share.git</code>

<p>用这种方式，你可以随时跟踪我的最新修改，或者把你对vimrc的改变通知我。</p>
<p>Happy Vimming!</p> <a href="http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/add_post_copyright_url/' rel='bookmark' title='在文章末尾添加版本声明和文章的链接'>在文章末尾添加版本声明和文章的链接</a></li>
<li><a href='http://easwy.com/blog/archives/vi-tip-of-using-recording/' rel='bookmark' title='vi技巧: 宏的使用技巧'>vi技巧: 宏的使用技巧</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-catalog/' rel='bookmark' title='vi/vim使用进阶: 目录'>vi/vim使用进阶: 目录</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>刚才有网友来信询问我的vim配置，我在很久以前已经把我的所有vim配置上传到github了，有兴趣的朋友可以在<a href="https://github.com/easwy/share/tree/master/vim/vimrc" title="Easwy的.vimrc和.vim目录" target="_blank">Easwy的Github共享</a>找到我最新的.vimrc和整个的.vim目录。</p>
<p>你可以点此<a href="https://github.com/easwy/share/zipball/master" title="下载Easwy的vimrc" target="_blank">下载Easwy的vimrc</a>，如果你了解git，你也可以使用git命令下载整个版本历史：</p>
<p><code>git clone https://github.com/easwy/share.git</code></p>
<p>用这种方式，你可以随时跟踪我的最新修改，或者把你对vimrc的改变通知我。</p>
<p>Happy Vimming!</p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/" target="_top">http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/add_post_copyright_url/' rel='bookmark' title='在文章末尾添加版本声明和文章的链接'>在文章末尾添加版本声明和文章的链接</a></li>
<li><a href='http://easwy.com/blog/archives/vi-tip-of-using-recording/' rel='bookmark' title='vi技巧: 宏的使用技巧'>vi技巧: 宏的使用技巧</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-catalog/' rel='bookmark' title='vi/vim使用进阶: 目录'>vi/vim使用进阶: 目录</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/easwy-vimrc-and-vim-settings/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>在Ubuntu上编译vim 7.3</title>
		<link>http://easwy.com/blog/archives/compile-vim73-on-ubuntu/</link>
		<comments>http://easwy.com/blog/archives/compile-vim73-on-ubuntu/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 16:13:13 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1113</guid>
		<description><![CDATA[本文介绍了在Ubuntu中编译vim 7.3的方法。 <a href="http://easwy.com/blog/archives/compile-vim73-on-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/install_apache_php_mysql_wordpress_on_debian_lenny/' rel='bookmark' title='在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;'>在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;</a></li>
<li><a href='http://easwy.com/blog/archives/compile-android-gingerbread-2-3-1/' rel='bookmark' title='在Ubuntu上编译Android Gingerbread 2.3.1'>在Ubuntu上编译Android Gingerbread 2.3.1</a></li>
<li><a href='http://easwy.com/blog/archives/chinese_in_debian_lenny/' rel='bookmark' title='在Debian Lenny中配置中文'>在Debian Lenny中配置中文</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    <a class="ulink" href="http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/" target="_top">在Thinkpad T400上安装完Ubuntu 10.04 LTS</a>后，就开始搭建<a class="ulink" href="http://easwy.com/blog/archives/tag/android/" target="_top">Android</a>开发环境，第一步当然是编译vim。
  </p>
<p>
    目前最新的vim版本是7.3，因为从vim 7.3开始已经换用Mercurial做为版本管理工具，我们在下载vim 7.3源代码前，先要安装Mercurial:
  </p>
<pre class="programlisting">
sudo aptitude install mercurial
cd ~
hg clone https://vim.googlecode.com/hg/ vim73</pre>
<p>
    执行完上面的命令后，我们就取得了vim 7.3的最新代码，放在目录<span class="emphasis"><em>~/vim73</em></span>中，接下来准备编译。在编译前，需要安装编译时需要的包，在<a class="ulink" href="http://easwy.com/blog/archives/tag/ubuntu/" target="_top">Ubuntu</a>上用如下命令：
  </p>
<pre class="programlisting">
sudo aptitude install xorg-dev libx11-dev libgtk2.0-dev libncurses5-dev </pre>
<p>
    上面是<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>在编译前所安装的依赖文件。后来在一篇帖子中看到另一种方法安装依赖文件，可能更方便(未测试)：
  </p>
<pre class="programlisting">
sudo aptitude install build-essential
sudo aptitude build-dep vim-gtk </pre>
<p>
    接下来修改<span class="emphasis"><em>~/vim73/src/Makefile</em></span>，打开自己所需要的功能，Easwy打开了下面这些特性：
  </p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      CONF_OPT_CSCOPE = &#8211;enable-cscope
    </li>
<li class="listitem">
      CONF_OPT_MULTIBYTE = &#8211;enable-multibyte
    </li>
<li class="listitem">
      CONF_OPT_INPUT = &#8211;enable-xim
    </li>
<li class="listitem">
      CONF_OPT_OUTPUT = &#8211;enable-fontset
    </li>
<li class="listitem">
      CONF_OPT_FEAT = &#8211;with-features=big
    </li>
<li class="listitem">
      CONF_OPT_COMPBY = “&#8211;with-compiledby=Easwy Yang &lt;easwy.mail@gmail.com&gt;”
    </li>
</ul>
</div>
<p>
    接下来编译安装：
  </p>
<pre class="programlisting">
cd ~/vim73/src
make &amp;&amp; make install </pre>
<p>
    执行完后编译好的vim以及gvim就安装在<span class="emphasis"><em>/usr/local/bin</em></span>目录中了。将此目录加入PATH即可。
  </p>
<p>
    Easwy在编译后，每次运行gvim都会提示：
  </p>
<pre class="screen">
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Error: Aborting: no fontset found </pre>
<p>
    后来在网上查了一下，是因为没有安装<span class="emphasis"><em>libgtk2.0-dev</em></span>包造成后，安装此包再重新编译后问题解决。
  </p>
<p>
    如果你在编译gvim时遇到了问题，可以参考我以前写的一篇文章：<a class="ulink" href="http://easwy.com/blog/archives/advanced-vim-skills-solve-compile-problem/" target="_top">vi/vim使用进阶: vim编译中遇到的问题及解决方法</a>。
  </p>
<p>
    最后，把我们编译的vim 7.3做为Ubuntu中的缺省编辑器，执行如下命令：
  </p>
<pre class="programlisting">
sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 50 --slave /usr/share/man/man1/editor.1.gz editor.1.gz /usr/local/man/man1/vim.1.gz
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 50 --slave /usr/share/man/man1/vi.1.gz vi.1.gz /usr/local/man/man1/vim.1.gz </pre>
<p>
    Happy viming!
  </p>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>[ 参考文档 ]</strong></span></p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      <a class="ulink" href="http://www.vim.org/mercurial.php" target="_top">The Vim Mercurial repository</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://forum.ubuntu.org.cn/viewtopic.php?t=11432&amp;highlight=vim7" target="_top">ubuntu编译VIM7指南</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://hi.baidu.com/yulanding/blog/item/71ccaa3d67fc71ce7d1e71d8.html" target="_top">系统管理：update-alternatives</a>
    </li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/compile-vim73-on-ubuntu/" target="_top">http://easwy.com/blog/archives/compile-vim73-on-ubuntu/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/install_apache_php_mysql_wordpress_on_debian_lenny/' rel='bookmark' title='在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;'>在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;</a></li>
<li><a href='http://easwy.com/blog/archives/compile-android-gingerbread-2-3-1/' rel='bookmark' title='在Ubuntu上编译Android Gingerbread 2.3.1'>在Ubuntu上编译Android Gingerbread 2.3.1</a></li>
<li><a href='http://easwy.com/blog/archives/chinese_in_debian_lenny/' rel='bookmark' title='在Debian Lenny中配置中文'>在Debian Lenny中配置中文</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/compile-vim73-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[Vim] 批量替换程序中的字符串</title>
		<link>http://easwy.com/blog/archives/replace-string-in-multiple-files/</link>
		<comments>http://easwy.com/blog/archives/replace-string-in-multiple-files/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 09:08:04 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1077</guid>
		<description><![CDATA[今天代码中有两个宏的名字改了，这两个宏在程序中使用范围比较广，使用频率也很高，一个个手工替换显然不现实。 Source Insight提供了一个改名的功能，可以很方便的完成改名。 不过Easwy在这里要介绍是在Linux下使用Vi来完成改名，实际上也非常容易。Easwy使用的命令如下： vim `egrep -rl 'AAA&#124;CCC' * &#124;grep -v .svn` :argdo %s/AAA/BBB/ge &#124; %s/CCC/DDD/ge &#124; w 第一条命令是一个Shell命令，这条命令使用Vi打开当前目录下所有包含AAA或CCC宏的文件。其中egrep查找所有包含AAA和CCC的文件，然后使用带”-v“参数的grep把位于版本控制目录中的文件过滤掉。最后，egrep所找到的文件做为Vim的命令行参数传入。 第二条命令是Vi命令，这条命令把上述文件中所有的AAA替换为BBB，把CCC替换为DDD，并保存文件。想读懂这条Vi命令，请阅读手册”:help argdo” 当然，在要修改的文件数目非常多时，最好使用sed之类的流编辑器，此时使用Vim效率会比较低。 更多关于Vim的内容，请关注易水博客上的其它文章。 原创文章，请阅读页脚的许可方式，转载请注明：转载自易水博客 [ http://easwy.com/blog/ ] 本文链接地址: http://easwy.com/blog/archives/replace-string-in-multiple-files/ 文章的脚注信息由WordPress的wp-posturl插件自动生成 相关文章 在文章末尾添加版本声明和文章的链接 vi/vim使用进阶: 目录 Easwy的Twitter微博(2010-04-04)<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/add_post_copyright_url/' rel='bookmark' title='在文章末尾添加版本声明和文章的链接'>在文章末尾添加版本声明和文章的链接</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-catalog/' rel='bookmark' title='vi/vim使用进阶: 目录'>vi/vim使用进阶: 目录</a></li>
<li><a href='http://easwy.com/blog/archives/easwy%e7%9a%84twitter%e5%be%ae%e5%8d%9a2010-04-04/' rel='bookmark' title='Easwy的Twitter微博(2010-04-04)'>Easwy的Twitter微博(2010-04-04)</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>今天代码中有两个宏的名字改了，这两个宏在程序中使用范围比较广，使用频率也很高，一个个手工替换显然不现实。<br />
Source Insight提供了一个改名的功能，可以很方便的完成改名。</p>
<p>不过<a href="http://easwy.com/blog/">Easwy</a>在这里要介绍是在Linux下使用Vi来完成改名，实际上也非常容易。Easwy使用的命令如下：</p>
<pre class="programinglist">
vim `egrep -rl 'AAA|CCC' * |grep -v .svn`
:argdo %s/AAA/BBB/ge | %s/CCC/DDD/ge | w
</pre>
<p>第一条命令是一个Shell命令，这条命令使用Vi打开当前目录下所有包含AAA或CCC宏的文件。其中egrep查找所有包含AAA和CCC的文件，然后使用带”<strong>-v</strong>“参数的grep把位于版本控制目录中的文件过滤掉。最后，egrep所找到的文件做为Vim的命令行参数传入。</p>
<p>第二条命令是Vi命令，这条命令把上述文件中所有的AAA替换为BBB，把CCC替换为DDD，并保存文件。想读懂这条Vi命令，请阅读手册”<strong>:help argdo</strong>”</p>
<p>当然，在要修改的文件数目非常多时，最好使用sed之类的流编辑器，此时使用Vim效率会比较低。</p>
<p>更多关于Vim的内容，请关注<a href="http://easwy.com/blog/">易水博客</a>上的其它文章。
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/replace-string-in-multiple-files/" target="_top">http://easwy.com/blog/archives/replace-string-in-multiple-files/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/add_post_copyright_url/' rel='bookmark' title='在文章末尾添加版本声明和文章的链接'>在文章末尾添加版本声明和文章的链接</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-catalog/' rel='bookmark' title='vi/vim使用进阶: 目录'>vi/vim使用进阶: 目录</a></li>
<li><a href='http://easwy.com/blog/archives/easwy%e7%9a%84twitter%e5%be%ae%e5%8d%9a2010-04-04/' rel='bookmark' title='Easwy的Twitter微博(2010-04-04)'>Easwy的Twitter微博(2010-04-04)</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/replace-string-in-multiple-files/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>在Windows上安装配置Apache FOP</title>
		<link>http://easwy.com/blog/archives/install-apache-fop-on-windows/</link>
		<comments>http://easwy.com/blog/archives/install-apache-fop-on-windows/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 11:17:55 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[docbook]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1059</guid>
		<description><![CDATA[在使用Apache FOP将Docbook文档转换成PDF一文中，Easwy介绍了在Debian Linux上使用Apache FOP将Docbook文档转换成PDF文件。本来在那篇文章之后，Easwy想写一篇如何在Windows上配置Apache FOP的文章，不过一直没抽出时间。今天刚好有网友问这个问题，于是教她一步步做下来，把步骤列在下面。  <a href="http://easwy.com/blog/archives/install-apache-fop-on-windows/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/render_docbook_xml_to_pdf_by_apache_fop/' rel='bookmark' title='使用Apache FOP将Docbook文档转换成PDF'>使用Apache FOP将Docbook文档转换成PDF</a></li>
<li><a href='http://easwy.com/blog/archives/remove-duplicate-word-with-awk/' rel='bookmark' title='使用awk去掉重复的单词'>使用awk去掉重复的单词</a></li>
<li><a href='http://easwy.com/blog/archives/xlink-href-can-not-generate-hyperlink/' rel='bookmark' title='xlink:href不能生成html超链接'>xlink:href不能生成html超链接</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    在<a class="ulink" href="http://easwy.com/blog/archives/render_docbook_xml_to_pdf_by_apache_fop/" target="_top">使用Apache FOP将Docbook文档转换成PDF</a>一文中，Easwy介绍了在Debian Linux上使用Apache FOP将Docbook文档转换成PDF文件。本来在那篇文章之后，<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>想写一篇如何在Windows上配置Apache FOP的文章，不过一直没抽出时间。今天刚好有网友问这个问题，于是教她一步步做下来，把步骤列在下面。
  </p>
<p>
    你可以在这里下载到文章中<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>用到的所有文件：<a class="ulink" href="http://easwy.com/blog/uploads/2010/08/easwy.zip" target="_top">点此下载</a>
  </p>
<div class="orderedlist">
<ol class="orderedlist" type="1">
<li class="listitem">
      <span class="bold"><strong>安装Docbook样式表和xsltproc程序</strong></span></p>
<p>
        按照文章<a class="ulink" href="http://easwy.com/blog/archives/a-simple-docbook-5-example/" target="_top">一个简单的Docbook 5.0例子</a>，安装Docbook样式表和xsltproc转换程序，并能够成功将Docbook文件转换成html格式。
      </p>
</li>
<li class="listitem">
      <span class="bold"><strong>安装Apache FOP和Java虚拟机</strong></span></p>
<p>
        到<a class="ulink" href="http://www.apache.org/dyn/closer.cgi/xmlgraphics/fop" target="_top">Apache Download Mirrors</a>下载Apache FOP，Easwy下载的是FOP 1.0。下载后，将下载的文件解压，<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>把它解压到C:\docbook\fop-1.0。
      </p>
<p>
        接下来，还要安装Java虚拟机，因为Apache FOP需要Java虚拟机才能运行。到<a class="ulink" href="http://www.java.com/zh_CN/download/" target="_top">Java网站</a>下载安装即可。
      </p>
</li>
<li class="listitem">
      <span class="bold"><strong>设置Apache FOP</strong></span></p>
<p>
        我们需要配置Apache FOP进行PDF转换时所用到的字体信息。首先，用下面的命令把字体信息从Windows自带的系统字体中提取出来：
      </p>
<pre class="programlisting">
cd C:\docbook\fop-1.0
mkdir fonts
java -cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname SimSun c:\windows\fonts\simsun.ttc fonts\simsun.xml
java -cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname SimHei c:\windows\fonts\simhei.ttf fonts\simhei.xml </pre>
<p>
        上面的命令，把<span class="emphasis"><em>C:\Windows\fonts\</em></span>目录下的宋体和黑体这两种字体信息提取到<span class="emphasis"><em>fonts\simsun.xml</em></span>和<span class="emphasis"><em>fonts\simhei.xml</em></span>文件中。
      </p>
<p>        接下来配置<span class="bold"><strong>C:\docbook\fop-1.0\conf\fop.xconf</strong></span>，使Apache FOP能够找到这两种字体。首先在文件中找到<span class="emphasis"><em>&lt;renderer mime=”application/pdf”&gt;</em></span>这一行，然后在此标签中加入关于字体的配置。
      </p>
<pre class="programlisting">

&lt;fonts&gt;
  &lt;font metrics-url="fonts/simsun.xml" kerning="yes" embed-url="file:///c:/windows/fonts/simsun.ttc"&gt;
    &lt;font-triplet name="SimSun" style="normal" weight="normal"/&gt;
    &lt;font-triplet name="SimSun" style="normal" weight="bold"/&gt;
    &lt;font-triplet name="SimSun" style="italic" weight="normal"/&gt;
    &lt;font-triplet name="SimSun" style="italic" weight="bold"/&gt;
  &lt;/font&gt;

  &lt;font metrics-url="fonts/simhei.xml" kerning="yes" embed-url="file:///c:/windows/fonts/simhei.ttf"&gt;
    &lt;font-triplet name="SimHei" style="normal" weight="normal"/&gt;
    &lt;font-triplet name="SimHei" style="normal" weight="bold"/&gt;
    &lt;font-triplet name="SimHei" style="italic" weight="normal"/&gt;
    &lt;font-triplet name="SimHei" style="italic" weight="bold"/&gt;
  &lt;/font&gt;

  &lt;directory recursive="true"&gt;file:///c:/windows/fonts/&lt;/directory&gt;

  &lt;auto-detect/&gt;
&lt;/fonts&gt;
         </pre>
</li>
<li class="listitem">
      <span class="bold"><strong>配置XLT转换样式表</strong></span></p>
<p>
        接下来，我们要配置XSL转换样式表，让xsltproc在转换Docbook文档时，使用我们指定的中文字体。在下面我给出了一个简单的样式表，假设存为docbook_fo.xsl：
      </p>
<pre class="programlisting">
&lt;?xml version='1.0'?&gt;
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
  xmlns:fo="http://www.w3.org/1999/XSL/Format"
  xmlns:ng="http://docbook.org/docbook-ng"
  xmlns:db="http://docbook.org/ns/docbook"
  exclude-result-prefixes="db ng exsl"
  version='1.0'&gt;

  &lt;xsl:import href="C:/docbook/docbook-xsl-1.74.3/fo/docbook.xsl"/&gt;
  &lt;xsl:param name="body.font.family"&gt;SimSun&lt;/xsl:param&gt;

  &lt;xsl:param name="monospace.font.family"&gt;SimSun&lt;/xsl:param&gt;
  &lt;xsl:param name="title.font.family"&gt;SimHei&lt;/xsl:param&gt;
&lt;/xsl:stylesheet&gt;
         </pre>
<p>
        在这个转换样式表里，首先导入了Docbook的FO样式表，然后重新设置了其中的字体参数，改成我们所要的字体名称。需要注意的是，这里的字体名字需要和<span class="emphasis"><em>fop.xconf</em></span>中设置的font-triplet中的名字完全一致。
      </p>
</li>
<li class="listitem">
      <span class="bold"><strong>输出PDF文件</strong></span></p>
<p>
        完成上述配置后，就可以进行PDF文件的转换了。把下面的文件保存为<span class="emphasis"><em>example.xml</em></span>：
      </p>
<pre class="programlisting">

&lt;?xml version='1.0' encoding="utf-8"?&gt;

&lt;article xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="zh-CN"
  xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
  &lt;articleinfo&gt;
    &lt;title&gt;我的第一篇Docbook 5.0文档&lt;/title&gt;
    &lt;author&gt;
      &lt;firstname&gt;Easwy&lt;/firstname&gt;

      &lt;surname&gt;Yang&lt;/surname&gt;
    &lt;/author&gt;
  &lt;/articleinfo&gt; 

  &lt;section&gt;
    &lt;title&gt;文档介绍&lt;/title&gt;

    &lt;para&gt;
      这是我的第一篇Docbook 5.0文档，欢迎你来到&lt;link xlink:href='http://easwy.com/blog/'&gt;Easwy的博客&lt;/link&gt;。
    &lt;/para&gt;
  &lt;/section&gt;
&lt;/article&gt;
         </pre>
<p>
        然后输入下面的命令将其转换成PDF：
      </p>
<pre class="programlisting">
xsltproc -o example.fo c:\docbook\fop-1.0\conf\docbook_fo.xsl example.xml
fop -c c:\docbook\fop-1.0\conf\fop.xconf example.fo -pdf example.pdf </pre>
</li>
</ol>
</div>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>参考文档</strong></span></p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      <a class="ulink" href="http://xmlgraphics.apache.org/fop/0.95/configuration.html" target="_top">Apache FOP: Configuration</a></p>
</li>
<li class="listitem">
      <a class="ulink" href="http://xmlgraphics.apache.org/fop/0.95/fonts.html" target="_top">Apache FOP: Fonts</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://blog.chinaunix.net/u/1096/showart.php?id=1808039" target="_top">使用Apache FOP将Docbook转换成PDF文档</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://gentoogle.blogspot.com/2008/03/docbookpdf.html" target="_top">中文docbook转换成PDF终于实现</a>
    </li>
<li class="listitem">
<p>      <a class="ulink" href="http://blog.donews.com/limodou/archive/2004/04/01/9917.aspx" target="_top">使用FOP将中文DocBook xml转换成pdf的实现记录</a>
    </li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/install-apache-fop-on-windows/" target="_top">http://easwy.com/blog/archives/install-apache-fop-on-windows/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/render_docbook_xml_to_pdf_by_apache_fop/' rel='bookmark' title='使用Apache FOP将Docbook文档转换成PDF'>使用Apache FOP将Docbook文档转换成PDF</a></li>
<li><a href='http://easwy.com/blog/archives/remove-duplicate-word-with-awk/' rel='bookmark' title='使用awk去掉重复的单词'>使用awk去掉重复的单词</a></li>
<li><a href='http://easwy.com/blog/archives/xlink-href-can-not-generate-hyperlink/' rel='bookmark' title='xlink:href不能生成html超链接'>xlink:href不能生成html超链接</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/install-apache-fop-on-windows/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Bram将vim 7.3列入开发计划</title>
		<link>http://easwy.com/blog/archives/bram-plan-to-develop-vim-7-3/</link>
		<comments>http://easwy.com/blog/archives/bram-plan-to-develop-vim-7-3/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 02:38:05 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1045</guid>
		<description><![CDATA[Bram Moolenaar在邮件列表里表示准备开发vim 7.3，预计在5月底发布第一个beta版本。

vim 7.3的功能需求还没有最后确定，Bram会根据自己能投入的时间和<a href="http://www.vim.org/sponsor/vote_results.php">用户对vim新功能的投票结果</a>来做最终决定。 <a href="http://easwy.com/blog/archives/bram-plan-to-develop-vim-7-3/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/add_post_copyright_url/' rel='bookmark' title='在文章末尾添加版本声明和文章的链接'>在文章末尾添加版本声明和文章的链接</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-catalog/' rel='bookmark' title='vi/vim使用进阶: 目录'>vi/vim使用进阶: 目录</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-session-file-and-viminfo/' rel='bookmark' title='vi/vim使用进阶: 使用会话和viminfo'>vi/vim使用进阶: 使用会话和viminfo</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>Bram Moolenaar在邮件列表里表示准备开发vim 7.3，预计在5月底发布第一个beta版本。</p>
<p>vim 7.3的功能需求还没有最后确定，Bram会根据自己能投入的时间和<a href="http://www.vim.org/sponsor/vote_results.php">用户对vim新功能的投票结果</a>来做最终决定。另外，Bram也在收集来自用户的patch和runtime文件。</p>
<p>Bram已经表示会增强Windows的安装程序，去掉lang和extra包。版本管理会采用Mercurial (在网上搜了一下，是一个基于Python的版本管理系统)。</p>
<p>vim注册用户赶快为自己期望的新功能去投票吧。未注册的vim用户需要交纳至少10欧元的注册费，然后到vim.org上激活自己的帐号。如果你在vim.org还没有帐号，可以在这里注册一个：<a href="http://www.vim.org/account/register.php">http://www.vim.org/account/register.php</a>。
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/bram-plan-to-develop-vim-7-3/" target="_top">http://easwy.com/blog/archives/bram-plan-to-develop-vim-7-3/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/add_post_copyright_url/' rel='bookmark' title='在文章末尾添加版本声明和文章的链接'>在文章末尾添加版本声明和文章的链接</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-catalog/' rel='bookmark' title='vi/vim使用进阶: 目录'>vi/vim使用进阶: 目录</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-session-file-and-viminfo/' rel='bookmark' title='vi/vim使用进阶: 使用会话和viminfo'>vi/vim使用进阶: 使用会话和viminfo</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/bram-plan-to-develop-vim-7-3/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Windows下cscope -q选项出错的解决</title>
		<link>http://easwy.com/blog/archives/cscope_sort_option_on_windows/</link>
		<comments>http://easwy.com/blog/archives/cscope_sort_option_on_windows/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 02:50:07 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1021</guid>
		<description><![CDATA[ 以前曾有网友留言，在windows下使用cscope时，使用-q选项出现如下提示：

D:\Temp> cscope -Rbkq
Input file specified two times.

cscope: cannot create inverted index; ignoring -q option
cscope: removed files ncscope.in.out and ncscope.po.out 

当时Easwy以为是windows版本的cscope不支持-q选项。 网友Liang Feng提醒说是由于没有找到合适的sort程序，Easwy又做了一个实验，找到了解决此问题的办法。 <a href="http://easwy.com/blog/archives/cscope_sort_option_on_windows/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-cscope/' rel='bookmark' title='vi/vim使用进阶: 程序员的利器 &#8211; cscope'>vi/vim使用进阶: 程序员的利器 &#8211; cscope</a></li>
<li><a href='http://easwy.com/blog/archives/vim-cscope-ctags/' rel='bookmark' title='vi/Vim + Cscope/Ctags'>vi/Vim + Cscope/Ctags</a></li>
<li><a href='http://easwy.com/blog/archives/install-cscope-to-home/' rel='bookmark' title='如何将cscope安装到指定目录'>如何将cscope安装到指定目录</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    以前曾有网友留言，在windows下使用cscope时，使用-q选项出现如下提示：
  </p>
<pre class="programlisting">
D:\Temp&gt; cscope -Rbkq
Input file specified two times.

cscope: cannot create inverted index; ignoring -q option
cscope: removed files ncscope.in.out and ncscope.po.out </pre>
<p>
    当时<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>以为是windows版本的cscope不支持-q选项。
  </p>
<p>
    不过网友Liang Feng昨天<a class="ulink" href="http://easwy.com/blog/archives/advanced-vim-skills-cscope/#comment-2116" target="_top">留言</a>说：
  </p>
<pre class="programlisting">
Windows版本的cscope是支持-q选项的，出现以上错误是因为没找到合适的sort命令。所以只要cscope进程的工作目录下有GNU版本的sort就可以了。注意是进程的工作目录，不是可执行程序的目录。具体原因看一下cscope的代码片段。

build.c

#ifdef WIN32
snprintf(sortcommand, sizeof(sortcommand), “set LC_ALL=C &amp;&amp; sort -T %s %s”, tmpdir, temp1);
#else
snprintf(sortcommand, sizeof(sortcommand), “env LC_ALL=C sort -T %s %s”, tmpdir, temp1);
#endif </pre>
<p>
    于是重新做了一下试验。在安装了Cygwin后，在cygwin的shell界面中使用cscope，没有出现上面的错误提示。但如果打开windows的命令行窗口cmd.exe，在里面执行cscope，则会出现上面的错误。
  </p>
<p>
    在仔细比较了cygwin和cmd.exe的环境后发现，原来是Windows自带的sort.exe搞的鬼。
  </p>
<p>
    在cygwin的shell窗口中，PATH环境变量的设置会使其先找到GNU版的sort.exe，所以上述cscope命令执行可以成功。但在cmd.exe窗口中，PATH环境变量会使其先找到windows自带的sort.exe而不是GNU sort.exe，所以会出现上面的错误提示。
  </p>
<p>
    知道了问题的原因，解决方法就很简单了，我们可以写一个批处理程序，在此程序中重设PATH环境变量，使cscope使用GNU版的sort.exe。示例程序如下：
  </p>
<pre class="programlisting">
D:\Temp&gt; type cs.bat
@echo off
set path=c:\cygwin\bin;
cscope -Rbkq </pre>
<p>
    在这个批处理里，首先把path环境变量指向<span class="emphasis"><em>c:\cygwin\bin;</em></span>，我的cscope.exe和GNU版的sort.exe都在此目录中。接下来现执行cscope命令，现在它使用的就是GNU版的sort.exe了。
  </p>
<p>
    在此感谢网友Liang Feng，谢谢他的提醒。
  </p>
<p>    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/cscope_sort_option_on_windows/" target="_top">http://easwy.com/blog/archives/cscope_sort_option_on_windows/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-cscope/' rel='bookmark' title='vi/vim使用进阶: 程序员的利器 &#8211; cscope'>vi/vim使用进阶: 程序员的利器 &#8211; cscope</a></li>
<li><a href='http://easwy.com/blog/archives/vim-cscope-ctags/' rel='bookmark' title='vi/Vim + Cscope/Ctags'>vi/Vim + Cscope/Ctags</a></li>
<li><a href='http://easwy.com/blog/archives/install-cscope-to-home/' rel='bookmark' title='如何将cscope安装到指定目录'>如何将cscope安装到指定目录</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/cscope_sort_option_on_windows/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>解决安装Eclim后Vim Taglist插件工作不正常的问题</title>
		<link>http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/</link>
		<comments>http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 13:38:26 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1004</guid>
		<description><![CDATA[今天启动vi后，发现Taglist窗口不能正常显示文件中的标签。于是赶紧按照Taglist FAQ中列出的步骤检查了一遍(使用命令:help taglist-faq查看Taglist的FAQ)。 最终发现原来是新安装的eclim造成的... <a href="http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/use_http_proxy_for_git/' rel='bookmark' title='Linux使用笔记: 使用代理服务器访问git版本库'>Linux使用笔记: 使用代理服务器访问git版本库</a></li>
<li><a href='http://easwy.com/blog/archives/maven-build-eclipse-project-failed/' rel='bookmark' title='使用mvn eclipse:eclipse生成eclipse工程文件失败'>使用mvn eclipse:eclipse生成eclipse工程文件失败</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/' rel='bookmark' title='vi/vim使用进阶: 使用taglist插件'>vi/vim使用进阶: 使用taglist插件</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    今天启动vi后，发现Taglist窗口不能正常显示文件中的标签。于是赶紧按照Taglist FAQ中列出的步骤检查了一遍(使用命令<span class="command"><strong>:help taglist-faq</strong></span>查看Taglist的FAQ)。
  </p>
<p>
    当执行下面的命令时，输出如下：
  </p>
<pre class="screen">

:echo system(Tlist_Ctags_Cmd . ' --version')
connect: Connection refused </pre>
<p>
    正常情况下，这条命令应该会输出Taglist插件的版本号，但现在显示的却是<span class="emphasis"><em>connect: Connection refused</em></span>。于是查看了一下<span class="emphasis"><em>Tlist_Ctags_Cmd</em></span>变量的值：
  </p>
<pre class="screen">
:echo Tlist_Ctags_Cmd
"/usr/share/eclipse/eclim" -command taglist -c "/usr/bin/ctags" </pre>
<p>    这才想起，<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>前些天安装了Eclim，用来在vim中使用Eclipse的功能。Eclim的作者对ctags和Taglist进行了加强，并且把Tlist_Ctags_Cmd替换成了他自己的版本。所以如果不启动eclimd的话，就会出现上面的错误。
  </p>
<p>
    知道了问题的原因，解决起来就简单了。使用<span class="command"><strong>/usr/share/eclipse/eclimd</strong></span>启动了eclimd后，Taglist窗口就能够正常显示了。不过Easwy暂时不想使用eclim提供的Taglist功能，所以在<span class="emphasis"><em>~/.vimrc</em></span>中增加了下面的配置：
  </p>
<pre class="programlisting">
let g:EclimTaglistEnabled=0 </pre>
<p>
    这样设置后，再启动vim，使用又是官方版本的Taglist了。
  </p>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy的博客</a>上的其它文章。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/" target="_top">http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/use_http_proxy_for_git/' rel='bookmark' title='Linux使用笔记: 使用代理服务器访问git版本库'>Linux使用笔记: 使用代理服务器访问git版本库</a></li>
<li><a href='http://easwy.com/blog/archives/maven-build-eclipse-project-failed/' rel='bookmark' title='使用mvn eclipse:eclipse生成eclipse工程文件失败'>使用mvn eclipse:eclipse生成eclipse工程文件失败</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/' rel='bookmark' title='vi/vim使用进阶: 使用taglist插件'>vi/vim使用进阶: 使用taglist插件</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vi在启动时没有响应问题的解决</title>
		<link>http://easwy.com/blog/archives/vim_no_response_when_term_type_is_linux/</link>
		<comments>http://easwy.com/blog/archives/vim_no_response_when_term_type_is_linux/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 01:07:48 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=994</guid>
		<description><![CDATA[最近Easwy在某台服务器上启动vi时，总出现vi没有响应的情况。 现象是输入vi命令后，vi窗口显示不出来，并且此时终端也没有响应，不能输入任何命令。只能用ssh再登录一个终端，在新登录终端上使用kill命令杀死此vi进程。
经过认真排查，终于把问题定位到vimrc中的一个设置上...... <a href="http://easwy.com/blog/archives/vim_no_response_when_term_type_is_linux/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/two-sed-tips/' rel='bookmark' title='两个sed小技巧'>两个sed小技巧</a></li>
<li><a href='http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/' rel='bookmark' title='解决安装Eclim后Vim Taglist插件工作不正常的问题'>解决安装Eclim后Vim Taglist插件工作不正常的问题</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-use-ctags-tag-file/' rel='bookmark' title='vi/vim使用进阶: 使用标签(tag)文件'>vi/vim使用进阶: 使用标签(tag)文件</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    最近<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>在某台服务器上启动vi时，总出现vi没有响应的情况。 现象是输入<span class="command"><strong>vi</strong></span>命令后，vi窗口显示不出来，并且此时终端也没有响应，不能输入任何命令。只能用ssh再登录一个终端，在新登录终端上使用<span class="command"><strong>kill</strong></span>命令杀死此vi进程，此时运行vi的终端中显示如下信息：
  </p>
<pre class="programlisting">
*** info [lib/liblow.c(329)]:
/dev/gpmctl: Interrupted system call
*** err [lib/liblow.c(336)]:
/dev/gpmctl: No such device or address
Vim: Caught deadly signal TERM
Vim: Finished.
Terminated </pre>
<p>
    在偶然中发现，使用putty登录这台服务器时，运行<span class="command"><strong>vi</strong></span>命令没有问题。因此怀疑和<span class="emphasis"><em>TERM</em></span>环境变量的设置有关。检查putty中此环境变量：
  </p>
<pre class="programlisting">
$ echo $TERM
xterm </pre>
<p>
    而在vi没响应的终端里，TERM环境变量的值为：
  </p>
<pre class="programlisting">
$ echo $TERM
linux </pre>
<p>
    如果把TERM环境变量的值也改成<span class="emphasis"><em>xterm</em></span>，那么vi可以正常启动。看来的确是TERM环境变量引起的这个问题。后来又发现，如果在linux screen中启动vim的话(此时TERM环境变量的值为<span class="emphasis"><em>screen</em></span>)，vim也不能正常启动。
  </p>
<p>
    那么为什么TERM环境变量的取值会影响vim的启动呢？经过认真排查，终于把问题定位到vimrc中的一个设置上：
  </p>
<pre class="programlisting">
set mouse=a </pre>
<p>
    如果在.vimrc中设置了<span class="command"><strong>set mouse=a</strong></span>，那么在TERM环境变量为linux或screen的终端上，vi启动时就会没有反应；如果去掉这个设置，不管TERM环境变量的取值是什么，vi都能正常启动。
  </p>
<p>
    阅读了vim的帮助手册，手册中说，这个选项只在一些特定类型的终端上支持，比如xterm、使能了gpm的linux终端等。看来问题是出在gpm上，从上面vim被kill后的打印中也可以看出，是/dev/gpmctl设备无法访问导致vi失去反应的。
  </p>
<p>    后来在vimrc中把<span class="command"><strong>set mouse=a</strong></span>一句去掉，vi终于正常了。如果有其它朋友也遇到类似的问题，不妨试一下上述解决方案。
  </p>
<p>
    更多关于<a class="ulink" href="http://easwy.com/blog/archives/tag/vim/" target="_top">vim</a>的内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy的博客</a>上的其它文章。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/vim_no_response_when_term_type_is_linux/" target="_top">http://easwy.com/blog/archives/vim_no_response_when_term_type_is_linux/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/two-sed-tips/' rel='bookmark' title='两个sed小技巧'>两个sed小技巧</a></li>
<li><a href='http://easwy.com/blog/archives/vim-taglist-plugin-not-work-after-installing-eclim/' rel='bookmark' title='解决安装Eclim后Vim Taglist插件工作不正常的问题'>解决安装Eclim后Vim Taglist插件工作不正常的问题</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-use-ctags-tag-file/' rel='bookmark' title='vi/vim使用进阶: 使用标签(tag)文件'>vi/vim使用进阶: 使用标签(tag)文件</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/vim_no_response_when_term_type_is_linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>vi/vim使用进阶: vimgdb调试时的常见问题及解决</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb-faq/</link>
		<comments>http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb-faq/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 07:05:54 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=985</guid>
		<description><![CDATA[在文章在vim中使用gdb调试 - vimgdb中我介绍了如何使用vimgdb补丁在vim/gvim中调试程序。后来陆续有一些读者反馈了他们在使用中遇到的问题。在本文中总结一下。 <a href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb-faq/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-save-project-configuration/' rel='bookmark' title='vi/vim使用进阶: 保存项目相关配置'>vi/vim使用进阶: 保存项目相关配置</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb/' rel='bookmark' title='vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用vimgdb'>vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用vimgdb</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-solve-compile-problem/' rel='bookmark' title='vi/vim使用进阶: vim编译中遇到的问题及解决方法'>vi/vim使用进阶: vim编译中遇到的问题及解决方法</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p><span class="bold"><strong>&lt;&lt; </strong></span><a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-catalog/" target="_top">返回vim使用进阶: 目录</a>
</p>
<p>
    在文章<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb/" target="_top">在vim中使用gdb调试 &#8211; vimgdb</a>中我介绍了如何使用vimgdb补丁在vim/gvim中调试程序。后来陆续有一些读者反馈了他们在使用中遇到的问题。在本文中总结一下。
  </p>
<p><span class="bold"><strong>[ 问题一: 运行GDB命令时提示"unable to read from GDB pseudo tty"? ]</strong></span></p>
<p>    有读者在试图执行GDB命令时，出现上面的提示。
  </p>
<p>
    出现这个问题是由于没有正确设置gdbprg变量。使用下面的命令设置一下GDB程序的位置即可解决此问题：
  </p>
<pre class="programlisting">
:set gdbprg=/path/to/gdb </pre>
<p>
    请把上面的<span class="emphasis"><em>/path/to/gdb</em></span>替换成你计算机中GDB程序所在的路径。你可以把这句话加到你的<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-introduce-vimrc/" target="_top">vimrc</a>中，这样每次启动vi时会自动设置此变量。
  </p>
<p><span class="bold"><strong>[ 问题二： 提示"GDB busy: command discarded, please try again"? ]</strong></span></p>
<p>
    当你的程序需要用<span class="emphasis"><em>scanf()</em></span>或者<span class="emphasis"><em>getchar()</em></span>这类函数读取用户输入时，你可能会看到过这样的提示：
  </p>
<div class="blockquote">
<blockquote class="blockquote">
<p>GDB busy: command discarded, please try again
  </p></blockquote>
</div>
<p>
    出现这个提示，说明你的GDB正在等待用户输入，所以无法响应你所输入的其它GDB命令。
  </p>
<p>
    在使用vimgdb时，如果你的程序需要读取用户输入，你必须通过GDB的<span class="command"><strong>tty</strong></span>命令或<span class="command"><strong>run</strong></span>来重定向程序的标准输入。
  </p>
<p>
    首先，你打开一个终端(可以是xterm/rxvt/urxvt/putty/&#8230;)，在此终端内输入命令<span class="command"><strong>tty</strong></span>：
  </p>
<pre class="programlisting">

$ tty
/dev/pts/17 </pre>
<p>
    这条命令用来显示此终端所使用的设备文件名。获得了这个设备文件名后，你就可以重定向程序的标准输入输出到这个终端，在GDB中输入下面的命令：
  </p>
<pre class="programlisting">
tty /dev/pts/17 </pre>
<p>
    执行完这条命令后，程序的标准输入/输出就被重定向到<span class="emphasis"><em>/dev/pts/17</em></span>了，这样，当执行到<span class="emphasis"><em>scanf()</em></span>或<span class="emphasis"><em>getchar()</em></span>函数时，切换到那个终端输入指定参数，然后回车，程序就会继续向下执行。
  </p>
<p><span class="bold"><strong>[ 问题三： vimgdb可以在windows下使用吗? ]</strong></span></p>
<p>    vimgdb不能在windows下使用。不过你可以用作者提供的Clewn或Pyclewn。这两个程序可以在Windows的Vim/Gvim中使用。
  </p>
<p>
    这里有我写的一篇关于pyclewn的教程:<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/" target="_top">在VIM中使用GDB调试 &#8211; pyclewn</a>，clewn的用法与之类似。
  </p>
<p><span class="bold"><strong>[ 问题四： 按空格后vimgdb的命令窗口没有弹出来? ]</strong></span></p>
<p>
    首先确保vimgdb的按键定义文件存在。执行下面的命令：
  </p>
<pre class="programlisting">
:set runtimepath?  </pre>
<p>
    检查这条命令所列出的所有目录，如果任一目录中包含<span class="emphasis"><em>macros/gdb_mappings.vim</em></span>文件，说明你的按键映射文件已经存在。如果你没有找到该文件，到vimgdb目录中找到这个命令，拷贝到上述任意一个目录中。
  </p>
<p>    接下来用下面的命令加载vimgdb的键绑定：
  </p>
<pre class="programlisting">
:run macros/gdb_mappings.vim </pre>
<p>
    现在，你应该可以使用vimgdb所定义的快捷键了。
  </p>
<p>
    <span class="bold"><strong>[参考文档]</strong></span>
  </p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem"><a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb/" target="_top">在vim中使用gdb调试</a></li>
<li class="listitem"><a class="link" href="http://gemma.apple.com/mac/library/documentation/DeveloperTools/gdb/gdb/gdb_5.html#SEC24" target="_blank">Your program&#8217;s input and output</a></li>
<li class="listitem"><a class="link" href="http://clewn.sourceforge.net/index.html" target="_blank">http://clewn.sourceforge.net/index.html</a></li>
</ul>
</div>
<p>
    <span class="bold"><strong>&lt;&lt; </strong></span><a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-catalog/" target="_top">返回vim使用进阶: 目录</a></p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb-faq/" target="_top">http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb-faq/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-save-project-configuration/' rel='bookmark' title='vi/vim使用进阶: 保存项目相关配置'>vi/vim使用进阶: 保存项目相关配置</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb/' rel='bookmark' title='vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用vimgdb'>vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用vimgdb</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-solve-compile-problem/' rel='bookmark' title='vi/vim使用进阶: vim编译中遇到的问题及解决方法'>vi/vim使用进阶: vim编译中遇到的问题及解决方法</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-vimgdb-faq/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>使用gvim+pyclewn+gdbserver进行远程调试</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/</link>
		<comments>http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 08:55:30 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[嵌入系统]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[调试]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=953</guid>
		<description><![CDATA[本文介绍如何在gvim中使用pyclewn和gdbserver进行远程调试。远程调试的命令也可以直接在gdb或ddd中使用。 <a href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/">Continue reading <span class="meta-nav">&#8594;</span></a><div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/' rel='bookmark' title='vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用pyclewn'>vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用pyclewn</a></li>
<li><a href='http://easwy.com/blog/archives/exuberant-ctags-chinese-manual/' rel='bookmark' title='Exuberant Ctags中文手册'>Exuberant Ctags中文手册</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-cscope/' rel='bookmark' title='vi/vim使用进阶: 程序员的利器 &#8211; cscope'>vi/vim使用进阶: 程序员的利器 &#8211; cscope</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    在以前的文章中，Easwy介绍了如何<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/" target="_top">使用pyclewn在gvim中调试</a>。网友yorker留言询问如何在vim中远程调试服务器上的程序而不需要登录服务器。这就涉及到远程调试的话题了。
  </p>
<p>
    所谓远程调试，顾名思义，就是在本地调试运行在远端设备上的程序。远程调试在嵌入式系统的开发上应用的比较多。嵌入式设备上内存、磁盘空间都比较有限，可能无法容纳整个gdb的调试环境和符号表；即便可以容纳，也需要对gdb进行交叉编译，比较麻烦，所以更常用远程调试的办法。像网友yorker这样在本地调试远端服务器上的程序，也是一种应用。
  </p>
<p>
    远程调试最简单的办法是使用gdbserver。gdbserver是一个非常小的程序，大小不到100K，因此可以方便的拷贝到嵌入式设备上，交叉编译也很简单。使用gdbserver，就可以使你的程序与远端的GDB调试器通讯，接收并执行调试命令。
  </p>
<p>
    gdbserver在大多数Linux系统中已经包含，不需要特别安装。如果你需要交叉编译，到<a class="link" href="http://www.gnu.org/software/gdb/download/" target="_blank">GNU GDB网站</a>上下载gdb的源代码，在里面你可以找到gdbserver。
  </p>
<p>
    本文将主要介绍如何在vim使用pyclewn进行远程调试(关于pyclewn的介绍，参见Easwy的的另外一篇文章：<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/" target="_top">vim使用进阶: 在vim中进行GDB调试 &#8211; 使用pyclewn</a>)。实际上，本文中所涉及的命令都是常用的远程调试命令，你可以直接使用gdb或ddd来执行这些命令，进行远程调试。
  </p>
<p>
    我们还使用在<a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/" target="_top">pyclewn</a>一文中的程序做为调试示例，对那个程序做了一点修改，原来该程序需要由标准输入读取一个数字，现在则改为由命令行参数中传入。修改后的程序在<a class="link" href="http://easwy.com/blog/uploads/2009/11/pyclewn-ex.zip" target="_top">这里</a>下载。
  </p>
<p>
    现在我们准备开始调试。我们把编译好的二进制程序拷贝到一个名为Easwy_remote的计算机，然后在Easwy_remote上执行：
  </p>
<pre class="programlisting">
gdbserver Easwy_local:333 ./factorial 4 </pre>
<p>
    上面的命令执行完后，屏幕输出如下(你的输出可能稍有不同)：
  </p>
<pre class="programlisting">
Process ./factorial created; pid = 7532
Listening on port 333 </pre>
<p>
    上面的gdbserver命令的含义是：使用gdbserver启动<span class="emphasis"><em>./factorial</em></span>程序，并传入参数<span class="emphasis"><em>4</em></span>，而gdbserver监听在333端口上，等待远程GDB程序中的连接。命令中的Easwy_local表明允许来自主机Easwy_local的连接，不过目前的gdbserver版本实际上是不检测所连接的主机的。
  </p>
<p>
    现在，我们在Easwy_local主机上启动pyclewn，并在所打开的gvim窗口中执行下面的命令：
  </p>
<pre class="programlisting">
:e main.c
:Cmapkeys
:Cfile factorial
:Cbreak 15
:Ctarget remote Easwy_remote:333
:Ccontinue</pre>
<p>
    上面的命令，首先打开main.c文件，然后执行pyclewn提供的mapkeys命令，加载pyclewn的按键映射。然后使用file命令加载所要调试的程序，并在main.c的第15行设置一个断点。
  </p>
<p>
    需要注意的是<span class="command"><strong>target remote</strong></span>命令。这条命令告诉GDB连接到主机Easwy_remote的333端口，进行调试。执行完这条命令，我们就连接到了远端运行的程序。接下来就可以像调试本地程序那样进行调试了，在上面Easwy使用的<span class="command"><strong>continue</strong></span>命令，使程序执行到断点处，然后继续调试。
  </p>
<p>
    下面是远程调试的屏幕抓图：
  </p>
<div class="informalfigure">
<div class="mediaobject" align="center"><img src="http://easwy.com/blog/uploads/2009/11/gdbserver-300x240.png" align="middle"></div>
<div class="caption" align="center"><a class="link" href="http://easwy.com/blog/uploads/2009/11/gdbserver-1024x819.png" target="_blank">点击查看大图</a></div>
</div>
<p>
    gdbserver不仅可以像本文中这样启动一个调试进程，它还可以连接到一个已经运行的进程上对其进行调试，例如，用<span class="command"><strong>gdbserver Easwy_local:333 &#8211;attach 1235</strong></span>命令就可以使gdbserver连接到进程ID为1235的进程。
  </p>
<p>
    更多关于vi的内容，请参见<a class="link" href="http://easwy.com/blog/" target="_top">Easwy的博客</a>上的其它文章。
  </p>
<div class="itemizedlist">
<ul type="disc">
<li>
      vim帮助文件
    </li>
<li><a class="link" href="http://vimcdoc.sourceforge.net/" target="_blank">vim中文手册</a></li>
<li><a class="link" href="http://pyclewn.sourceforge.net/" target="_blank">Pyclewn</a></li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/" target="_top">http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-vim-gdb-pyclewn/' rel='bookmark' title='vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用pyclewn'>vi/vim使用进阶: 在VIM中使用GDB调试 &#8211; 使用pyclewn</a></li>
<li><a href='http://easwy.com/blog/archives/exuberant-ctags-chinese-manual/' rel='bookmark' title='Exuberant Ctags中文手册'>Exuberant Ctags中文手册</a></li>
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-cscope/' rel='bookmark' title='vi/vim使用进阶: 程序员的利器 &#8211; cscope'>vi/vim使用进阶: 程序员的利器 &#8211; cscope</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

