﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-colorful-随笔分类-vim -- ctags</title><link>http://www.cppblog.com/colorful/category/19300.html</link><description>zc qq:1337220912</description><language>zh-cn</language><lastBuildDate>Mon, 14 Apr 2014 08:08:51 GMT</lastBuildDate><pubDate>Mon, 14 Apr 2014 08:08:51 GMT</pubDate><ttl>60</ttl><item><title>vim 小盒子</title><link>http://www.cppblog.com/colorful/archive/2014/03/26/206350.html</link><dc:creator>多彩人生</dc:creator><author>多彩人生</author><pubDate>Wed, 26 Mar 2014 08:22:00 GMT</pubDate><guid>http://www.cppblog.com/colorful/archive/2014/03/26/206350.html</guid><wfw:comment>http://www.cppblog.com/colorful/comments/206350.html</wfw:comment><comments>http://www.cppblog.com/colorful/archive/2014/03/26/206350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/colorful/comments/commentRss/206350.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/colorful/services/trackbacks/206350.html</trackback:ping><description><![CDATA[---------------------------------------------------------------<br />&nbsp;gvim 不生成备份文件<br />&nbsp;set nobackup
<br /><br />---------------------------------------------------------------<img src ="http://www.cppblog.com/colorful/aggbug/206350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/colorful/" target="_blank">多彩人生</a> 2014-03-26 16:22 <a href="http://www.cppblog.com/colorful/archive/2014/03/26/206350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vim 用指定编码保存文件 </title><link>http://www.cppblog.com/colorful/archive/2013/07/25/202107.html</link><dc:creator>多彩人生</dc:creator><author>多彩人生</author><pubDate>Thu, 25 Jul 2013 02:03:00 GMT</pubDate><guid>http://www.cppblog.com/colorful/archive/2013/07/25/202107.html</guid><wfw:comment>http://www.cppblog.com/colorful/comments/202107.html</wfw:comment><comments>http://www.cppblog.com/colorful/archive/2013/07/25/202107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/colorful/comments/commentRss/202107.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/colorful/services/trackbacks/202107.html</trackback:ping><description><![CDATA[<div><p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"><div>http://edyfox.codecarver.org/html/vim_fileencodings_detection.html</div><br /> </p><p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px">本文主要讲解下，让Vim能正确显示和保存各种编码文件的一些常用方法。</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> Vim编码配置里面有3个选项，分别是<strong>encoding 、<strong>fileencodings、<strong>fileencoding</strong>&nbsp;</strong>简写分别对应为enc、<strong>fencs、<strong>fenc。</strong></strong></strong></p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>encoding(enc):&nbsp;</strong>此项目配置的是vim的默认显示编码，如果你打开的文件编码与该属性配置的编码不同，那么Vim会将编码自动转换到这种编码然后再显示，</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 如果如果这2种编码集合完全对应那么很有可能出现坏块也就是没转换成功然后从列表（下面就讲到，实际上就是fens）中搜寻下一个编码，也就是出现我们所说的乱码。</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>验证上述结论：</strong>用vim打开一个文件，输入":set encoding" vim 会自动把encoding的值打印出来。</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>fileencodings(fencs):&nbsp;</strong>此项目配置的是一个编码列表，Vim在读取文件的时候，会根据这里的编码自动检测，如果检测失败则尝试下一个，直到检测成功为止。如果一直没有转换成功，则此值会为空，也就是上述<strong>encoding的枚举，你可以重新调整循序来调整优先级</strong>。(需要在.vimrc中修改)</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <span style="line-height:20px"><strong>验证上述结论：</strong>同上，打印<span style="line-height:20px">fencs的值（<span style="line-height:20px">fencs 就是&nbsp;<span style="line-height:20px">fileencodings</span></span>）</span></span><br /> </p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>fileencoding(fenc):这个东西尤其重要</strong>这个配置的是新建文件和保存文件时文件的编码，如果它的值与<strong>encoding(enc)</strong>不一样，<span style="color:#ff0000">那么保存的时候Vim会自动把文件内容由<strong>encoding(enc)</strong>的编码转换为<strong>fileencoding(fenc)</strong>配置编码再保存</span>。而读取文件的时候，<span style="color:#ff0000">该选项的值会自动同步为<strong>fileencodings(fencs):</strong>配置的有效编码。（实际上就是上面说的转换规则）</span></p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 例如:</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 如果我们是如下配置</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>encoding(enc):utf-8</strong></p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>fileencodings(fencs):utf-8，gbk</strong></p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <strong>fileencoding(fenc):gbk</strong></p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 那么我们打开一个gbk编码的文件，Vim会将内容转换为utf-8格式来显示，但是保存的时候文件的编码却依然是gbk</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 如果我的工作环境主要是编辑utf-8，偶尔会修改一下gbk的编码，我们该怎么配置呢？</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 首先我们可以把<strong>fileencoding</strong>留空，然后只配置<strong>fileencodings(fencs):utf-8,gbk,ucs-bom,cp936（<span style="color:#ff0000">这个需要在.vimrc中配置，不然下一次打开不会改变，而且这个列表是打开后不能改的，改了也没效果</span>）</strong></p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 按照上面的规则，Vim就会自动把文件保存为gbk的编码了</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> 如果我编辑了一个utf-8文件，想把它以gbk的格式保存，该怎么办呢？</p> <p style="padding-top:0px; padding-bottom:15px; margin-top:0px; margin-bottom:0px; line-height:20px"> <span style="color:#ff0000">在命令行模式输入&nbsp;<strong>:set fenc=gbk&nbsp;</strong>然后保存文件即可，保存之后再输入<strong>:set fenc=utf-8</strong>就可以继续编辑其他utf-8文件了</span></p></div><img src ="http://www.cppblog.com/colorful/aggbug/202107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/colorful/" target="_blank">多彩人生</a> 2013-07-25 10:03 <a href="http://www.cppblog.com/colorful/archive/2013/07/25/202107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vi 查找不包含[的行</title><link>http://www.cppblog.com/colorful/archive/2013/06/28/201373.html</link><dc:creator>多彩人生</dc:creator><author>多彩人生</author><pubDate>Fri, 28 Jun 2013 09:41:00 GMT</pubDate><guid>http://www.cppblog.com/colorful/archive/2013/06/28/201373.html</guid><wfw:comment>http://www.cppblog.com/colorful/comments/201373.html</wfw:comment><comments>http://www.cppblog.com/colorful/archive/2013/06/28/201373.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/colorful/comments/commentRss/201373.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/colorful/services/trackbacks/201373.html</trackback:ping><description><![CDATA[v/[<img src ="http://www.cppblog.com/colorful/aggbug/201373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/colorful/" target="_blank">多彩人生</a> 2013-06-28 17:41 <a href="http://www.cppblog.com/colorful/archive/2013/06/28/201373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Vim搭建C/C++开发环境 </title><link>http://www.cppblog.com/colorful/archive/2012/09/26/192118.html</link><dc:creator>多彩人生</dc:creator><author>多彩人生</author><pubDate>Wed, 26 Sep 2012 09:55:00 GMT</pubDate><guid>http://www.cppblog.com/colorful/archive/2012/09/26/192118.html</guid><wfw:comment>http://www.cppblog.com/colorful/comments/192118.html</wfw:comment><comments>http://www.cppblog.com/colorful/archive/2012/09/26/192118.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/colorful/comments/commentRss/192118.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/colorful/services/trackbacks/192118.html</trackback:ping><description><![CDATA[<div><p>&nbsp;</p><div>http://blog.csdn.net/wooin/article/details/1858917</div><div>http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/</div><br /><p>&nbsp;</p><p>-------------------------------------------------------<br /> 			 </p><p>用Vim搭建C/C++开发环境 <br /> <br /> 李若老师曾经说：世界上的程序员分三种，一种是用Emacs，一种是用Vim的，其它的归为第 三种。其意是说如果一个程序员两者都不用的话，那大抵是不能归为入流者行列的。对使用C/C++的人来说，很多人喜欢Emacs，据说与对 Stallman的崇拜与爱屋及乌有关;-)　当然，Emacs与Vim虽然在文本编辑方面的性能是等价的，但使用起来两者还是有很大的不同：Vim是为 程序员而开发的，功能强大而实用；Emacs除了文本编辑之外，作为Unix下的&#8220;第一个人工生命&#8221;，还可以通过插件完成各种包括听mp3，发邮件，甚至 煮咖啡的操作，所以，Emacs更像是一种&#8220;生活方式&#8221;。言归正传，我个人是用Vim的，在编写C/C++的程序时，只用Vim自身的功能还是不太爽的， 还需要其它的插件，将其构造成一个比VC爽得多的IDE。由于每个工具介绍清楚都不是一两句话说得完的，以下只列出插件的名称，具体的内容google之 即可;-)其中vim插件可以到VIMer最常去的www.vim.org下载<br /> <br /> <em></em> </p> <ol><li>Ctags，非vim插件。Ctags是Vim必不可少的工具，它可以将C/C++的宏、变量、函数、类等一系列信息提取出来，以方便切换。Ctags还可以使用更强大的cscope代替。  </li><li>Taglist，Vim插件。Taglist是与ctags的配合的vim的强大工具之一，其功能是将当前buffer的所有信息作成一个列表放在旁边，随时可以切换。  </li><li>omnicppcomplete，Vim插件。其功能顾名思义就是自动补全工具（可不是简单的Ctrl+N哦），比如定义了一个类叫myClass，生成一个实例myClass c; 那么输入c.之后就可以出现一个框，里面是c所有的成员函数。  </li><li>csupport，Vim插件。这是一个非常好的C/C++ ide，有了它什么编译运行一键搞定，定义一个类一键就可以给出一个模板格式，相当实用。  </li><li>clewn，非Vim插件。其用处是联结vim与gdb（没听说过gdb？google补个课吧~）。在打开clewn的时候，它利用 NetBeans，把gVim与gdb无缝地联结起来，还可以像matlab一样，在调试的时候把鼠标放在变量名上，就会有一个ballon出来显示这个 变量的指，炫吧？谁说只有emacs才能与gdb结合的好？另外它的另外一个替代品是VimGdb，这是个Vim插件。  </li><li>Doxygenkit。注释与文档合二为一的最强工具当然是Doxygen，有了Doxygenkit，用Vim写Doxygen格式一键搞定。</li></ol> <p>至此，我定制的Vim的C/C++IDE就搞定了，用起来比VC那个真是爽不知多少倍了。除了以上的插件外，Vim常用的还有Vimshell，project等工具，都有很炫的效果，请各位VIMers 自己体会 			 </p></div><img src ="http://www.cppblog.com/colorful/aggbug/192118.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/colorful/" target="_blank">多彩人生</a> 2012-09-26 17:55 <a href="http://www.cppblog.com/colorful/archive/2012/09/26/192118.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ctags</title><link>http://www.cppblog.com/colorful/archive/2012/05/10/174492.html</link><dc:creator>多彩人生</dc:creator><author>多彩人生</author><pubDate>Thu, 10 May 2012 12:38:00 GMT</pubDate><guid>http://www.cppblog.com/colorful/archive/2012/05/10/174492.html</guid><wfw:comment>http://www.cppblog.com/colorful/comments/174492.html</wfw:comment><comments>http://www.cppblog.com/colorful/archive/2012/05/10/174492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/colorful/comments/commentRss/174492.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/colorful/services/trackbacks/174492.html</trackback:ping><description><![CDATA[<div><p>安装ctags</p> <p>sudo apt-get install ctags&nbsp;</p><p>-------------------------------------------------------------------------------<br /></p><p>生成某项目的tags文件<br /></p> <p>cd 项目目录<br /></p><p>ctags &#8211;R&nbsp;&nbsp;&nbsp; // "-R"表示递归创建，也就包括源代码根目录下的所有子目录下的源程序。</p><p><div><pre id="best-answer-content"  mb10"="">"tags"文件中包括这些对象的列表：<br />l         用#define定义的宏 <br />l         枚举型变量的值 <br />l         函数的定义、原型和声明 <br />l         名字空间（namespace） <br />l         类型定义（typedefs） <br />l         变量（包括定义和声明） <br />l         类（class）、结构（struct）、枚举类型（enum）和联合（union） <br />l         类、结构和联合中成员变量或函数</pre></div><div><pre id="best-answer-content"  mb10"="">******注意：运行vim的时候，必须在"tags"文件所在的目录下运行。否则，运行vim的时候还要用":set tags="命令设定tags文件的路径，<br />这样vim才能找到"tags"文件 :set tags=/home/xxxxx/tags 在vim中输入命令导入tags文件</pre></div></p>  <p>-------------------------------------------------------------------------------------<br /></p><p>使用三种定位方法<br /></p><p>1)  用命令行。在运行vim的时候加上"-t"参数，例如： [/home/brimmer/src]$ vim -t foo_bar 这个命令将打开定义"foo_bar"（变量或函数或其它）      的文件，并把光标定位到这一行。 <br /></p><p>2)  在vim编辑器内用":ta"命令，例如： :ta foo_bar <br /></p><p>3)  最方便的方法是把光标移到变量名或函数名上，然后按下"Ctrl-]"。用"Ctrl-t"退回原来的地方</p></div><img src ="http://www.cppblog.com/colorful/aggbug/174492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/colorful/" target="_blank">多彩人生</a> 2012-05-10 20:38 <a href="http://www.cppblog.com/colorful/archive/2012/05/10/174492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>