在vi中^
将光标向左移动(到第一个非白色字符),$
将光标向右移动到最右边。 ^
$
在键盘上从右到左(即$
^
),这意味着左侧的键($
)将光标向右移动并键入right(^
)将光标向左移动。
我发现它令人困惑,我希望钥匙能够采用其他方式。
这个顺序是巧合还是有任何理由?感谢。
答案 0 :(得分:9)
在regular expressions中,^
是一个特殊的锚字符,意思是“行首”,$
是一个特殊的锚字符,意思是“行尾”。我不知道是否有任何特殊原因被选中。
答案 1 :(得分:5)
我认为^
用于“一行开头”的用法来自旧的ADM-3A terminals(c.1975),其键盘布局如下所示(摘自维基百科文章)。 ^
符号与Home
和~
的密钥相同,这也是为什么~
用于Unix中的主目录的原因。此布局也是hjkl
作为Vi(m)中的移动键的原点。
我不知道为什么$
最初用于“行尾”,但可能只是因为它类似于字母S
,因此被选择用于字符串终止。 $
也被用来界定ALGOL 68(c.1968)中的“formatted transput”,所以也许有更古老的起源。
答案 2 :(得分:2)
是的,在正则表达式中^
表示该行的开头,$
表示该行的结尾。一旦你做了足够的正则表达式游戏,这似乎很自然;)
答案 3 :(得分:2)
我希望它与正则表达式中^
(行首)和$
(行尾)的含义有关。