<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/1.5.1-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: 折叠::Vim进阶索引[2]</title>
	<link>http://blah.blogsome.com/2006/04/13/vim_tut_folding/</link>
	<description>awk, sed, vim, blah blah ...</description>
	<pubDate>Mon, 28 Dec 2009 22:08:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>

	<item>
		<title>by: hq00e</title>
		<link>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-46</link>
		<pubDate>Sat, 29 Dec 2007 01:38:51 +0000</pubDate>
		<guid>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-46</guid>
					<description>模式行中只能使用一条set 命令。所以第二个冒号后的命令被视为注解。（我在折叠篇中这一部分的描述是错的。现在已经改正。谢谢啦！）
多个选项可以用空格分隔。可以使用这种形式：
/* vim:set foldmethod=marker foldmarker={,}: */

使用了模式行后每次进入就自动折叠了。
如果不希望自动折叠可以加上nofoldenable。这样只有在，使用命令（如zM）后才折叠。
/* vim:set foldmethod=marker foldmarker={,} nofoldenable: */




</description>
		<content:encoded><![CDATA[	<p>模式行中只能使用一条set 命令。所以第二个冒号后的命令被视为注解。（我在折叠篇中这一部分的描述是错的。现在已经改正。谢谢啦！）<br />
多个选项可以用空格分隔。可以使用这种形式：<br />
/* vim:set foldmethod=marker foldmarker={,}: */</p>
	<p>使用了模式行后每次进入就自动折叠了。<br />
如果不希望自动折叠可以加上nofoldenable。这样只有在，使用命令（如zM）后才折叠。<br />
/* vim:set foldmethod=marker foldmarker={,} nofoldenable: */
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: windstorm</title>
		<link>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-45</link>
		<pubDate>Sat, 22 Dec 2007 23:59:17 +0000</pubDate>
		<guid>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-45</guid>
					<description>在某文件开头增加这么一行

/* vim: set foldmethod=marker: set foldmarker={,}: */ 

但是打开文件后，set foldmethod起作用，set foldmarker没起作用，请问为何？我本想让c程序大括号自动折叠的。

另外，如果foldmarker这样设置，我以后打开这个文件就自动帮我缩进了？还是我每次都需要选中全文zf一下？

谢谢
</description>
		<content:encoded><![CDATA[	<p>在某文件开头增加这么一行</p>
	<p>/* vim: set foldmethod=marker: set foldmarker={,}: */ </p>
	<p>但是打开文件后，set foldmethod起作用，set foldmarker没起作用，请问为何？我本想让c程序大括号自动折叠的。</p>
	<p>另外，如果foldmarker这样设置，我以后打开这个文件就自动帮我缩进了？还是我每次都需要选中全文zf一下？</p>
	<p>谢谢
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: hq00e</title>
		<link>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-34</link>
		<pubDate>Tue, 12 Sep 2006 16:21:06 +0100</pubDate>
		<guid>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-34</guid>
					<description>出现这个问题是因为同一折叠层级的多行缺省是当做同一折叠的。如果要在同一层级中生成多个折叠要用'&amp;gt;n'或'&amp;lt;n'（n为相应的层级）注明该行是一独立折叠的开始或结束行。可在返回值前加上&amp;gt;表示一个新折叠的开始。
如果在自定义函数中使用v:lnum，可以不传递参数。
strlen(matchstr(...))可以用matchend代替，因为式样是从行首开始的。

func! Myindent()
&amp;nbsp;let a=matchend(getline(v:lnum),&amp;#39;^*\+&amp;#39;)
&amp;nbsp; if a &amp;gt;= 1
&amp;nbsp;&amp;nbsp;   exe &amp;quot;return &amp;#39;&amp;gt;&amp;quot;. a .&amp;quot;&amp;#39;&amp;quot;
&amp;nbsp; endif
&amp;nbsp; return &amp;#39;=&amp;#39;
endfunc
</description>
		<content:encoded><![CDATA[	<p>出现这个问题是因为同一折叠层级的多行缺省是当做同一折叠的。如果要在同一层级中生成多个折叠要用&#8217;&gt;n&#8217;或&#8217;&lt;n&#8217;（n为相应的层级）注明该行是一独立折叠的开始或结束行。可在返回值前加上&gt;表示一个新折叠的开始。<br />
如果在自定义函数中使用v:lnum，可以不传递参数。<br />
strlen(matchstr(&#8230;))可以用matchend代替，因为式样是从行首开始的。</p>
	<p>func! Myindent()<br />
&nbsp;let a=matchend(getline(v:lnum),&#39;^*\+&#39;)<br />
&nbsp; if a &gt;= 1<br />
&nbsp;&nbsp;   exe &quot;return &#39;&gt;&quot;. a .&quot;&#39;&quot;<br />
&nbsp; endif<br />
&nbsp; return &#39;=&#39;<br />
endfunc
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: xbeta</title>
		<link>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-31</link>
		<pubDate>Sat, 02 Sep 2006 09:33:57 +0100</pubDate>
		<guid>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-31</guid>
					<description>文章很好，深有受益。多谢！
请教一个问题。我希望用行首*,**,***标记为1，2，3级标题（相应折叠）
--------------------------------------------------
set fdm=expr
set foldexpr=Myindent(v:lnum)
func! Myindent(lnum)
let s:a=strlen(matchstr(getline(v:lnum),'^\*\+'))
if s:a &amp;gt;= 1
    return s:a
else
    return '='
endif
endf
--------------------------------------------------
但还有一个新问题，就是对第N(N&amp;gt;1)个一级标题，它并不重新开始fold，而是归并到第1个标题1中了
请问如何处理？
</description>
		<content:encoded><![CDATA[	<p>文章很好，深有受益。多谢！<br />
请教一个问题。我希望用行首*,**,***标记为1，2，3级标题（相应折叠）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
set fdm=expr<br />
set foldexpr=Myindent(v:lnum)<br />
func! Myindent(lnum)<br />
let s:a=strlen(matchstr(getline(v:lnum),&#8217;^\*\+&#8217;))<br />
if s:a &gt;= 1<br />
    return s:a<br />
else<br />
    return &#8216;=&#8217;<br />
endif<br />
endf<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
但还有一个新问题，就是对第N(N&gt;1)个一级标题，它并不重新开始fold，而是归并到第1个标题1中了<br />
请问如何处理？
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Learning linux……</title>
		<link>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-8</link>
		<pubDate>Thu, 11 May 2006 18:10:19 +0100</pubDate>
		<guid>http://blah.blogsome.com/2006/04/13/vim_tut_folding/#comment-8</guid>
					<description>&lt;strong&gt;Vim进阶教程&lt;/strong&gt;

非常不错的系列教程由hq00e出品Vim中的模式行::Vim进阶索引[1]折叠::Vim进阶索引[2][UR ...</description>
		<content:encoded><![CDATA[	<p><strong>Vim进阶教程</strong></p>
	<p>非常不错的系列教程由hq00e出品Vim中的模式行::Vim进阶索引[1]折叠::Vim进阶索引[2][UR &#8230;
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
