On Jun 29, 6:20 pm, Ted <cecinemapasdera...@gmail.com> wrote:
> I'm wondering if there are some figures somewhere that would provide
> some sort of estimate of the percentage of vim users who have python
> installed, or would be free of objections to installing it if a module
> required it. .....

If I had to make a completely wild guess on python support, I'd say
maybe 50% of Vim script users have python-enabled Vim, and another 25%
could very easily install it. If your plugin is significantly better
using python I'd say go ahead and use it. However VimL isn't half bad,
and will probably have everything you need. So in that case it may be
silly to endanger 50% of your audience due to your personal language
preference.

Python has a few strong advantages, beyond the great standard
libraries. One of the reasons I moved Conque from VimL to python was
the very poor performance of VimL when writing to a buffer. This seems
counter intuitive, but for some reason the python buffer variable is
almost 10 times faster at updating a buffer than the builtin VimL
functions getline()/setline(). So if your plugin has to write large
amounts of content to a buffer, this would be something to take into
consideration.

A sample script to show what I mean:

"
---------------------------------------------------------------------------
" profile results
-------------------------------------------------------

FUNCTION  ScreenWriteBenchPy()
Called 1 time
Total time:   2.697767
 Self time:   2.697767

count  total (s)   self (s)
    1              2.697753     python SWB()

FUNCTION  ScreenWriteBench()
Called 1 time
Total time:  20.614985
 Self time:  20.614985

count  total (s)   self (s)
  501              0.003105     for k in range(1, 500)
  500              0.054599         normal ggdG
50500              0.301234         for j in range(1, 100)
550000              3.337009             for i in range(1,10)
500000              7.288676                 call setline(i,
getline(i) . i . j)
500000              2.684931             endfor
50000              0.228279         endfor
  500              0.002241     endfor


"
---------------------------------------------------------------------------
" test.vim
---------------------------------------------------------------

function! ScreenWriteBench()
    for k in range(1, 500)
        normal ggdG
        for j in range(1, 100)
            for i in range(1,10)
                call setline(i, getline(i) . i . j)
            endfor
        endfor
    endfor
endfunction

function! ScreenWriteBenchPy()
    python SWB()
endfunction

python << EOF

import vim

def SWB():
    for k in range(1, 501):
        del vim.current.buffer[0:10]
        for j in range(1, 101):
            for i in range(1,11):
                if len(vim.current.buffer) < i:
                    vim.current.buffer.append('')
                vim.current.buffer[i-1] += str(i) + str(j)

EOF




-- 
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