ping
unread,Aug 27, 2012, 5:37:50 PM8/27/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to vim-use Mailingliste
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?