• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Vimscript 段移动原理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

如果你未曾用过Vim的段移动命令 ([[]][] and ][),现在花上几秒读读它们的帮助文档。 也顺便读读:help section

还是不懂?这不是什么问题,我第一次读这些的时候也是这样。 在写代码之前,我们先岔开来学习这些移动是怎么工作的,然后在下一章我们将使得我们的Potion插件支持它们。

Nroff文件

四个"段移动"命令正如其字面上的含义,可以用来在文件的"段"之间移动。

这些命令默认为[nroff文件][]而设计。 Nroff类似于LaTex或Markdown -- 它是用来写标记文本的(最终会生成UNIX man页面)。

Nroff文件使用一组"macro"来定义"段头"。 比如,这里有个来自于awkman页面的例子:

.SH NAME                                                     ***
awk \- pattern-directed scanning and processing language
.SH SYNOPSIS                                                 ***
.B awk
[
.BI \-F
.I fs
]
[
.BI \-v
.I var=value
]
[
.I 'prog'
|
.BI \-f
.I progfile
]
[
.I file ...
]
.SH DESCRIPTION                                              ***
.I Awk
scans each input
.I file
for lines that match ...

.SH开头的行就是段头。我用***把它们标记出来。 四个段移动命令将在段头行之间移动你的光标。

Vim以.和nroff的段头符开始的任何行当做一个段头,即使你编辑的不是nroff文件

你可以改变sections设置来改变段头符,但Vim依旧需要在行开头有一个点,而且段头符必须是成对的字符, 所以这样改对Potion文件不会有足够的灵活性。

括号

段移动命令_也_查看另一样东西:一个打开或关闭的大括号({})作为行的第一个字符。

[[]]查看开括号,而[]][查看闭括号。

这额外的"行为"使得你可以在C风格语言的段之间轻松移动。 然而,这些规则也依旧没有顾及你正在编辑的文件类型!

加入下面内容到一个缓冲区里:

Test           A B
Test

.SH Hello      A B

Test

{              A
Test
}                B

Test

.H World       A B

Test
Test           A B

现在执行:set filetype=basic来告诉Vim这是一个BASIC文件,并尝试段移动命令。

[[]]命令将在标记为A的行之间移动,而[]][将在标记为B的行之间移动。

这告诉我们,Vim总是用同样的两条规则来处理段移动,即使没有一条是起作用的(比如在BASIC中的情况)!

练习

再次阅读:help section,现在你应该可以理解段移动了。

也顺便读读:help sections吧。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Vimscript Potion段移动发布时间:2022-02-03
下一篇:
Vimscript 高级折叠发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap