On Jun 11, 1:55 am, Ben Schmidt <[email protected]> wrote: > > " Jump to start of nth or next block of 16 lines > > nnoremap<expr> ]] > > \ v:count > > \ ? ":<C-U><cr>".(v:count*16+1)."Gzz" > > \ : 17-line(".")%16."jzz" > > Why is the :<C-U><CR> there? Doesn't that do nothing? > > > " Display line and block number > > nnoremap ][ :echo (line(".")-1)%16 line(".")/16 "List"<cr> > > > BUT this function is not working: > > > fu! List() > > " Jump to start of nth or next block of 16 lines > > v:count ? ":<C-U><cr>".(v:count*16+1)."Gzz" : 17-line(".")%16."jzz" > > " Display line and block number > > echo (line(".")-1)%16 line(".")/16 "List"<cr> > > endfu > > nnoremap ]] :call List()<cr> > > In a function, you actually have to run the commands, not just return > keystrokes like in an expr mapping. Something like this: > > fu! List() > " Jump to start of nth or next block of 16 lines > if v:count > execute "normal ".(v:count*16+1)."Gzz" > else > execute "normal ".(17-line(".")%16)."jzz" > endif > " Display line and block number > echo (line(".")-1)%16 line(".")/16 "List" > endfu > > :help :if > :help :execute > :help :normal > > Ben.
The :<C-U><CR> is there to clear v:count otherwise the count is passed to each element of the function. :help v:count Where to put it in a function? -Bill -- 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
