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
No comments:
Post a Comment