[Practical.Vim(2012.9)].Drew.Neil.Tip100学习摘要
2015-04-20 23:03
375 查看
Alphabetize the Properties of Each Rule in a CSS File
When combining an Ex command with :global, we can also specify a range for our chosen [cmd]. Vim allows us to set the range dynamically using the :g/{pattern} as a reference point.当用:global结合Ex命令使用时,我们可以为命令[cmd]指定文本区域。Vim允许我们利用
:g/{pattern}动态设置区域。
Sort Properties for a Single Block of Rules
我们打算对{}中的文本按照首字母进行排序,我们可以这样做,手动选择区域然后执行sort命令但是如果文件中有非常多{}区域的需要排序,应该怎么做呢?
Sort Properties for Every Block of Rules
我们可以执行下面的命令::g/{/ .+1,/}/-1 sort
这个命令非常复杂,但是理解后就会帮助我们明白:global命令有多强大。我们已经知道标准形式为
:g/{pattern}/[cmd]
我们也知道Ex命令可以接受一个区域范围。在:global命令中这个同样使用。所以我们可以扩展上面的命令
:g/{pattern}/[range][cmd]
[range]可以使用:g/{pattern}的匹配结果作为引用点来设置区域。通常符号.表示光标所在地址。当时在:global中代表匹配{pattern}的每一行。
我们把命令分为两个独立的Ex命令来看。首先我们来看
:.+1,/}/-1 sort
如果我们去除偏移,得到
.,/}/。可以把这个命令翻译为 从当前行到下一个匹配/}/的行。+1 -1偏移将范围缩小到了{}包含的内容。
现在我们只需要把光标放在{上,然后执行
:.+1,/}/-1 sort,就可以对{}内的内容进行排序。查找{可以使用
/{/
现在把两个命令合在一起,就可以得到
:g/{/ .+1,/}/-1 sort
Discussion
:global命令的一般形式为:g/{start}/ .,{finish} [cmd]
我们可以翻译为,对于起始于start,结束到{finish}的区域,执行命令[cmd]
相关文章推荐
- [Practical.Vim(2012.9)].Drew.Neil.Tip04 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip09学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip94 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip95 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip48 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip98 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip01 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip52 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip50 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip10学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip02 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip99 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip49 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip16学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip21学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip46 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip97 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip21学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip50 学习摘要
- [Practical.Vim(2012.9)].Drew.Neil.Tip19学习摘要