Alex Rivera | Logout

What is the easiest way to swap occurrences of two strings in Vim?

Asked 2010-08-26T19:01:46.197
49

What is the easiest way to replace all occurrences of string_a with string_b while at the same time changing anything that was already string_b into string_a? My current method is as follows:

:s/string_a/string_c/g  
:s/string_b/string_a/g  
:s/string_c/string_b/g  

Although this works, it requires extra typing and seems inefficient. Does anybody know of a better way to do this?

Edit
Report

1 Answer

1

You can do it with a single command as shown in my code below:

:%s/\<\(string_a\|string_b\)\>/\=strpart("string_bstring_a", 8 * ("string_b" == submatch(0)), 8)/g
answered 2010-08-26T19:16:26.283

Your Answer