It also became very slow for me
with the only settings being

syntax on
set foldmethod=syntax

the file being edited is a large C file.

Best.

H Jorge

On May 26, 6:04 pm, Christian Brabandt <[email protected]> wrote:
> Hi Frederic!
>
> On Mi, 26 Mai 2010, Frederic Hardy wrote:
>
>
>
>
>
> > Since patch 274, my vim/gvim is very slow, specialy when i'm editing a  
> > large php file with my custom syntax file.
>
> > All my vim files (.vimrc, .gvimrc, .vim) are available here :  
> >http://medias.mageekbox.net/vim.tgz.
>
> > There is a large php file in the tar archive to illustrate my problem.
> > Use my config files and try to modify the class name or remove the  
> > "abstract" keyword at line 8 to see the problem (perhaps...).
> > Then i do it, my CPU usage grown to 100% and vim is frozen until i do  
> > not hit <ctrl-c>.
>
> > I have the problem under FreeBSD 7.1 and FreeBSD 8.
>
> > This is the result of the :version command in vim :
>
> > VIM - Vi IMproved 7.2 (2008 Aug 9, compiled May 26 2010 12:01:44)
> > Included patches: 1-6, 8-35, 37-48, 50-70, 73, 75-87, 90-92, 94-100,  
> > 102-137, 139-149, 151-171, 173-190, 192-193, 195-203, 206-211, 213-215,  
> > 217-218, 220-232, 234-246, 251-259, 261-3
> > 01, 303-319, 321-322, 324-335, 337-351, 353-361, 363, 366-371, 373,  
> > 375-376, 378-383, 385-387, 389-398, 401-402, 404-411
> > Compiled by f...@witchblade
> > Big version with GTK2 GUI.  Features included (+) or not (-):
> > +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset  
> > +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist  
> > +cmdline_info +comments +cryptv +cscope
> > +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags  
> > +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float  
> > +folding -footer +fork() -gettext
> > -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall  
> > +linebreak +lispindent +listcmds +localmap +menu +mksession  
> > +modify_fname +mouse +mouseshape +mouse_dec
> > -mouse_gpm -mouse_jsbterm +mouse_netterm +mouse_sysmouse +mouse_xterm  
> > +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra  
> > -perl +postscript +printer -profile
> > +python +quickfix +reltime +rightleft +ruby +scrollbind +signs  
> > +smartindent -sniff +startuptime +statusline -sun_workshop +syntax  
> > +tag_binary +tag_old_static -tag_any_white -tcl
> > +terminfo +termresponse +textobjects +title +toolbar +user_commands  
> > +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace  
> > +wildignore +wildmenu +windows +writebackup +X11
> > -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save
> >    system vimrc file: "$VIM/vimrc"
> >      user vimrc file: "$HOME/.vimrc"
> >       user exrc file: "$HOME/.exrc"
> >   system gvimrc file: "$VIM/gvimrc"
> >     user gvimrc file: "$HOME/.gvimrc"
> >     system menu file: "$VIMRUNTIME/menu.vim"
> >   fall-back for $VIM: "/usr/local/share/vim"
> > Compilation: cc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  
> > -D_THREAD_SAFE -D_REENTRANT -I/usr/local/include/gtk-2.0  
> > -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0
> > -I/usr/local/include/cairo -I/usr/local/include/pango-1.0  
> > -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include  
> > -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/u
> > sr/local/include/pixman-1 -I/usr/local/include/freetype2  
> > -I/usr/local/include  -O2 -pipe -march=pentium-m -fno-strict-aliasing  
> > -march=pentium-m -D_FORTIFY_SOURCE=1  -I/usr/local/incl
> > ude   -I/usr/local/include/python2.6 -D_THREAD_SAFE  
> > -I/usr/local/lib/ruby/1.8/i386-freebsd8 -DRUBY_VERSION=18
> > Linking: cc -L/usr/local/lib -L/usr/local/lib -R/usr/local/lib -L.  
> > -rpath=/usr/lib:/usr/local/lib -pthread -rdynamic  -L/usr/local/lib -o  
> > vim   -pthread -L/usr/local/lib -lgtk-x11-2
> > .0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lXext  
> > -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage  
> > -lpangoft2-1.0 -lgio-2.0 -lXfixes -lcairo -lpa
> > ngo-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0  
> > -lgthread-2.0 -lglib-2.0 -lXt -pthread -ltermlib  
> > -L/usr/local/lib/python2.6/config -lpython2.6 -lutil -Wl,--export-dynamic
> >   -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -lruby18 -lrt -lm  
> > -L/usr/lib  -rpath=/usr/lib:/usr/local/lib -pthread
>
> > I known that the patch 274 is ok and that vim is slow with syntax  
> > folding, but it's very annoying and i want to be sure that the problem  
> > is not in my config files or in my plug-in (but i have the problem with  
> > gvim -U NONE -u NONE with no .vim directory in my home).
>
> > vim was compiled from FreeBSD port /editors/vim.
>
> I can reproduce it with your provided syntax file and my debian vim
> 7.2.330. I haven't looked into the syntax file in detail, but it seems
> to be the problem. Using your syntax php file and layout.php that you
> provided[1], this simple_vimrc script shows the problem:
>
> ,----
> | profile start my_profile_php
> | fun Profile()
> |   syntax on
> |   e layer.php
> |   set fdm=syntax
> |   "call feedkeys(":set synmaxcol=100\n", 't')
> |   call feedkeys(":8d\n",'t')
> |   call feedkeys("u",'t')
> |   call feedkeys("zo",'t')
> |   call feedkeys("dw",'t')
> |   call feedkeys(":q!\n",'t')
> | endfun
> |
> | profile func Profile
> |
> | call Profile()
> `----
>
> (Notice, that first deleting the whole fold starting at line 8 and then
> undoing the deletion will make vim unresponsive for several minutes:
>
> c...@t41:~$ time vim -u simple_vimrc -U NONE -N
> "layer.php" "layer.php" 1595L, 39500C
> Press ENTER or type command to continue
>
> real    3m4.249s
> user    2m58.199s
> sys     0m1.460s
> c...@t41:~$
>
> Profiling did not resolve anything special:
> FUNCTION  Profile()
> Called 1 time
> Total time:   0.505644
>  Self time:   0.390492
>
> count  total (s)   self (s)
>     1   0.079991   0.000270 | syntax on
>     1   0.425550   0.390119 | e layer.php
>     1              0.000023 | set fdm=syntax
>                             | "call feedkeys(":set synmaxcol=100\n", 't')
>     1              0.000032 | call feedkeys(":8d\n",'t')
>     1              0.000006 | call feedkeys("u",'t')
>     1              0.000005 | call feedkeys("zo",'t')
>     1              0.000005 | call feedkeys("dw",'t')
>     1              0.000005 | call feedkeys(":q!\n",'t')
>
> FUNCTIONS SORTED ON TOTAL TIME
> count  total (s)   self (s)  function
>     1   0.505644   0.390492  Profile()
>
> FUNCTIONS SORTED ON SELF TIME
> count  total (s)   self (s)  function
>     1   0.505644   0.390492  Profile()
>
> If you comment out the lines 8 and 7 it works ok:
>
> c...@t41:~$ cat simple_vimrc && time vim -u simple_vimrc -U NONE -N
> profile start my_profile_php3
> fun Profile()
>         syntax on
>         e layer.php
>         set fdm=syntax
>         "call feedkeys(":set synmaxcol=100\n", 't')
>         "call feedkeys(":8d\n",'t')
>         "call feedkeys("u",'t')
>         call feedkeys("zo",'t')
>         call feedkeys("dw",'t')
>         call feedkeys(":q!\n",'t')
> endfun
>
> profile func Profile
>
> call Profile()
> "layer.php" "layer.php" 1595L, 39500C
> Press ENTER or type command to continue
>
> real    0m1.024s
> user    0m0.900s
> sys     0m0.048s
>
> One thing that helps a little is to set synmaxcol to a much lower value:
> c...@t41:~$ cat simple_vimrc && time vim -u simple_vimrc -U NONE -N
> profile start my_profile_php4
> fun Profile()
>         syntax on
>         e layer.php
>         set fdm=syntax
>         call feedkeys(":set synmaxcol=100\n", 't')
>         call feedkeys(":8d\n",'t')
>         call feedkeys("u",'t')
>         call feedkeys("zo",'t')
>         call feedkeys("dw",'t')
>         call feedkeys(":q!\n",'t')
> endfun
>
> profile func Profile
>
> call Profile()
> "layer.php" "layer.php" 1595L, 39500C
> Press ENTER or type command to continue
>
> real    0m23.974s
> user    0m23.293s
> sys     0m0.216s
>
> BTW: using the debian provided syntax files, does not show the problem:
>
> c...@t41:~$ cat simple_vimrc && time vim -u simple_vimrc -U NONE -N
> let php_folding=1
> profile start my_profile_php6
> fun Profile()
>         syntax on
>         e layer.php
>         set fdm=syntax
>         "call feedkeys(":set synmaxcol=100\n", 't')
>         call feedkeys(":8d\n",'t')
>         call feedkeys("u",'t')
>         call feedkeys("zo",'t')
>         call feedkeys("dw",'t')
>         call feedkeys(":q!\n",'t')
> endfun
>
> profile func Profile
>
> call Profile()
> "layer.php" "layer.php" 1595L, 39500C
> Press ENTER or type command to continue
>
> real    0m3.506s
> user    0m3.292s
> sys     0m0.096s
>
> [1] To make sure, I run this test as a separate user with a new ~/.vim
> directory that contains only these files:
> c...@t41:~$ find .vim/
> .vim/
> .vim/syntax
> .vim/syntax/php.vim
>
> :scriptnames does show, that some standard plugins are loaded:
>   1: /home/cb/simple_vimrc
>   2: /usr/share/vim/vim72/syntax/syntax.vim
>   3: /usr/share/vim/vim72/syntax/synload.vim
>   4: /usr/share/vim/vim72/syntax/syncolor.vim
>   5: /usr/share/vim/vim72/filetype.vim
>   6: /home/cb/.vim/syntax/php.vim
>   7: /usr/share/vim/vim72/syntax/php.vim
>   8: /usr/share/vim/vim72/plugin/getscriptPlugin.vim
>   9: /usr/share/vim/vim72/plugin/gzip.vim
>  10: /usr/share/vim/vim72/plugin/matchparen.vim
>  11: /usr/share/vim/vim72/plugin/netrwPlugin.vim
>  12: /usr/share/vim/vim72/plugin/rrhelper.vim
>  13: /usr/share/vim/vim72/plugin/spellfile.vim
>  14: /usr/share/vim/vim72/plugin/tarPlugin.vim
>  15: /usr/share/vim/vim72/plugin/tohtml.vim
>  16: /usr/share/vim/vim72/plugin/vimballPlugin.vim
>  17: /usr/share/vim/vim72/plugin/zipPlugin.vim
>
> regards
> Christian

-- 
You received this message from the "vim_dev" 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

Raspunde prin e-mail lui