vim的折叠

Vim、Emacs配置和使用
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

vim的折叠

#1

帖子 redhatlinux10 » 2011-05-23 11:18

先贴个图,看看notepad++中的折叠是什么样子的
截图01.jpg
notepad++能够解析xml文件中的标签,然后按照标签进行折叠。不要求xml文件中必须有/*{{{*/和/*}}}*/,也不要求xml文件预先缩进好。
我了解了下vim的marker折叠和indent折叠。感觉有点鸡肋啊。
  • marker折叠,强制性要求文件中必须有/*{{{*/和/*}}}*/,这不是在强奸原文件吗?
  • indent折叠,要求文件预先缩进好,碰上没有缩进的或者缩进不良好的,就傻眼了。
vim的其它四种折叠我没有去了解了,不知道syntax折叠和manual折叠能否达到这种效果?
非常期待vim高手给解答我的疑问啊!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: vim的折叠

#2

帖子 eexpress » 2011-05-23 11:23

估计纯外挂,才可以如意。
自带的,都有些局限。
● 鸣学
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: vim的折叠

#3

帖子 qy117121 » 2011-05-23 11:24

:em01 不懂
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: vim的折叠

#4

帖子 枫叶饭团 » 2011-05-23 11:25

:em70 :em70 :em70
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: vim的折叠

#5

帖子 redhatlinux10 » 2011-05-23 11:31

当xml文件内容不多的时候,对折叠的要求不那么强烈,但是一旦文件的行数占据了10多个屏幕的时候,没有折叠或者outline,还真是悲剧啊。
不能从整体上概览文件,就容易身在此山中,不知真面目。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的折叠

#6

帖子 lilydjwg » 2011-05-23 13:17

xml.vim

另外缩进什么的可以交给 tidy 程序搞定。
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: vim的折叠

#7

帖子 redhatlinux10 » 2011-05-23 15:13

lilydjwg 写了:xml.vim

另外缩进什么的可以交给 tidy 程序搞定。
xml.vim的折叠也是基于{{{ 和 }}}的。
fold tag(快捷键是\+f)的时候,它自动往xml文件中插入<!--{{{-->和<!--}}}-->(修改原文件了)。跟要命的是,这个自动插入还有bug,会破坏原文件。
折叠前:
截图02.jpg
截图02.jpg (9.2 KiB) 查看 2071 次
折叠后,fold tag时自动插入的<!--{{{-->标签破坏了xml文件:
截图03.jpg
截图03.jpg (11.29 KiB) 查看 2071 次
此外,它的fold all tags貌似也不能正常工作啊。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的折叠

#8

帖子 lilydjwg » 2011-05-23 15:45

redhatlinux10 写了:
lilydjwg 写了:xml.vim

另外缩进什么的可以交给 tidy 程序搞定。
xml.vim的折叠也是基于{{{ 和 }}}的。
fold tag(快捷键是\+f)的时候,它自动往xml文件中插入<!--{{{-->和<!--}}}-->(修改原文件了)。跟要命的是,这个自动插入还有bug,会破坏原文件。
如果你的 foldmethod=marker 的话它只好自己插入 marker 了,用 manual 就不会。另外我看了下帮助文件,作如下设置即可使用语法折叠:

代码: 全选

let g:xml_syntax_folding = 1
set foldmethod=syntax
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: vim的折叠

#9

帖子 adam8157 » 2011-05-23 16:05

代码: 全选

set foldenable
set foldmethod=syntax
头像
redhatlinux10
帖子: 773
注册时间: 2008-01-22 23:24
来自: 三亚
联系:

Re: vim的折叠

#10

帖子 redhatlinux10 » 2011-05-23 22:11

lilydjwg 写了:
redhatlinux10 写了:
lilydjwg 写了:xml.vim

另外缩进什么的可以交给 tidy 程序搞定。
xml.vim的折叠也是基于{{{ 和 }}}的。
fold tag(快捷键是\+f)的时候,它自动往xml文件中插入<!--{{{-->和<!--}}}-->(修改原文件了)。跟要命的是,这个自动插入还有bug,会破坏原文件。
如果你的 foldmethod=marker 的话它只好自己插入 marker 了,用 manual 就不会。另外我看了下帮助文件,作如下设置即可使用语法折叠:

代码: 全选

let g:xml_syntax_folding = 1
set foldmethod=syntax
nice shot!解决了我的一个老大难啊!
另外,有个疑问,为什么折叠的命令是以字母z开头啊?比如zo,zc。这个字母z完全和折叠没有关系嘛。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: vim的折叠

#11

帖子 自由建客 » 2011-05-23 22:22

redhatlinux10, 怎没关系,zhe die 的 z !
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: vim的折叠

#12

帖子 nmsfan » 2011-05-23 22:31

自由建客 写了:redhatlinux10, 怎没关系,zhe die 的 z !
:em06 :em06
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
头像
monk
帖子: 19507
注册时间: 2010-01-28 10:45

Re: vim的折叠

#13

帖子 monk » 2011-05-23 22:36

自由建客 写了:redhatlinux10, 怎没关系,zhe die 的 z !
zhe die 的 z !
地球人都不明白写啥 :em04

*********宁静致远*********
如果我说的有什么不对,请看签名第一行
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim的折叠

#14

帖子 lilydjwg » 2011-05-23 22:44

redhatlinux10 写了: 另外,有个疑问,为什么折叠的命令是以字母z开头啊?比如zo,zc。这个字母z完全和折叠没有关系嘛。
:h 28.2 写了:

代码: 全选

所有的折叠命令都以 'z' 开头。展开你的想像力,这个字母看起来就像一张折叠起来的
纸的侧面。而 "z" 后面可用的字母,由于采用了帮助记忆方法选择,很容易记得住:
不爱看手册的孩子 :em04
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: vim的折叠

#15

帖子 fanhe » 2011-05-23 23:48

vim份内的99%的问题的答案在手册里面找到
回复