如何折叠注释行

Vim、Emacs配置和使用
回复
wangjun403
帖子: 433
注册时间: 2009-07-06 14:26

如何折叠注释行

#1

帖子 wangjun403 » 2012-11-16 8:52

代码: 全选

if(sig_gt_en)         //(sig_gt_clknum < 8)
	begin   
//GT_SI    <=#`DELAY GT_READ_CODE[~sig_gt_clknum[2:0]] ;      
    //else if((!(|sig_gt_clknum[8:5])) & (|sig_gt_clknum[4:3]))     
        //GT_SI    <=#`DELAY sig_gt_address[~sig_gt_clknum[4:0]] ;  
    //else                                                          
        //GT_SI    <=#`DELAY 0 ;                                    
    end
就是行首有//的行,或者前面是空白+//的行会自动折叠或者用命令执行折叠

但像第一行,注释在后面的就不折叠了

代码: 全选

set fdm=expr
set fde=getline(v:lnum)=~'\s*\/\/'?1:0
我这样弄,所有有//符号的行都自动折叠了

代码: 全选

set fdm=expr
set fde=getline(v:lnum)=~'^\s*\/\/'?1:0
这样的话只折叠行首有//的行

求大神指点
生命只不过是上帝借你一用的资本!
wangjun403
帖子: 433
注册时间: 2009-07-06 14:26

Re: 如何折叠注释行

#2

帖子 wangjun403 » 2012-11-17 18:59

热心帮助人的 lilydjwg 去哪里了呢?
生命只不过是上帝借你一用的资本!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何折叠注释行

#3

帖子 lilydjwg » 2012-11-17 19:25

看看 :help fold-expr 的示例就知道了:

代码: 全选

set fde=getline(v:lnum)=~'^\\s*\/\/'?1:0
wangjun403 写了:热心帮助人的 lilydjwg 去哪里了呢?
这个论坛的邮件通知已经坏掉很久了啊……
wangjun403
帖子: 433
注册时间: 2009-07-06 14:26

Re: 如何折叠注释行

#4

帖子 wangjun403 » 2012-11-18 15:22

正则不是很明白啊
前面的^\\s就不懂嘛意思
生命只不过是上帝借你一用的资本!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何折叠注释行

#5

帖子 lilydjwg » 2012-11-18 18:38

wangjun403 写了:正则不是很明白啊
前面的^\\s就不懂嘛意思
http://deerchao.net/tutorials/regex/regex.htm
回复