vim 替換%s 與$s


vim 替換:
s用於單行替換;$s可以指定范圍進行替換;%S用於全局替換
對於指定范圍的替換用$s ,全局的替換盡量用%s,%s 不能指定范圍進行替換(即使指定了范圍仍然進行全局的替換)
使用舉例如下:
vim test.txt
nginx nginx dsd nginx
nginx jksdjk nginx
sdjks nginx nginx
進入末行模式
1)替換光標所在行的第一個nginx為TTT(光標在第一行)
:s/nginx/TTT
TTT nginx dsd nginx
nginx jksdjk nginx
sdjks nginx nginx
2)替換光標所在行的全部nginx為TTT(光標在第一行)
:s/nginx/TTT/g
TTT TTT dsd TTT
nginx jksdjk nginx
sdjks nginx nginx
3)替換光標所在行到末尾行的第一個nginx為TTT(光標在第二行)
:.,$s/nginx/TTT
nginx nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx
4)替換光標所在行到末尾行的所有nginx為TTT(光標在第二行)
:.,$s/nginx/TTT/g
nginx nginx dsd nginx
TTT jksdjk TTT
sdjks TTT TTT
等價於::2,$s/nginx/TTT
nginx nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx
5)替換所有行的第一個nginx為TTT
:%s/nginx/TTT
TTT nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx
6)替換所有行的所有nginx為TTT
:%s/nginx/TTT/g
TTT TTT dsd TTT
TTT jksdjk TTT
sdjks TTT TTT
%s 指定范圍替換沒有效果,仍然是全局替換:
舉例:
:2,%s/nginx/TTT
TTT nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM