From: "A.J.Mechelynck" <[EMAIL PROTECTED]> Subject: Re: Terminating search in function Date: Sun, 22 Oct 2006 12:29:36 +0200
> Meino Christian Cramer wrote: > > From: "A.J.Mechelynck" <[EMAIL PROTECTED]> > > Subject: Re: Terminating search in function > > Date: Sun, 22 Oct 2006 11:00:14 +0200 > > > >> Meino Christian Cramer wrote: > >>> From: "A.J.Mechelynck" <[EMAIL PROTECTED]> > >>> Subject: Re: Terminating search in function > >>> Date: Sun, 22 Oct 2006 09:33:01 +0200 > >>> > >>>> Meino Christian Cramer wrote: > >>>>> Hi, > >>>>> > >>>>> I wrote this snippet: > >>>>> > >>>>> "-------------------------------------------------------------------------------- > >>>>> fun! Ffunchdr() > >>>>> let date = strftime( "%F" ) > >>>>> > >>>>> put='/*-----------------------------------------------------------------------------*/' > >>>>> put='/**' > >>>>> put=' * desc' > >>>>> put=' *' > >>>>> put=' *' > >>>>> put=' *' > >>>>> put=' * Created: ' . date . ' > >>>>> put=' *' > >>>>> put=' * parameter: > >>>>> put=' * parameter: > >>>>> put=' * parameter: > >>>>> put=' * parameter: > >>>>> put=' * parameter: > >>>>> put=' *' > >>>>> put=' * result 0 - Success, -1 - Failure' > >>>>> put=' *' > >>>>> put=' */' > >>>>> ?desc > >>>>> endfun > >>>>> command! Funchdr :call Ffunchdr() > >>>>> > >>>>> > >>>>> > >>>>> This should give nme the header comment for function definitions in C. > >>>>> My problem seems to be the "?desc" command at the end. > >>>>> It /should/ move the cursor onto the "desc" keyword right in the > >>>>> beginning of the comment block. > >>>>> > >>>>> But it move the cursor to here: > >>>>> > >>>>> * desc > >>>>> ^ > >>>>> | > >>>>> cursor position > >>>>> > >>>>> My """analysis""" (a too big word...) of the problem is: "?" is still > >>>>> waiting for input. I tried > >>>>> > >>>>> > >>>>> ?desc<CR> > >>>>> > >>>>> instead, but now "?" tries to find "desc<CR>" literally and did not > >>>>> find it. > >>>>> > >>>>> There seem to be an exception of the "type the commands as you would > >>>>> do normally"-rule here...but what is the rule to recognize that the > >>>>> current situation is an exception and what is the solution? > >>>>> > >>>>> Thank you very much in advance for any help ! :) > >>>>> > >>>>> Have a nice weekend! > >>>>> mcc > >>>>> > >>>>> > >>>> What you're using is a "searching range" (as in ":?desc" from the > >>>> keyboard). > >>>> It positions the cursor on the first nonblank in the matched line. > >>>> > >>>> To use a "search command" (as in "?desc" from the keyboard) in an > >>>> Ex-command > >>>> line, use ":normal": > >>>> > >>>> normal ?desc > >>>> > >>>> see > >>>> :help :range > >>>> :help :normal > >>>> > >>>> > >>>> Best regards, > >>>> Tony. > >>>> > >>> Hi Tony, > >>> > >>> :O) thank you,Tony !:O) > >>> > >>> > >>> execute "normal ?desc\<CR>" > >>> > >>> will do the job and it seems, that a final > >>> > >>> execute "normal cw" on the found "desc" cannot be done correctly, > >>> since the command is not finished (which it should eb according to > >>> the :help normal text). > >>> > >>> Have a nice weekend! > >>> mcc > >>> > >>> > >>> > >>> > >>> > >> "normal cw" is not finished since the c (change) commands needs to be told > >> _to_ what you want to change the replaced word. What you can do instead > >> (IIUC) > >> is "normal diw" (delete inner word) followed by "startinsert!". Note that > >> "startinsert[!]" only makes sense as the last statement of the script > >> (because > >> insert-mode will be delayed until then). > >> > >> Have a nice weekend too. > >> > >> > >> Best regards, > >> Tony. > >> > > > > Hi Tony, > > > > ...the "normal diw"+startinsert!-trick works nice ! > > Thanks a lot -- such little helpers like the now > > finally working Function-header-function() are the > > _real_ stuff helping one to speed up the daily work -- > > and of course the helping hands, which make the helper-function > > work ... :O) > > > > Happy VIMming! > > mcc > > > > > > > > > > > > > > BTW, instead of all those "put" statements, wouldn't it be simpler to have > your template as a separate file, and use ":r filename" to insert it after > the > cursor? > > > Best regards, > Tonoy. > Hi Tony, ...hrrrmmmm clear answer: yesno! :O) Yes: It would be the cleaner and more flexible way to implement this, no doubt! No : Currently it is the only thing inserting an header/template or such into text. It would just add another file to care of. As soon as I have more than a single template to handle, it will surely the better way to do it with seperated files. By the way: Is there a way to "puts" more than a single line? Something like an HERE-doc? :h <permutations of 'here-doc'> gives me nothing... Keep hacking! mcc