Ну, может у кого не так. Просто удивительно, что вызов system оказался намного
быстрее, хотя мы и перегоняем весь файл в JSON). К system вплотную приблизился
и копирование буфера в переменную. Опасен, так как неизвестно, что там навесили
на автокоманды). Вот результаты для vim -c source\ test.vim:
Код: Выделить всё
FUNCTION <SNR>38_MapDelimiters()
Called 800 times
Total time: 0.070617
Self time: 0.018863
count total (s) self (s)
800 0.068176 0.016422 call s:MapDelimitersWithAlternative(a:left, a:right, "", "")
FUNCTION <SNR>38_MapDelimitersWithAlternative()
Called 800 times
Total time: 0.051754
Self time: 0.051754
count total (s) self (s)
800 0.012902 if !exists('g:NERD_' . &filetype . '_alt_style')
800 0.006012 let b:left = a:left
800 0.004388 let b:right = a:right
800 0.004504 let b:leftAlt = a:leftAlt
800 0.004391 let b:rightAlt = a:rightAlt
800 0.001847 else
let b:left = a:leftAlt
let b:right = a:rightAlt
let b:leftAlt = a:left
let b:rightAlt = a:right
endif
FUNCTION <SNR>52_IsInList()
Called 800 times
Total time: 0.190413
Self time: 0.190413
count total (s) self (s)
12600 0.045888 for l:item in a:list
12400 0.050585 if a:i == l:item
600 0.001540 return 1
endif
11800 0.022318 endfor
200 0.000576 return 0
FUNCTION <SNR>52_DoModelines()
Called 200 times
Total time: 9.294414
Self time: 0.093159
count total (s) self (s)
200 0.001983 if line("$") > g:secure_modelines_modelines
200 0.001744 let l:lines={ }
200 0.029251 call map(filter(getline(1, g:secure_modelines_modelines) + getline(line("$") - g:secure_modelines_modelines, "$"), 'v:val =~ ":"'), 'extend(l:lines, { v:val : 0 } )')
1400 0.009494 for l:line in keys(l:lines)
1200 9.224248 0.022993 call <SID>DoModeline(l:line)
1200 0.006905 endfor
200 0.000421 else
for l:line in getline(1, "$")
call <SID>DoModeline(l:line)
endfor
endif
FUNCTION <SNR>61_LocalBrowse()
Called 600 times
Total time: 0.036820
Self time: 0.036820
count total (s) self (s)
" unfortunate interaction -- debugging calls can't be used here;
" the BufEnter event causes triggering when attempts to write to
" the DBG buffer are made.
" echomsg "dirname<".a:dirname.">"
600 0.006313 if has("amiga")
" The check against '' is made for the Amiga, where the empty
" string is the current directory and not checking would break
" things such as the help command.
if a:dirname != '' && isdirectory(a:dirname)
silent! call netrw#LocalBrowseCheck(a:dirname)
endif
elseif isdirectory(a:dirname)
" echomsg "dirname<".dirname."> isdir"
silent! call netrw#LocalBrowseCheck(a:dirname)
endif
" not a directory, ignore it
FUNCTION <SNR>26_LoadFTPlugin()
Called 400 times
Total time: 1.016453
Self time: 0.337998
count total (s) self (s)
400 0.006804 if exists("b:undo_ftplugin")
200 0.009326 exe b:undo_ftplugin
200 0.001270 unlet! b:undo_ftplugin b:did_ftplugin
200 0.000393 endif
400 0.005800 let s = expand("<amatch>")
400 0.002177 if s != ""
400 0.012124 if &cpo =~# "S" && exists("b:did_ftplugin")
" In compatible mode options are reset to the global values, need to
" set the local values also when a plugin was already used.
unlet b:did_ftplugin
endif
" When there is a dot it is used to separate filetype names. Thus for
" "aaa.bbb" load "aaa" and then "bbb".
800 0.008637 for name in split(s, '\.')
400 0.946211 0.267756 exe 'runtime! ftplugin/' . name . '.vim ftplugin/' . name . '_*.vim ftplugin/' . name . '/*.vim'
400 0.003155 endfor
400 0.001730 endif
FUNCTION Python2()
Called 1 time
Total time: 2.000531
Self time: 2.000531
count total (s) self (s)
1 0.000011 let i=0
101 0.000722 while i < g:max
100 0.015554 python fd=open(vim.eval("g:fname"), "rb")
100 1.960365 python vim.command("let tmp="+simplejson.dumps(fd.read()))
100 0.016093 python fd.close()
100 0.005075 unlet tmp
100 0.001512 let i+=1
100 0.000528 endwhile
FUNCTION <SNR>52_DoOne()
Called 800 times
Total time: 8.908116
Self time: 0.094078
count total (s) self (s)
800 0.032740 let l:matches = matchlist(a:item, '^\([a-z]\+\)\%(=[a-zA-Z0-9_\-.]\+\)\?$')
800 0.007042 if len(l:matches) > 0
800 0.205266 0.014853 if <SID>IsInList(g:secure_modelines_allowed_items, l:matches[1])
600 8.642525 0.018900 exec "setlocal " . a:item
600 0.002882 elseif g:secure_modelines_verbose
echohl WarningMsg
echomsg "Ignoring '" . a:item . "' in modeline"
echohl None
endif
800 0.001266 endif
FUNCTION <SNR>3_SynSet()
Called 400 times
Total time: 14.306784
Self time: 0.374119
count total (s) self (s)
" clear syntax for :set syntax=OFF and any syntax name that doesn't exist
400 0.192228 syn clear
400 0.005175 if exists("b:current_syntax")
unlet b:current_syntax
endif
400 0.004444 let s = expand("<amatch>")
400 0.002157 if s == "ON"
" :set syntax=ON
if &filetype == ""
echohl ErrorMsg
echo "filetype unknown"
echohl None
endif
let s = &filetype
endif
400 0.001644 if s != ""
" Load the syntax file(s). When there are several, separated by dots,
" load each in sequence.
800 0.010997 for name in split(s, '\.')
400 14.064387 0.131722 exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim"
400 0.002039 endfor
400 0.000909 endif
FUNCTION <SNR>52_DoNoSetModeline()
Called 200 times
Total time: 8.943923
Self time: 0.035807
count total (s) self (s)
1000 0.009629 for l:item in split(a:line, '[ \t:]')
800 8.925437 0.017321 call <SID>DoOne(l:item)
800 0.003487 endfor
FUNCTION Vim2()
Called 1 time
Total time: 17.870079
Self time: 8.309971
count total (s) self (s)
1 0.000006 let i=0
101 0.000568 while i < g:max
100 9.820298 0.571968 execute "view! ".g:fname
100 7.538288 let tmp=join(getline(0, '$'), "\n")
100 0.026637 unlet tmp
100 0.481986 0.170208 bw
100 0.001146 let i+=1
100 0.000352 endwhile
FUNCTION <SNR>28_LoadIndent()
Called 400 times
Total time: 0.134854
Self time: 0.102725
count total (s) self (s)
400 0.004191 if exists("b:undo_indent")
exe b:undo_indent
unlet! b:undo_indent b:did_indent
endif
400 0.005306 let s = expand("<amatch>")
400 0.002186 if s != ""
400 0.003028 if exists("b:did_indent")
200 0.001052 unlet b:did_indent
200 0.000365 endif
" When there is a dot it is used to separate filetype names. Thus for
" "aaa.bbb" load "indent/aaa.vim" and then "indent/bbb.vim".
800 0.008028 for name in split(s, '\.')
400 0.094680 0.062551 exe 'runtime! indent/' . name . '.vim'
400 0.001254 endfor
400 0.000819 endif
FUNCTION <SNR>38_SetUpForNewFiletype()
Called 1200 times
Total time: 2.686825
Self time: 2.616208
count total (s) self (s)
"if we have already set the delimiters for this buffer then dont go thru
"it again
1200 0.015536 if !a:forceReset && exists("b:left") && b:left != ''
400 0.001325 return
endif
800 0.005814 let b:sexyComMarker = ''
"check the filetype against all known filetypes to see if we have
"hardcoded the comment delimiters to use
800 0.004507 if a:filetype == ""
400 0.039722 0.006200 call s:MapDelimiters('', '')
400 0.001597 elseif a:filetype == "aap"
call s:MapDelimiters('#', '')
elseif a:filetype == "abaqus"
call s:MapDelimiters('**', '')
elseif a:filetype == "abc"
call s:MapDelimiters('%', '')
elseif a:filetype == "acedb"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "ada"
call s:MapDelimitersWithAlternative('--','', '-- ', '')
elseif a:filetype == "ahdl"
call s:MapDelimiters('--', '')
elseif a:filetype == "ahk"
call s:MapDelimitersWithAlternative(';', '', '/*', '*/')
elseif a:filetype == "amiga"
call s:MapDelimiters(';', '')
elseif a:filetype == "aml"
call s:MapDelimiters('/*', '')
elseif a:filetype == "ampl"
call s:MapDelimiters('#', '')
elseif a:filetype == "ant"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "apache"
call s:MapDelimiters('#', '')
elseif a:filetype == "apachestyle"
call s:MapDelimiters('#', '')
elseif a:filetype == "asm68k"
call s:MapDelimiters(';', '')
elseif a:filetype == "asm"
call s:MapDelimitersWithAlternative(';', '', '#', '')
elseif a:filetype == "asn"
call s:MapDelimiters('--', '')
elseif a:filetype == "aspvbs"
call s:MapDelimiters('''', '')
elseif a:filetype == "asterisk"
call s:MapDelimiters(';', '')
elseif a:filetype == "asy"
call s:MapDelimiters('//', '')
elseif a:filetype == "atlas"
call s:MapDelimiters('C','$')
elseif a:filetype == "autohotkey"
call s:MapDelimiters(';','')
elseif a:filetype == "autoit"
call s:MapDelimiters(';','')
elseif a:filetype == "automake"
call s:MapDelimitersWithAlternative('#','', 'dnl ', '')
elseif a:filetype == "ave"
call s:MapDelimiters("'",'')
elseif a:filetype == "awk"
call s:MapDelimiters('#','')
elseif a:filetype == "basic"
call s:MapDelimitersWithAlternative("'",'', 'REM ', '')
elseif a:filetype == "b"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "bbx"
call s:MapDelimiters('%', '')
elseif a:filetype == "bc"
call s:MapDelimiters('#', '')
elseif a:filetype == "bdf"
call s:MapDelimiters('COMMENT ', '')
elseif a:filetype == "bib"
call s:MapDelimiters('%','')
elseif a:filetype == "bindzone"
call s:MapDelimiters(';', '')
elseif a:filetype == "bst"
call s:MapDelimiters('%', '')
elseif a:filetype == "btm"
call s:MapDelimiters('::', '')
elseif a:filetype == "bzr"
call s:MapDelimiters('', '')
elseif a:filetype == "caos"
call s:MapDelimiters('*', '')
elseif a:filetype == "catalog"
call s:MapDelimiters('--','--')
elseif a:filetype == "c"
call s:MapDelimitersWithAlternative('/*','*/', '//', '')
elseif a:filetype == "cfg"
call s:MapDelimiters('#', '')
elseif a:filetype == "cg"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "ch"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "changelog"
call s:MapDelimiters('','')
elseif a:filetype == "cl"
call s:MapDelimiters('#', '')
elseif a:filetype == "clean"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "clipper"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "cmake"
call s:MapDelimiters('#','')
elseif a:filetype == "cobol"
call s:MapDelimiters('', '')
elseif a:filetype == "conf"
call s:MapDelimiters('#', '')
elseif a:filetype == "config"
call s:MapDelimiters('dnl ', '')
elseif a:filetype == "context"
call s:MapDelimiters('%','')
elseif a:filetype == "cpp"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "crontab"
call s:MapDelimiters('#', '')
elseif a:filetype == "cs"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "csc"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "csp"
call s:MapDelimiters('--', '')
elseif a:filetype == "css"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "cterm"
call s:MapDelimiters('*', '')
elseif a:filetype == "cupl"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "csv"
call s:MapDelimiters('','')
elseif a:filetype == "cvs"
call s:MapDelimiters('CVS:','')
elseif a:filetype == "CVSAnnotate"
call s:MapDelimiters('','')
elseif a:filetype == "d"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "dcl"
call s:MapDelimiters('$!', '')
elseif a:filetype == "dakota"
call s:MapDelimiters('#', '')
elseif a:filetype == "debchangelog"
call s:MapDelimiters('', '')
elseif a:filetype == "debcontrol"
call s:MapDelimiters('#', '')
elseif a:filetype == "debsources"
call s:MapDelimiters('#', '')
elseif a:filetype == "def"
call s:MapDelimiters(';', '')
elseif a:filetype == "desktop"
call s:MapDelimiters('#', '')
elseif a:filetype == "diff"
call s:MapDelimiters('#', '')
elseif a:filetype == "django"
call s:MapDelimitersWithAlternative('<!--','-->', '{#', '#}')
elseif a:filetype == "docbk"
call s:MapDelimiters('<!--', '-->')
elseif a:filetype == "dns"
call s:MapDelimiters(';', '')
elseif a:filetype == "dosbatch"
call s:MapDelimitersWithAlternative('REM ','', '::', '')
elseif a:filetype == "dosini"
call s:MapDelimiters(';', '')
elseif a:filetype == "dot"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "dracula"
call s:MapDelimiters(';', '')
elseif a:filetype == "dsl"
call s:MapDelimiters(';', '')
elseif a:filetype == "dtd"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "dtml"
call s:MapDelimiters('<dtml-comment>','</dtml-comment>')
elseif a:filetype == "dtrace"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "dylan"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == 'ebuild'
call s:MapDelimiters('#', '')
elseif a:filetype == "ecd"
call s:MapDelimiters('#', '')
elseif a:filetype == 'eclass'
call s:MapDelimiters('#', '')
elseif a:filetype == "eiffel"
call s:MapDelimiters('--', '')
elseif a:filetype == "elf"
call s:MapDelimiters("'", '')
elseif a:filetype == "elmfilt"
call s:MapDelimiters('#', '')
elseif a:filetype == "erlang"
call s:MapDelimiters('%', '')
elseif a:filetype == "eruby"
call s:MapDelimitersWithAlternative('<!--', '-->', '<%#', '%>')
elseif a:filetype == "eterm"
call s:MapDelimiters('#', '')
elseif a:filetype == "expect"
call s:MapDelimiters('#', '')
elseif a:filetype == "exports"
call s:MapDelimiters('#', '')
elseif a:filetype == "factor"
call s:MapDelimitersWithAlternative('! ', '', '!# ', '')
elseif a:filetype == "fetchmail"
call s:MapDelimiters('#', '')
elseif a:filetype == "fgl"
call s:MapDelimiters('#', '')
elseif a:filetype == "focexec"
call s:MapDelimiters('-*', '')
elseif a:filetype == "form"
call s:MapDelimiters('*', '')
elseif a:filetype == "fortran"
call s:MapDelimiters('!', '')
elseif a:filetype == "foxpro"
call s:MapDelimiters('*', '')
elseif a:filetype == "fstab"
call s:MapDelimiters('#', '')
elseif a:filetype == "fvwm"
call s:MapDelimiters('#', '')
elseif a:filetype == "fx"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "gams"
call s:MapDelimiters('*', '')
elseif a:filetype == "gdb"
call s:MapDelimiters('#', '')
elseif a:filetype == "gdmo"
call s:MapDelimiters('--', '')
elseif a:filetype == "geek"
call s:MapDelimiters('GEEK_COMMENT:', '')
elseif a:filetype == "gentoo-conf-d"
call s:MapDelimiters('#', '')
elseif a:filetype == "gentoo-env-d"
call s:MapDelimiters('#', '')
elseif a:filetype == "gentoo-init-d"
call s:MapDelimiters('#', '')
elseif a:filetype == "gentoo-make-conf"
call s:MapDelimiters('#', '')
elseif a:filetype == 'gentoo-package-keywords'
call s:MapDelimiters('#', '')
elseif a:filetype == 'gentoo-package-mask'
call s:MapDelimiters('#', '')
elseif a:filetype == 'gentoo-package-use'
call s:MapDelimiters('#', '')
elseif a:filetype == 'gitAnnotate'
call s:MapDelimiters('', '')
elseif a:filetype == 'gitcommit'
call s:MapDelimiters('', '')
elseif a:filetype == 'gitconfig'
call s:MapDelimiters(';', '')
elseif a:filetype == 'gitdiff'
call s:MapDelimiters('', '')
elseif a:filetype == "gnuplot"
call s:MapDelimiters('#','')
elseif a:filetype == "groovy"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "group"
call s:MapDelimiters('','')
elseif a:filetype == "grub"
call s:MapDelimiters('#', '')
elseif a:filetype == "gtkrc"
call s:MapDelimiters('#', '')
elseif a:filetype == "haskell"
call s:MapDelimitersWithAlternative('{-','-}', '--', '--')
elseif a:filetype == "hb"
call s:MapDelimiters('#', '')
elseif a:filetype == "h"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "haml"
call s:MapDelimiters('/', '')
elseif a:filetype == "help"
call s:MapDelimiters('"','')
elseif a:filetype == "hercules"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "hog"
call s:MapDelimiters('#', '')
elseif a:filetype == "html"
call s:MapDelimitersWithAlternative('<!--','-->', '//', '')
elseif a:filetype == "htmldjango"
call s:MapDelimitersWithAlternative('<!--','-->', '{#', '#}')
elseif a:filetype == "htmlos"
call s:MapDelimiters('#','/#')
elseif a:filetype == "ia64"
call s:MapDelimiters('#', '')
elseif a:filetype == "icon"
call s:MapDelimiters('#', '')
elseif a:filetype == "idlang"
call s:MapDelimiters(';', '')
elseif a:filetype == "idl"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "indent"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "inform"
call s:MapDelimiters('!', '')
elseif a:filetype == "inittab"
call s:MapDelimiters('#', '')
elseif a:filetype == "ishd"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "iss"
call s:MapDelimiters(';', '')
elseif a:filetype == "ist"
call s:MapDelimiters('%', '')
elseif a:filetype == "jam"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "java"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "javascript"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "jess"
call s:MapDelimiters(';', '')
elseif a:filetype == "jgraph"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "jproperties"
call s:MapDelimiters('#','')
elseif a:filetype == "jsp"
call s:MapDelimiters('<%--', '--%>')
elseif a:filetype == "kconfig"
call s:MapDelimiters('#', '')
elseif a:filetype == "kix"
call s:MapDelimiters(';', '')
elseif a:filetype == "kscript"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "lace"
call s:MapDelimiters('--', '')
elseif a:filetype == "ldif"
call s:MapDelimiters('#', '')
elseif a:filetype == "lex"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "lftp"
call s:MapDelimiters('#', '')
elseif a:filetype == "lhaskell"
call s:MapDelimiters('','')
elseif a:filetype == "lifelines"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "lilo"
call s:MapDelimiters('#', '')
elseif a:filetype == "lilypond"
call s:MapDelimiters('%', '')
elseif a:filetype == "liquid"
call s:MapDelimiters('{%', '%}')
elseif a:filetype == "lisp"
call s:MapDelimitersWithAlternative(';','', '#|', '|#')
elseif a:filetype == "lite"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "llvm"
call s:MapDelimiters(';','')
elseif a:filetype == "lookupfile"
call s:MapDelimiters('', '')
elseif a:filetype == "lotos"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "lout"
call s:MapDelimiters('#', '')
elseif a:filetype == "lprolog"
call s:MapDelimiters('%', '')
elseif a:filetype == "lscript"
call s:MapDelimiters("'", '')
elseif a:filetype == "lss"
call s:MapDelimiters('#', '')
elseif a:filetype == "lua"
call s:MapDelimitersWithAlternative('--','', '--[[', ']]')
elseif a:filetype == "lynx"
call s:MapDelimiters('#', '')
elseif a:filetype == "lytex"
call s:MapDelimiters('%', '')
elseif a:filetype == "m4"
call s:MapDelimiters('dnl ', '')
elseif a:filetype == "mail"
call s:MapDelimiters('> ','')
elseif a:filetype == "mailcap"
call s:MapDelimiters('#','')
elseif a:filetype == "make"
call s:MapDelimiters('#','')
elseif a:filetype == "map"
call s:MapDelimiters('%', '')
elseif a:filetype == "maple"
call s:MapDelimiters('#', '')
elseif a:filetype == "markdown"
call s:MapDelimiters('<!--', '-->')
elseif a:filetype == "masm"
call s:MapDelimiters(';', '')
elseif a:filetype == "mason"
call s:MapDelimiters('<% #', '%>')
elseif a:filetype == "master"
call s:MapDelimiters('$', '')
elseif a:filetype == "matlab"
call s:MapDelimiters('%', '')
elseif a:filetype == "mel"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "mf"
call s:MapDelimiters('%', '')
elseif a:filetype == "mib"
call s:MapDelimiters('--', '')
elseif a:filetype == "mkd"
call s:MapDelimiters('>', '')
elseif a:filetype == "mma"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "modconf"
call s:MapDelimiters('#', '')
elseif a:filetype == "model"
call s:MapDelimiters('$','$')
elseif a:filetype =~ "moduala."
call s:MapDelimiters('(*','*)')
elseif a:filetype == "modula2"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "modula3"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "monk"
call s:MapDelimiters(';', '')
elseif a:filetype == "mplayerconf"
call s:MapDelimiters('#', '')
elseif a:filetype == "mrxvtrc"
call s:MapDelimiters('#', '')
elseif a:filetype == "mush"
call s:MapDelimiters('#', '')
elseif a:filetype == "muttrc"
call s:MapDelimiters('#', '')
elseif a:filetype == "named"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "nasm"
call s:MapDelimiters(';', '')
elseif a:filetype == "nastran"
call s:MapDelimiters('$', '')
elseif a:filetype == "natural"
call s:MapDelimiters('/*', '')
elseif a:filetype == "ncf"
call s:MapDelimiters(';', '')
elseif a:filetype == "nerdtree"
call s:MapDelimiters('', '')
elseif a:filetype == "netdict"
call s:MapDelimiters('', '')
elseif a:filetype == "netrw"
call s:MapDelimiters('', '')
elseif a:filetype == "nqc"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "nroff"
call s:MapDelimiters('\"', '')
elseif a:filetype == "nsis"
call s:MapDelimiters('#', '')
elseif a:filetype == "objc"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "objcpp"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "ocaml"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "occam"
call s:MapDelimiters('--','')
elseif a:filetype == "omlet"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "omnimark"
call s:MapDelimiters(';', '')
elseif a:filetype == "openroad"
call s:MapDelimiters('//', '')
elseif a:filetype == "opl"
call s:MapDelimiters("REM", "")
elseif a:filetype == "ora"
call s:MapDelimiters('#', '')
elseif a:filetype == "otl"
call s:MapDelimiters('', '')
elseif a:filetype == "ox"
call s:MapDelimiters('//', '')
elseif a:filetype == "pamconf"
call s:MapDelimiters('#', '')
elseif a:filetype == "pascal"
call s:MapDelimitersWithAlternative('{','}', '(*', '*)')
elseif a:filetype == "passwd"
call s:MapDelimiters('','')
elseif a:filetype == "patran"
call s:MapDelimitersWithAlternative('$','','/*', '*/')
elseif a:filetype == "pcap"
call s:MapDelimiters('#', '')
elseif a:filetype == "pccts"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "perl"
call s:MapDelimiters('#', '')
elseif a:filetype == "pfmain"
call s:MapDelimiters('//', '')
elseif a:filetype == "php"
call s:MapDelimitersWithAlternative('//','','/*', '*/')
elseif a:filetype == "phtml"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "pic"
call s:MapDelimiters(';', '')
elseif a:filetype == "pike"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "pilrc"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "pine"
call s:MapDelimiters('#', '')
elseif a:filetype == "plaintex"
call s:MapDelimiters('%','')
elseif a:filetype == "plm"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "plsql"
call s:MapDelimitersWithAlternative('--', '', '/*', '*/')
elseif a:filetype == "po"
call s:MapDelimiters('#', '')
elseif a:filetype == "postscr"
call s:MapDelimiters('%', '')
elseif a:filetype == "pov"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "povini"
call s:MapDelimiters(';', '')
elseif a:filetype == "ppd"
call s:MapDelimiters('%', '')
elseif a:filetype == "ppwiz"
call s:MapDelimiters(';;', '')
elseif a:filetype == "procmail"
call s:MapDelimiters('#', '')
elseif a:filetype == "progress"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "prolog"
call s:MapDelimitersWithAlternative('%','','/*','*/')
elseif a:filetype == "psf"
call s:MapDelimiters('#', '')
elseif a:filetype == "ptcap"
call s:MapDelimiters('#', '')
elseif a:filetype == "pyrex"
call s:MapDelimiters('#','')
elseif a:filetype == "python"
call s:MapDelimiters('#','')
elseif a:filetype == "qf"
call s:MapDelimiters('','')
elseif a:filetype == "radiance"
call s:MapDelimiters('#', '')
elseif a:filetype == "Rails-log"
call s:MapDelimiters('', '')
elseif a:filetype == "ratpoison"
call s:MapDelimiters('#', '')
elseif a:filetype == "r"
call s:MapDelimiters('#', '')
elseif a:filetype == "rc"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "readline"
call s:MapDelimiters('#', '')
elseif a:filetype == "rebol"
call s:MapDelimiters(';', '')
elseif a:filetype == "registry"
call s:MapDelimiters(';', '')
elseif a:filetype == "remind"
call s:MapDelimiters('#', '')
elseif a:filetype == "rexx"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "rib"
call s:MapDelimiters('#','')
elseif a:filetype == "robots"
call s:MapDelimiters('#', '')
elseif a:filetype == "rpl"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "rst"
call s:MapDelimiters('..', '')
elseif a:filetype == "rtf"
call s:MapDelimiters('', '')
elseif a:filetype == "ruby"
call s:MapDelimiters('#','')
elseif a:filetype == "sa"
call s:MapDelimiters('--','')
elseif a:filetype == "samba"
call s:MapDelimitersWithAlternative(';','', '#', '')
elseif a:filetype == "sas"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "sass"
call s:MapDelimitersWithAlternative('//','', '/*', '')
elseif a:filetype == "sather"
call s:MapDelimiters('--', '')
elseif a:filetype == "scala"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "scheme"
call s:MapDelimiters(';', '')
elseif a:filetype == "scilab"
call s:MapDelimiters('//', '')
elseif a:filetype == "screen"
call s:MapDelimiters('#', '')
elseif a:filetype == "scsh"
call s:MapDelimiters(';', '')
elseif a:filetype == "sdl"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "sed"
call s:MapDelimiters('#', '')
elseif a:filetype == "selectbuf"
call s:MapDelimiters('', '')
elseif a:filetype == "services"
call s:MapDelimiters('#', '')
elseif a:filetype == "sgml"
call s:MapDelimiters('<!','>')
elseif a:filetype == "sgmldecl"
call s:MapDelimiters('--','--')
elseif a:filetype == "sgmllnx"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "sicad"
call s:MapDelimiters('*', '')
elseif a:filetype == "simula"
call s:MapDelimitersWithAlternative('%', '', '--', '')
elseif a:filetype == "sinda"
call s:MapDelimiters('$', '')
elseif a:filetype == "skill"
call s:MapDelimiters(';', '')
elseif a:filetype == "slang"
call s:MapDelimiters('%', '')
elseif a:filetype == "sl"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "slice"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "slrnrc"
call s:MapDelimiters('%', '')
elseif a:filetype == "sm"
call s:MapDelimiters('#', '')
elseif a:filetype == "smarty"
call s:MapDelimiters('{*', '*}')
elseif a:filetype == "smil"
call s:MapDelimiters('<!','>')
elseif a:filetype == "smith"
call s:MapDelimiters(';', '')
elseif a:filetype == "sml"
call s:MapDelimiters('(*','*)')
elseif a:filetype == "snnsnet"
call s:MapDelimiters('#', '')
elseif a:filetype == "snnspat"
call s:MapDelimiters('#', '')
elseif a:filetype == "snnsres"
call s:MapDelimiters('#', '')
elseif a:filetype == "snobol4"
call s:MapDelimiters('*', '')
elseif a:filetype == "spec"
call s:MapDelimiters('#', '')
elseif a:filetype == "specman"
call s:MapDelimiters('//', '')
elseif a:filetype == "spectre"
call s:MapDelimitersWithAlternative('//', '', '*', '')
elseif a:filetype == "spice"
call s:MapDelimiters('$', '')
elseif a:filetype == "sql"
call s:MapDelimiters('--', '')
elseif a:filetype == "sqlforms"
call s:MapDelimiters('--', '')
elseif a:filetype == "sqlj"
call s:MapDelimiters('--', '')
elseif a:filetype == "sqr"
call s:MapDelimiters('!', '')
elseif a:filetype == "squid"
call s:MapDelimiters('#', '')
elseif a:filetype == "st"
call s:MapDelimiters('"','')
elseif a:filetype == "stata"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "stp"
call s:MapDelimiters('--', '')
elseif a:filetype == "strace"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "sudoers"
call s:MapDelimiters('#', '')
elseif a:filetype == "SVKAnnotate"
call s:MapDelimiters('','')
elseif a:filetype == "svn"
call s:MapDelimiters('','')
elseif a:filetype == "SVNAnnotate"
call s:MapDelimiters('','')
elseif a:filetype == "SVNcommitlog"
call s:MapDelimiters('','')
elseif a:filetype == "SVNdiff"
call s:MapDelimiters('','')
elseif a:filetype == "systemverilog"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "tads"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "taglist"
call s:MapDelimiters('', '')
elseif a:filetype == "tags"
call s:MapDelimiters(';', '')
elseif a:filetype == "tak"
call s:MapDelimiters('$', '')
elseif a:filetype == "tar"
call s:MapDelimiters('', '')
elseif a:filetype == "tasm"
call s:MapDelimiters(';', '')
elseif a:filetype == "tcl"
call s:MapDelimiters('#','')
elseif a:filetype == "terminfo"
call s:MapDelimiters('#', '')
elseif a:filetype == "tex"
call s:MapDelimiters('%','')
elseif a:filetype == "text"
call s:MapDelimiters('','')
elseif a:filetype == "texinfo"
call s:MapDelimiters("@c ", "")
elseif a:filetype == "texmf"
call s:MapDelimiters('%', '')
elseif a:filetype == "tf"
call s:MapDelimiters(';', '')
elseif a:filetype == "tidy"
call s:MapDelimiters('#', '')
elseif a:filetype == "tli"
call s:MapDelimiters('#', '')
elseif a:filetype == "trasys"
call s:MapDelimiters("$", "")
elseif a:filetype == "tsalt"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "tsscl"
call s:MapDelimiters('#', '')
elseif a:filetype == "tssgm"
call s:MapDelimiters("comment = '","'")
elseif a:filetype == "uc"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "uil"
call s:MapDelimiters('!', '')
elseif a:filetype == "vb"
call s:MapDelimiters("'","")
elseif a:filetype == "vcscommit"
call s:MapDelimiters('','')
elseif a:filetype == "velocity"
call s:MapDelimitersWithAlternative("##","", '#*', '*#')
elseif a:filetype == "vera"
call s:MapDelimitersWithAlternative('/*','*/','//','')
elseif a:filetype == "verilog"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "verilog_systemverilog"
call s:MapDelimitersWithAlternative('//','', '/*','*/')
elseif a:filetype == "vgrindefs"
call s:MapDelimiters('#', '')
elseif a:filetype == "vhdl"
call s:MapDelimiters('--', '')
elseif a:filetype == "vim"
400 0.045488 0.008393 call s:MapDelimiters('"','')
400 0.001604 elseif a:filetype == "viminfo"
call s:MapDelimiters('','')
elseif a:filetype == "vimperator"
call s:MapDelimiters('"','')
elseif a:filetype == "virata"
call s:MapDelimiters('%', '')
elseif a:filetype == "vo_base"
call s:MapDelimiters('', '')
elseif a:filetype == "vrml"
call s:MapDelimiters('#', '')
elseif a:filetype == "vsejcl"
call s:MapDelimiters('/*', '')
elseif a:filetype == "webmacro"
call s:MapDelimiters('##', '')
elseif a:filetype == "wget"
call s:MapDelimiters('#', '')
elseif a:filetype ==? "Wikipedia"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "winbatch"
call s:MapDelimiters(';', '')
elseif a:filetype == "wml"
call s:MapDelimiters('#', '')
elseif a:filetype =~ "[^w]*sh"
call s:MapDelimiters('#', '')
elseif a:filetype == "wvdial"
call s:MapDelimiters(';', '')
elseif a:filetype == "xdefaults"
call s:MapDelimiters('!', '')
elseif a:filetype == "xf86conf"
call s:MapDelimiters('#', '')
elseif a:filetype == "xhtml"
call s:MapDelimiters('<!--', '-->')
elseif a:filetype == "xkb"
call s:MapDelimiters('//', '')
elseif a:filetype == "xmath"
call s:MapDelimiters('#', '')
elseif a:filetype == "xml"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "xmodmap"
call s:MapDelimiters('!', '')
elseif a:filetype == "xpm2"
call s:MapDelimiters('!', '')
elseif a:filetype == "xpm"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "xsd"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "xslt"
call s:MapDelimiters('<!--','-->')
elseif a:filetype == "yacc"
call s:MapDelimiters('/*','*/')
elseif a:filetype == "yaml"
call s:MapDelimiters('#','')
elseif a:filetype == "xquery"
call s:MapDelimiters('(:',':)')
elseif a:filetype == "z8a"
call s:MapDelimiters(';', '')
elseif a:filetype == ""
call s:MapDelimitersWithAlternative("","", "", "")
"we have not hardcoded the comment delimiters to use for this filetype so
"get them from &commentstring.
else
"print a disclaimer to the user :)
if !g:NERDShutUp
call s:NerdEcho("Unknown filetype '".a:filetype."', setting delimiters by &commentstring.\nPleeeeease email the author of the NERD commenter with this filetype\nand its delimiters!", 0)
endif
"extract the delims from &commentstring
let left= substitute(&commentstring, '\(.*\)%s.*', '\1', '')
let right= substitute(&commentstring, '.*%s\(.*\)', '\1', 'g')
call s:MapDelimiters(left,right)
endif
FUNCTION System1()
Called 1 time
Total time: 1.094449
Self time: 0.053694
count total (s) self (s)
1 0.000005 let i=0
101 0.000906 while i<g:max
100 1.088993 0.048238 let tmp=system("cat ".shellescape(g:fname))
100 0.001669 unlet tmp
100 0.001279 let i+=1
100 0.000816 endwhile
FUNCTION <SNR>52_DoModeline()
Called 1200 times
Total time: 9.201255
Self time: 0.257332
count total (s) self (s)
1200 0.057663 let l:matches = matchlist(a:line, '\%(\S\@<!\%(vi\|vim\([<>=]\?\)\([0-9]\+\)\?\)\|\sex\):\s*set\?\s\+\([^:]\+\):\S\@!')
1200 0.008853 if len(l:matches) > 0
let l:operator = ">"
if len(l:matches[1]) > 0
let l:operator = l:matches[1]
endif
if len(l:matches[2]) > 0
if <SID>CheckVersion(l:operator, l:matches[2]) ? 0 : 1
return
endif
endif
return <SID>DoSetModeline(l:matches[3])
endif
1200 0.059749 let l:matches = matchlist(a:line, '\%(\S\@<!\%(vi\|vim\([<>=]\?\)\([0-9]\+\)\?\)\|\sex\):\(.\+\)')
1200 0.008546 if len(l:matches) > 0
200 0.001084 let l:operator = ">"
200 0.001865 if len(l:matches[1]) > 0
let l:operator = l:matches[1]
endif
200 0.001573 if len(l:matches[2]) > 0
if <SID>CheckVersion(l:operator, l:matches[2]) ? 0 : 1
return
endif
endif
200 8.947552 0.003629 return <SID>DoNoSetModeline(l:matches[3])
endif
FUNCTION Vim1()
Called 1 time
Total time: 7.570761
Self time: 7.570761
count total (s) self (s)
1 0.000006 let i=0
101 0.000689 while i < g:max
100 7.542816 let tmp=join(readfile(g:fname, "b"), "\n")
100 0.025056 unlet tmp
100 0.001168 let i+=1
100 0.000564 endwhile
FUNCTION Vim3()
Called 1 time
Total time: 10.591508
Self time: 0.989742
count total (s) self (s)
1 0.000006 let i=0
101 0.000740 while i < g:max
100 9.866927 0.568573 execute "view! ".g:fname
100 0.001851 let savedreg=@a
100 0.124498 normal! gg"ayG
100 0.085134 let tmp=@a
100 0.000801 unlet tmp
100 0.021234 let @a=savedreg
100 0.486564 0.183152 bw
100 0.001098 let i+=1
100 0.001644 endwhile
FUNCTION Vim4()
Called 1 time
Total time: 1.170258
Self time: 0.571477
count total (s) self (s)
1 0.000009 let i=0
101 0.000627 while i < g:max
100 0.306459 0.012004 execute "enew!"
100 0.485735 0.483298 execute "read ".g:fname
100 0.002363 let savedreg=@a
100 0.004515 normal! gg"aG
100 0.000767 let tmp=@a
100 0.000539 unlet tmp
100 0.000824 let @a=savedreg
100 0.366177 0.064288 bw!
100 0.001042 let i+=1
100 0.000346 endwhile
(для удобства разделены на две секции).
инициализации) нестабильно.
.
UPD: Перед этим сообщением мне удалось запостить отоброжавшееся пустым. Видимо,
оно уже исчезло.