vim中替換
- 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 行所有匹配項。
: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
若替換內容含/或&,需轉義為/或&;