Can I use variable in pattern of substitute() in script?
let row = getline(j) 'trallala'
let rownext = getline(j+1) 'bimbam'
let row = substitute(row, ^\\\(.*\\\)$, \\1 rownext, g)
'trallala bimbam'
yes is the short answer, though you have to
1) concat it (if there's something to which it must be
added...i.e. it must not be within a string) and
2) escape it if there are any metachars in it...something like
let row=substitute(row, '$', ' '.escape(rownext, '\\*.'), 'g')
If you use the single quotes rather than the double-quotes,
you'll have less backslash escaping to do.
This doesn't actually change the line in your document. You can
do that, however, by doing something like
:s/$/\=' '.getline(line('.')+1)
This can be handily combined with a :g command to do things like
:g/regexp/s/$/\=' '.getline(line('.')+1)
which will find every line containing regexp and append a space
in addition to a copy of the following line.
If you just want to join the two lines, you can just use the J
command...or if you want to join the two variables, you can just
concat them:
let row = row.' '.rownext
but your example may have been a simplified version of things for
which this wouldn't work.
You can read more at
:help expr
:help sub-replace-\=
:help J
:help expr-.
Just a few ideas...HTH,
-tim