这个以 "1, $" 开头的命令行在 Vim 中有什么作用?

Sin*_*rMJ 6 vim

我有一个由其他人创建的 shell 脚本,我目前正在尝试理解它,其中有一行是

vim -c "1,\$s/MAJOR_VERSION = ./MAJOR_VERSION = $1/" -c "1,\$s/MINOR_VERSION = .*/MINOR_VERSION = $2/" -c "wq" $f
Run Code Online (Sandbox Code Playgroud)

我知道它的作用是改变MAJOR_VERSION = .我的输入 ( $1),但我不明白

"1, \$s
Run Code Online (Sandbox Code Playgroud)

开头的意思。来自终端的相应 vim 命令将是 :\s/MAJOR_VERSION...etc,那么 $s 在这种情况下做什么?

muc*_*lux 13

1,$定义s/../../应用替代命令的范围。1,$意思是“从第一行到最后一行”。有关:help range更多信息,请参见Vim。

  • 值得一提的是,您可以使用 `%` 作为 `1,$` 的简写。 (6认同)
  • ...并且在此上下文中对其进行转义以防止 shell 将 `$s` 扩展为 shell 变量 (4认同)