हेयर यू गो:
:g/foo/t.|s//bar
सड़ते हुए:
:g/foo/ " start a global command applied on all lines matching 'foo'
t. " duplicate the current line (the cursor is now on the new line)
| " chain a new command
s//bar " substitute the last searched element with 'bar'
क्योंकि g
कमांड सर्च पैटर्न को अपडेट करेगा, इसलिए आप विकल्प कमांड में बदलने के लिए पैटर्न को छोड़ सकते हैं। (रेफ:, के :h :g
लिए खोज search pattern
)।
पुराना संस्करण:
:g/foo/norm! yyp:s/foo/bar^M
सड़ते हुए:
:g start a global command
/foo/ apply only on lines having 'foo'
norm! execute a normal command
yyp duplicate the line
:s//bar replace foo with bar on the line (the duplicated one)
^M add enter to execute the substitution
सम्मिलित करने के लिए ^M
प्रेस Ctrl+vऔर enter।
नोट : मैं मूल रूप से "पुराने" संस्करण के साथ आया था, इससे पहले कि मैं t
कमांड के बारे में सीखता । मैं इसे छोड़ दूँगा लेकिन मैं इसे इस्तेमाल करने की सलाह नहीं दूँगा। पहले वाला क्लीनर ज्यादा सीधा है।