I have lines of text, all with the same structure, and would like to make a permutation of 2 elements on all lines:
1257654 some text (which may be long) #Foo
1543098 some other text #Barbar
1238769 whatever #Baz
2456874 something else #Quux
I want to obtain :
#Foo some text (which may be long) 1257654
#Barbar some other text 1543098
#Baz whatever 1238769
#Quux something else 2456874
This is where I am stuck :
:%s/\(\d\{7\}\)\(#.\{-}\)/\2\1/
Where did I go wrong ?
The problem with your substitution is that you only have two groups instead of three.
Your goal is to swap
1and3around2:So you need to have three groups in your pattern:
to be able to do:
This substitution seems to work:
here is a shorter and prettier version thanks to
verymagic: