启动vim。
在空缓冲区中,插入两行,其中第一行包含3个空格,第二行包含hello world
。
这是一个示例文件,其中空格用点表示。
...
hello world
现在按gg
。光标移动到第一行的第三个空格。
引用:help gg
:
<C-Home> or *gg* *<C-Home>*
gg Goto line [count], default first line, on the first
non-blank character |linewise|. If 'startofline' not
set, keep the same column.
文档说光标应该移动到第一行的第一个非空白字符。我有两个问题。
:help
是否记录了非空字符的定义?如果是的话,你能指点我吗?:help gg
中提供的文档一致?答案 0 :(得分:3)
我不认为vim文档中存在非空白的一般定义,但我也不认为这是一种&#34;副作用&#34; gg
。
请注意gg
与^
一致:
^ To the first non-blank character of the line.
|exclusive| motion.
vim的模式匹配行为([:blank:]
)的和:h blank
将空白字符定义为空格和制表符:
*[:blank:]* [:blank:] space and tab characters
至于这是否与gg
一致,请考虑它所说的将分为两步而不是一步:
将2实现为算法的最简单方法可能是将光标定位在行开头的所有空白字符之后。在您的情况下,它们都是空白字符(并且它不能移动到下一行),因此光标位于行的末尾(在所有空白字符之后)。