I have a function (poorly implemented, I'm learning ...):

714 command! Log2Asciidoc :call Log2Asciidoc()<CR> 715 function! Log2Asciidoc() 716 "remove some special CH, like ^M 717 :%s#\r\|\s\=\(^G\|^M\)## 718 "turn ^H into delete 719 :g/^H/while getline('.') =~ '[^^H]^H' | s/[^^H]^H//g | endwhile 720 "add asciidoc markup == and <<top>> for every command 721 :%s/^\(\S\S\+.\{0,40}\S#\s*[^:^H^G]\+\|slot \d\d\=->\S\+.*\|->.*\|\*-\*-\*-\*-\*-\)$/\r== \1\r\r<<top>>\r\r/ 722 ":set foldmethod=expr

723 "skip the 1st comand 724 :execute "normal! gg" . '/^\(\S\S\+.\{0,40}\S#\s*[^:]\+\|slot \d\d\=->\S\+.*\|->.*\|\*-\*-\*-\*-\*-\)' . "\<cr>" ."j" 725 "indent between <<top>> and next command 726 :g/<<top>>/+1,/^== \(\S\S\+.\{0,40}\S#\s*[^:^H^G]\+\|slot \d\d\=->\S\+\|->.\+\|\*-\*-\*-\*-\*-\)/-1 > 727 "add ---- below <<top>> 728 :%s@\(<<top>>\)@\1\r----\r@ 729 "skip first command 730 :execute "normal! gg" . '/^\(\S\S\+.\{0,40}\S#\s*[^:^H^G]\+\|slot \d\d\=->\S\+.*\|->.*\|\*-\*-\*-\*-\*-\)' . "\<cr>" ."j" 731 "start from 2nd command, add ---- before command 732 :.,$s@^\(\S\S\+.\{0,40}\S#\s*[^:^H^G]\+\|slot \d\d\=->\S\+.*\|->.*\|\*-\*-\*-\*-\*-\)$@\r----\r\1\r@ 733 "add one more last asciidoc delimitor to end of file 734 :execute "normal! Go----" . "\<cr>\<esc>" 735
736 endfunc


I got errors:

<snipped a lot>
......
25 lines >ed 1 time
Error detected while processing function Log2Asciidoc:
line   11:
E385: search hit BOTTOM without match for: ^== \(\S\S\+.\{0,40}\S#\s*[^:^H^G]\+\|slot \d\d\=->\S\+\|->.\+\|\*-\*-\*-\*-\*-\) /^\(\S\S\+.\{0,40}\S#\s*[^^G]\+\|slot \d\d\=->\S\+.*\|->.*\|\*-\*-\*-\*-\*-\)

E488: Trailing characters


which one is line 11?
I guess it started counting from the "function()" line and skipping the comments?
and, which line contains trailing CH?
got crazy for the whole afternoon on this ... I kind of started to hate vimL now...
how you guys normally debug a function ?
and, I know this "simply put Ex cmds together" way is not good to write a script, any experts points me how to improve it? and, regardless of the script errors, sometime it does what I wanted, but sometime doesn't, same code...is it all because of the :g magic?

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to