<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>《vi/vim使用进阶: 智能补全》的评论</title>
	<atom:link href="http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/feed/" rel="self" type="application/rss+xml" />
	<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/</link>
	<description>关注Linux, Scala, Android, Java, 开源软件和嵌入式系统</description>
	<lastBuildDate>Tue, 31 Jan 2012 02:52:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>作者：Easwy</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-10981</link>
		<dc:creator>Easwy</dc:creator>
		<pubDate>Mon, 10 Oct 2011 04:12:57 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-10981</guid>
		<description>这个和phpcomplete.vim插件有关，你看看这个插件的帮助文件，可不可以配置</description>
		<content:encoded><![CDATA[<p>这个和phpcomplete.vim插件有关，你看看这个插件的帮助文件，可不可以配置</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：surmise</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-10193</link>
		<dc:creator>surmise</dc:creator>
		<pubDate>Sun, 28 Aug 2011 10:34:06 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-10193</guid>
		<description>请教下,我使用全能补全PHP函数的时候, 如果关闭预览窗口,也就是设置为
set completeopt=longest,menu 
那么,我就不能看见函数的参数了.
弹出的菜单只显示了函数名, 和返回值.
是不是弹出菜单宽度的原因?
看了下帮助文档,好像只能调整弹出菜单的高度啊.
求解~~
对了,全能补全调用的是phpcomplete.vim</description>
		<content:encoded><![CDATA[<p>请教下,我使用全能补全PHP函数的时候, 如果关闭预览窗口,也就是设置为<br />
set completeopt=longest,menu<br />
那么,我就不能看见函数的参数了.<br />
弹出的菜单只显示了函数名, 和返回值.<br />
是不是弹出菜单宽度的原因?<br />
看了下帮助文档,好像只能调整弹出菜单的高度啊.<br />
求解~~<br />
对了,全能补全调用的是phpcomplete.vim</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：vi/vim使用进阶: 自动补全 &#124; RichData</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-7125</link>
		<dc:creator>vi/vim使用进阶: 自动补全 &#124; RichData</dc:creator>
		<pubDate>Fri, 11 Mar 2011 04:01:22 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-7125</guid>
		<description>[...] 上篇文章介绍了vim的智能补全(omni补全)，本篇主要介绍vim提供的其它补全方式。 [...]</description>
		<content:encoded><![CDATA[<p>[...] 上篇文章介绍了vim的智能补全(omni补全)，本篇主要介绍vim提供的其它补全方式。 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：Easwy</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-7025</link>
		<dc:creator>Easwy</dc:creator>
		<pubDate>Tue, 01 Mar 2011 02:03:04 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-7025</guid>
		<description>&lt;a href=&quot;#comment-7012&quot; rel=&quot;nofollow&quot;&gt;@xyf &lt;/a&gt; 
如果是引用本文件的内容，建议使用CTRL-P或者CTRL-N补全
omincppcomplete是用脚本实现的，有些高级功能不太好实现</description>
		<content:encoded><![CDATA[<p><a href="#comment-7012" rel="nofollow">@xyf </a><br />
如果是引用本文件的内容，建议使用CTRL-P或者CTRL-N补全<br />
omincppcomplete是用脚本实现的，有些高级功能不太好实现</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：xyf</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-7012</link>
		<dc:creator>xyf</dc:creator>
		<pubDate>Mon, 28 Feb 2011 16:05:11 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-7012</guid>
		<description>一直使用omnicppcomplete进行C编程，挺爽的。
最近碰到一个问题，在具有多个同样名字的结构体，
那么补全成员的时候会不正确。
比如MosaicDisplay_test.c文件里有这么一段代码：
974 static Void App_dispUpdateFrameList(App_DisplayObj *appObj,
975 FVID2_FrameList *fList)
976 {
977 UInt32 index;
978 UInt32 frmCnt;
979 FVID2_Frame *frame;
980 Vps_DispRtParams *rtPrms = NULL;
981
982 /* Change the application layout every LAYOUT_SWITCH_RATE frames */
983 if ((0u != appObj-&gt;submittedFrames) &amp;&amp;
984 (0u == (appObj-&gt;submittedFrames % LAYOUT_SWITCH_RATE)))
985 {
986 /* Move to the next layout */
987 appObj-&gt;curLayoutIdx++;
988 System_printf(“%s: curLayoutIdx:%u!\n”, APP_NAME,
appObj-&gt;curLayoutIdx);
源码里有多个App_DisplayObj结构体定义。
下面是运行 &quot;:ta App_DisplayObj&quot;命令得到的信息:
# pri kind tag file
1 FSC t App_DisplayObj ./hdvpss_01_00_01_25/packages/ti/psp/examples/common/vps/display/mosaicDisplay/src/MosaicDisplay_test.c
line:214 typeref:struct:__anon4817
} App_DisplayObj;
2 F t App_DisplayObj ./hdvpss_01_00_01_25/packages/ti/psp/examples/common/vps/chains/links/grpx/grpxLink_priv.h
line:109 typeref:struct:__anon4842
} App_DisplayObj;
3 F t App_DisplayObj ./hdvpss_01_00_01_25/packages/ti/psp/examples/common/vps/display/triDisplay/src/TriDisplay.h
line:166 typeref:struct:__anon4819
} App_DisplayObj;
Type number and (empty cancels):
从ctags输出可以看到ctags已经找到了正确的App_DisplayObj在本文件里的定义并且放在第一行。
如果我在上面函数里输入appObj-&gt;，omnicppcomplete使用了grpxLink_priv.h头文件里定义的结构体进行成员补全，而不是使用本文件里的定义。.
我怀疑omnicppcomplete是使用了ctags输出信息里的第一个头文件来得到结构体成员的。所以在这种情况就选中了grpxLink_priv.h里的结构体成员。
不知道有没有办法让omnicppcomplete在这种情况下选中正确的结构体定义或者对于同名结构体可以选择不同文件里结构体定义成员进行补全。
谢谢！</description>
		<content:encoded><![CDATA[<p>一直使用omnicppcomplete进行C编程，挺爽的。<br />
最近碰到一个问题，在具有多个同样名字的结构体，<br />
那么补全成员的时候会不正确。<br />
比如MosaicDisplay_test.c文件里有这么一段代码：<br />
974 static Void App_dispUpdateFrameList(App_DisplayObj *appObj,<br />
975 FVID2_FrameList *fList)<br />
976 {<br />
977 UInt32 index;<br />
978 UInt32 frmCnt;<br />
979 FVID2_Frame *frame;<br />
980 Vps_DispRtParams *rtPrms = NULL;<br />
981<br />
982 /* Change the application layout every LAYOUT_SWITCH_RATE frames */<br />
983 if ((0u != appObj-&gt;submittedFrames) &amp;&amp;<br />
984 (0u == (appObj-&gt;submittedFrames % LAYOUT_SWITCH_RATE)))<br />
985 {<br />
986 /* Move to the next layout */<br />
987 appObj-&gt;curLayoutIdx++;<br />
988 System_printf(“%s: curLayoutIdx:%u!\n”, APP_NAME,<br />
appObj-&gt;curLayoutIdx);<br />
源码里有多个App_DisplayObj结构体定义。<br />
下面是运行 “:ta App_DisplayObj”命令得到的信息:<br />
# pri kind tag file<br />
1 FSC t App_DisplayObj ./hdvpss_01_00_01_25/packages/ti/psp/examples/common/vps/display/mosaicDisplay/src/MosaicDisplay_test.c<br />
line:214 typeref:struct:__anon4817<br />
} App_DisplayObj;<br />
2 F t App_DisplayObj ./hdvpss_01_00_01_25/packages/ti/psp/examples/common/vps/chains/links/grpx/grpxLink_priv.h<br />
line:109 typeref:struct:__anon4842<br />
} App_DisplayObj;<br />
3 F t App_DisplayObj ./hdvpss_01_00_01_25/packages/ti/psp/examples/common/vps/display/triDisplay/src/TriDisplay.h<br />
line:166 typeref:struct:__anon4819<br />
} App_DisplayObj;<br />
Type number and (empty cancels):<br />
从ctags输出可以看到ctags已经找到了正确的App_DisplayObj在本文件里的定义并且放在第一行。<br />
如果我在上面函数里输入appObj-&gt;，omnicppcomplete使用了grpxLink_priv.h头文件里定义的结构体进行成员补全，而不是使用本文件里的定义。.<br />
我怀疑omnicppcomplete是使用了ctags输出信息里的第一个头文件来得到结构体成员的。所以在这种情况就选中了grpxLink_priv.h里的结构体成员。<br />
不知道有没有办法让omnicppcomplete在这种情况下选中正确的结构体定义或者对于同名结构体可以选择不同文件里结构体定义成员进行补全。<br />
谢谢！</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：vi/vim使用进阶: 目录 &#124; 深度编程</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-5347</link>
		<dc:creator>vi/vim使用进阶: 目录 &#124; 深度编程</dc:creator>
		<pubDate>Tue, 23 Nov 2010 06:11:30 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-5347</guid>
		<description>[...] vi/vim使用进阶: 智能补全 [...]</description>
		<content:encoded><![CDATA[<p>[...] vi/vim使用进阶: 智能补全 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：Easwy</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-5312</link>
		<dc:creator>Easwy</dc:creator>
		<pubDate>Mon, 22 Nov 2010 01:35:45 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-5312</guid>
		<description>&lt;a href=&quot;#comment-5303&quot; rel=&quot;nofollow&quot;&gt;@navaket &lt;/a&gt; 
文件修改了，需要重新生成tag文件，vim不会自动更新tag的
我的&lt;a href=&quot;http://easwy.com/blog/archives/automatically_update_ctags_tag_cscope_database/&quot; rel=&quot;nofollow&quot;&gt;为vi/vim自动更新tag文件和cscope数据库&lt;/a&gt;介绍了如何自动更新tag文件。</description>
		<content:encoded><![CDATA[<p><a href="#comment-5303" rel="nofollow">@navaket </a><br />
文件修改了，需要重新生成tag文件，vim不会自动更新tag的<br />
我的<a href="http://easwy.com/blog/archives/automatically_update_ctags_tag_cscope_database/" rel="nofollow">为vi/vim自动更新tag文件和cscope数据库</a>介绍了如何自动更新tag文件。</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：navaket</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-5303</link>
		<dc:creator>navaket</dc:creator>
		<pubDate>Sun, 21 Nov 2010 06:17:43 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-5303</guid>
		<description>博主你好,在cpp格式自动补全时
我写了一个结构体
struct T{
  int data;
}t;
然后 t.不能补全
要用ctags -R –c++-kinds=+p –fields=+iaS –extra=+q my-files后才可以
是不是每一次都要更新tags文件呢?</description>
		<content:encoded><![CDATA[<p>博主你好,在cpp格式自动补全时<br />
我写了一个结构体<br />
struct T{<br />
  int data;<br />
}t;<br />
然后 t.不能补全<br />
要用ctags -R –c++-kinds=+p –fields=+iaS –extra=+q my-files后才可以<br />
是不是每一次都要更新tags文件呢?</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：疯狂的方</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-2590</link>
		<dc:creator>疯狂的方</dc:creator>
		<pubDate>Sun, 25 Apr 2010 11:43:32 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-2590</guid>
		<description>&lt;a href=&quot;#comment-433&quot; rel=&quot;nofollow&quot;&gt;@Mk2 &lt;/a&gt; 
能分享一下你的脚本吗？</description>
		<content:encoded><![CDATA[<p><a href="#comment-433" rel="nofollow">@Mk2 </a><br />
能分享一下你的脚本吗？</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：Easwy</title>
		<link>http://easwy.com/blog/archives/advanced-vim-skills-omin-complete/#comment-2460</link>
		<dc:creator>Easwy</dc:creator>
		<pubDate>Mon, 12 Apr 2010 01:55:03 +0000</pubDate>
		<guid isPermaLink="false">http://easwy.com/blog/?p=166#comment-2460</guid>
		<description>&lt;a href=&quot;#comment-2445&quot; rel=&quot;nofollow&quot;&gt;@hjs-1122 &lt;/a&gt; 
1. 你的tags文件是按我文中的命令生成的吗？

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q your-files

2. 在你的示例中，提示“找不到模式”是正确的。
因为你的变量a和b定义为private的，在main()中肯定访问不到private中的函数/变量。你试试加一个public的变量或者函数试试，或者在class A的成员函数中测试一下补全。我在我的机器上测试了这两种情况，都可以补全。</description>
		<content:encoded><![CDATA[<p><a href="#comment-2445" rel="nofollow">@hjs-1122 </a><br />
1. 你的tags文件是按我文中的命令生成的吗？</p>
<p>ctags -R &#8211;c++-kinds=+p &#8211;fields=+iaS &#8211;extra=+q your-files</p>
<p>2. 在你的示例中，提示“找不到模式”是正确的。<br />
因为你的变量a和b定义为private的，在main()中肯定访问不到private中的函数/变量。你试试加一个public的变量或者函数试试，或者在class A的成员函数中测试一下补全。我在我的机器上测试了这两种情况，都可以补全。</p>
]]></content:encoded>
	</item>
</channel>
</rss>

