Skip to content

vim 13

替换字符串

替换命令 :substitute

需要以 :s 开头,若需要匹配整个文档,则需要 :%s 开头

例如:将整个文档中的 ' 替换为 "

:%s/'/"/g

公式

:[range]s[ubstitute]/{pattern}/{string}/{flags}

  • [range]: 可选,指定替换的范围
  • s[ubstitute]: 必须,指定替换命令, 可写全称或者简称
  • {pattern}: 必须,指定替换的模式
  • {string}: 必须,指定替换的字符串
  • {flags}: 可选,指定替换的标志

举个例子:

js
// 替换 str 为 name
// 指令::s/str/name
const str = 'hello'

range

范围

  • $ 到尾部
  • % 全文
  • number,number 基于行的,例如想要替换 2 到 12 行,可以写 :2,12s/str/name

pattern

模式,可以基于多个模式进行替换, 例如替换下面的 str1str2name

:39,40/s/str[1-2]/name

js
const str1 = 'hello'
const str2 = 'world'

flags

  • g 匹配所有,非 g 只会选中每一行的第一个
  • c 确认是否替换, 弹出交互
    • y 当前替换
    • n 当前不替换
    • a 所有替换
    • q 取消替换
    • l 替换第一个,然后退出

可视化模式

当你进入可视化模式时再按一下 s 时,你会发现会显示 '<'>

  • '< 选定上一次可视化模式选中的开头
  • '> 选定上一次可视化模式选中的结尾

所以可视化模式中进入指令模式,将自带一个范围

多选操作

  • gb 当你的光标选中一个单词的时候,可以通过 gb 来选中下一个单词,大小写严格

Released under the MIT License.