【问题标题】:Order of $ and ^ in vim. Is it reversed?vim 中 $ 和 ^ 的顺序。是不是反转了?
【发布时间】:2012-03-20 17:33:04
【问题描述】:

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

我发现它令人困惑,我希望键是其他方式。

这个订单只是巧合还是有任何原因?谢谢。

【问题讨论】:

  • 嘿,在my layout,它没有反转:)
  • 这是一个计算机模仿生活的案例。在生活中,你首先得到胡萝卜,然后当你走到尽头时,你会得到美元。

标签: vim keyboard-shortcuts vi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我不确定,但这可能与 PCDOS 晚于 Unix 有关,因为最初的 PCDOS 汇编程序使用 '$' 字符来终止字符串。参考文献stackoverflow.com/questions/481344/dollar-terminated-strings。我很确定 PCDOS 从哪里得到这个灵感。
    【解决方案3】:

    是的,在正则表达式中,^ 表示行首,$ 表示行尾。一旦你完成了足够多的正则表达式,它看起来很自然;)

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 愿意分享您使用的东西吗? 0E 浮现在脑海中,虽然他们做不同的事情
      • 实际上我确实使用了这些键,而且一直都这样做 - 我感到困惑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      相关资源
      最近更新 更多