<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[转]装β必备： 使用vim，及用于c开发 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 25 Apr 2011 12:47:55 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	文件打开<br/>命令行打开文件：<br/>luochunhui.com$ vim file<br/>在vim中打开另一个文件：<br/>:e foo.c<br/>然后回到打开的上一个文件：<br/>:e #<br/>打开下一个文件使用n.n的用法和q相似。n是关闭当前并打开下一个，q是退出vim。他们也都可以加q或!修饰。：<br/>:n<br/>:wn<br/>:n!<br/>查看在这本次vim中，已经打开了哪些文件了。<br/>:ls<br/>&nbsp;&nbsp;1 %a&nbsp;&nbsp; &quot;test.c&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line 1<br/>&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;array.c&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line 0<br/>根据这个结果，可以回到任何一个文件<br/>:e #2<br/>彻底的关闭文件，参数可以是ls看到的ID，或者是文件名:<br/>:bd 2<br/>:bd array.c<br/>光标移动<br/>移到文件尾部,使用两个”[&quot;,<br/>]]移到文件头部,使用两个&quot;]&quot;,<br/>[[移到某一行：<br/>:28<br/>从某一行往下移N行<br/>:28 3&nbsp;&nbsp;#将定位到31行<br/>移到&#123;,[,(, #ifdef等配对符号的的另一端<br/>%<br/>显示控制<br/>显示换行，tab等不可见字符。 VIM将会把换行显示为$, tag显示为^I. <br/>:se list<br/>显示行号<br/>:se nu<br/>隐藏行号：<br/>:se nonu<br/>输入控制<br/>将tab设置为4个空格的宽度（默认为8）。<br/>:se ts=4<br/>在输入时将tab自动替换为N个空格<br/>:se expandtab<br/>将文件中原有的tab也替换为空格。<br/>:retab<br/>让vim帮你自动格式化缩进，在命令模式下输入（不输入&quot;:&quot;）<br/>gg=G<br/>查找及替换<br/>查找所有的tab。<br/>/&#92;t<br/>将&#92;t替换为四个空格<br/>:%s/&#92;t/&nbsp;&nbsp;&nbsp;&nbsp;/g<br/>再狠一点，在全部打开的文件中继续替换：<br/>:bufdo %s/&#92;t/&nbsp;&nbsp;&nbsp;&nbsp;/g<br/>找单词, 这个语句将会找到int word, 但不会找alongword<br/>/&#92;<br/>再方便一点，定位到下一个单词，他和当前光标所在处的单词相同：<br/>*<br/>变为反向找：<br/>?<br/>n<br/>变为正向找：<br/>/<br/>n<br/>make<br/>调用make:<br/>：make<br/>默认调用的:make操作是make，不带任何参数<br/>修改make, 空格需要使用&#92; &#92;进行转义。<br/>:set makeprg=make&#92; &#92;-b<br/>在make失败后，敲任意键后将自动定位到出错的行。<br/>查看make错误,不加参数将显示出错的后5行。 可加上！输出所有错误行：<br/>:clist<br/>:clist!<br/>另外两个, 显示第一行，或最后一行错误。如果加参数，则显示第N行<br/>:cfirst [N]<br/>:clast [N]<br/>定位到下一个编译错误行：<br/>:cn<br/>ctags<br/>生成ctags文件，在命令行执行命令后，将在当前目录生成一个tags文件 <br/>luochunhui.com$ ctags -l -i -s -t -v -d -p .<br/>vi中使用本tags文件<br/>:tag ./tags<br/>定位到指定函数，再tn定位到下一个：<br/>:ta /myfunc<br/>:tn<br/>跟踪到光标所在处的函数,类似eclipse中的F3功能<br/>按键： ctrl + ]<br/>返回刚才：<br/>按键： ctrl + t<br/>],t两个操作为堆栈式，不管你进入了多少ctrl+]，你都可以通过ctrl+t原路返回。<br/>csope<br/>cscope是比ctags更为强大的源码导航工具，比如，他可以导向到库代码文件<br/>luochunhui.com$ cscope -Rbq<br/>将生成： cscope.out 及几个不用理会的中将文件<br/>在vi中加载：<br/>:cs add ./cscope.out<br/>查找函数定义<br/>:cs f g myfunc<br/>查找函数在何处被调用。找下一条匹配规则与ctags相同：<br/>:cs f c myfunc<br/>:nt<br/>查找函数也可以使用tag语法：<br/>:cstag /myfunc<br/>跟踪头文件：<br/>:cs f f stdio.h<br/>你可以简单的输入：cs查看其所有支持的规则<br/>:cs<br/>貌似cs没有ctrl+]这样的快捷键，是个遗憾。不过可完全可以同时加载ctags和cscope两种导航工具。达到这个需求。<br/>自动完成<br/>在vim的输入状态下，输入前几个字符后，可以按Ctrl + P,或者ctrl + N，打开自动完成的下拉菜单。<br/>比如，<br/>输入print,按ctrl+p，将提示可选择printing, printf, prints函数。<br/>语法高亮<br/>打开/关闭语法高亮<br/>:sy on/off<br/>保存你的设置<br/>一般的显示设置等等，都是只在当前打开的vim中生效的，如果你需要使以后打开的vim都使用一些配置，你可以把他们写入~/.vimrc文件. 比如我的~/.vimrc文件，很多行。。将默认显示行数，默认加载本路径下的cs文件等等都做了自动设置。并将其保存在dropbox中。这样在其他机器上，我随时可以复制这个文件，将vim设置为自己习惯的模式。<br/>:se nu<br/>:cs add ./cscope.out<br/>:se ts=4<br/>:set expandtab<br/><br/>来源：http://www.luochunhui.com/id/573
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [转]装β必备： 使用vim，及用于c开发 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>