On 2011-08-26, niva wrote: > Hi, > > I am calling an external app from vim like that : > > 1/ calling the application > let g:output=system(s:cmd) > > 2/ deleting old returned value and updating with new one > call s:OPC.AddValueAtEndOfFile(g:output) > > " Write value at end of line {{{1 > fun! s:OPC.AddValueAtEndOfFile(value) > exe "norm ^f d$" > exe "norm ^".s:maxlinelength."l" > exe "norm a ".a:value > endfunction > ============================================== > > In fact this algo is called at each line to process in my entry file. > I have done another method that do this task on several lines 10. > > Is there another way to make the call of external app or the update > method faster ?
Again generally speaking, it's faster to process text using Vim's commands and functions than to write a bunch of instructions that Vim has to parse as well as execute. Your AddValueAtEndOfFile() function simply replaces everything after the first space in the current line with g:output. Therefore you could replace call s:OPC.AddValueAtEndOfFile(g:output) with exe "s/ .*/ ".g:output."/" or even exe "s/ .*/ ".system(s:cmd)."/" That assumes that the output of s:cmd doesn't contain any slashes. I doubt that that is the bottleneck, though. Regards, Gary -- 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