एक 'foo' के साथ 'bar' और 'bar' के सभी उदाहरणों को vim में 'foo' के साथ कैसे बदल देगा?विम दो शब्दों को एक दूसरे के साथ प्रतिस्थापित करें
उत्तर
बदलाव के लिए एक अस्थायी शब्द का उपयोग कर के अलावा, आप भी इस तरह abolish प्लगइन का उपयोग कर सकते हैं:
:%SubVert/{foo,bar}/{bar,foo}/g
धन्यवाद! ठीक वही जो मेरे द्वारा खोजा जा रहा था। –
- :% s/foo/bbaarr/जी
- :% s/बार/foo/जी
- :% s/bbaarr/foo/जी
यह एक होशियार मौजूद होना चाहिए ऐसा करने का तरीका, लेकिन यह निश्चित रूप से काम करेगा!
सुधार 3.:% s/bbaarr/bar/g – Bhaskar
आप temp शब्द का उपयोग करके इसे कर सकते हैं। बस सुनिश्चित करें कि यह वर्तमान दस्तावेज़ में मौजूद नहीं है।
/\<asd123\>
:%s/\<foo\>/asd123/g
:%s/\<asd123\>/bar/g
:%s/\<bar\>/foo/g
इस पर एक नज़र डालें: how to write only one pattern to exchange two strings in two-ways in vim
:s/foo\|bar/\={'foo':'bar','bar':'foo'}[submatch(0)]/g
यह थोड़ा और जटिल है, हां, लेकिन कोई प्लगइन नहीं है? कई इसे पसंद कर सकते हैं। –
@JasonMcGhee: जब विकल्प स्ट्रिंग "\ =" से शुरू होती है तो शेष को अभिव्यक्ति के रूप में व्याख्या किया जाता है। – kev
इसे प्यार करो, यह वहीं कुछ विमफू है –
आप पाया है के रूप में एक उत्तर, कृपया इसे स्वीकार करें चिह्नित करें। – johnny