【vim中替换】

vim中替换

  • [1 : s/](#1 : s/)

在Vim中经常高频使用到的命令:

1 : s/

:s 命令的基本语法是 :[range]s/{pattern}/{string}/[flags],其中:

• [range] 是可选的范围,用于指定替换的行范围。例如,% 表示全文,10,20 表示第10 行到第20 行。

• {pattern} 是要被替换的模式(正则表达式)。

• {string} 是用于替换的字符串。

• [flags] 是可选的标志,用于控制替换的行为。例如,g 标志表示全局替换,c 标志表示替换前需要确认。

基本替换命令:

• :%s/old/new/g: 全局替换(整个文件) 将 old 替换为 new。

• :%s/old/new/gc: 全局替换并确认,每次替换前都会提示。

• 😒/old/new/: 替换当前行第一个匹配项。

• 😒/old/new/g: 替换当前行所有匹配项。

• :10,20s/old/new/g: 替换第10 行到第20 行所有匹配项。

sh 复制代码
:s/demo/REPLACE/     " 替换当前行第一个'demo'
:s/demo/REPLACE/g    " 替换当前行所有'demo'

:10,20s/demo/REPLACE/g   " 替换第10-20行所有'demo'
:%s/demo/REPLACE/g       " 替换全文所有'demo'(%表示全文)

:s/\<demo\>/REPLACE/g    " 精确匹配单词'demo'(避免替换'demon'等)
:s/demo/\U&/g           " 将'demo'转为大写('DEMO')

:s/demo/REPLACE/gc       " 每次替换前确认:
                         " [y]确认, [n]跳过, [a]全部替换, [q]退出
						 
:s/demo$123$/new\1/     将demo123→new123
:s/demo//g              删除所有'demo' 
:s/demo\_.\{-}end/REPLACE/g    替换从'demo'到'end'的多行文本
:s/demo/$USER/g  		插入系统变量$USER

若替换内容含/或&,需转义为/或&;