vim中$和^的顺序。是逆转了吗?

时间:2012-03-20 17:33:04

标签: vim keyboard-shortcuts vi

在vi中^将光标向左移动(到第一个非白色字符),$将光标向右移动到最右边。 ^ $在键盘上从右到左(即$ ^),这意味着左侧的键($)将光标向右移动并键入right(^)将光标向左移动。

我发现它令人困惑,我希望钥匙能够采用其他方式。

这个顺序是巧合还是有任何理由?感谢。

4 个答案:

答案 0 :(得分:9)

regular expressions中,^是一个特殊的锚字符,意思是“行首”,$是一个特殊的锚字符,意思是“行尾”。我不知道是否有任何特殊原因被选中。

答案 1 :(得分:5)

我认为^用于“一行开头”的用法来自旧的ADM-3A terminals(c.1975),其键盘布局如下所示(摘自维基百科文章)。 ^符号与Home~的密钥相同,这也是为什么~用于Unix中的主目录的原因。此布局也是hjkl作为Vi(m)中的移动键的原点。

enter image description here

我不知道为什么$最初用于“行尾”,但可能只是因为它类似于字母S,因此被选择用于字符串终止。 $也被用来界定ALGOL 68(c.1968)中的“formatted transput”,所以也许有更古老的起源。

答案 2 :(得分:2)

是的,在正则表达式中^表示该行的开头,$表示该行的结尾。一旦你做了足够的正则表达式游戏,这似乎很自然;)

答案 3 :(得分:2)

我希望它与正则表达式中^(行首)和$(行尾)的含义有关。