# HG changeset patch # User vimboss # Date 1214348286 0 # Node ID 18ee39301b822de39caf5fa023107ddf508b42e0 # Parent 53938adac247b4c2cbaf45f30fa84f98e1210656 updated for version 7.2a diff --git a/runtime/autoload/ccomplete.vim b/runtime/autoload/ccomplete.vim --- a/runtime/autoload/ccomplete.vim +++ b/runtime/autoload/ccomplete.vim @@ -1,7 +1,7 @@ " Vim completion script " Language: C " Maintainer: Bram Moolenaar -" Last Change: 2006 May 08 +" Last Change: 2007 Aug 30 " This function is used for the 'omnifunc' option. @@ -119,6 +119,27 @@ function! ccomplete#Complete(findstart, " TODO: join previous line if it makes sense let line = getline('.') let col = col('.') + if stridx(strpart(line, 0, col), ';') != -1 + " Handle multiple declarations on the same line. + let col2 = col - 1 + while line[col2] != ';' + let col2 -= 1 + endwhile + let line = strpart(line, col2 + 1) + let col -= col2 + endif + if stridx(strpart(line, 0, col), ',') != -1 + " Handle multiple declarations on the same line in a function + " declaration. + let col2 = col - 1 + while line[col2] != ',' + let col2 -= 1 + endwhile + if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]* *[^ ]' + let line = strpart(line, col2 + 1) + let col -= col2 + endif + endif if len(items) == 1 " Completing one word and it's a local variable: May add '[', '.' or " '->'. @@ -140,7 +161,7 @@ function! ccomplete#Complete(findstart, let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}] else " Completing "var.", "var.something", etc. - let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1) + let res = s:Nextitem(strpart(line, 0, col), items[-1], 0, 1) endif endif diff --git a/runtime/autoload/spellfile.vim b/runtime/autoload/spellfile.vim --- a/runtime/autoload/spellfile.vim +++ b/runtime/autoload/spellfile.vim @@ -1,6 +1,6 @@ " Vim script to download a missing spell file " Maintainer: Bram Moolenaar -" Last Change: 2007 May 08 +" Last Change: 2008 May 29 if !exists('g:spellfile_URL') let g:spellfile_URL = 'ftp://ftp.vim.org/pub/vim/runtime/spell' @@ -106,7 +106,12 @@ function! spellfile#LoadFile(lang) endfor let dirchoice = confirm(msg, dirchoices) - 2 if dirchoice >= 0 - exe "write " . escape(dirlist[dirchoice], ' ') . '/' . fname + if exists('*fnameescape') + let dirname = fnameescape(dirlist[dirchoice]) + else + let dirname = escape(dirlist[dirchoice], ' ') + endif + exe "write " . dirname . '/' . fname " Also download the .sug file, if the user wants to. let msg = "Do you want me to try getting the .sug file?\n" @@ -119,7 +124,7 @@ function! spellfile#LoadFile(lang) call spellfile#Nread(fname) if getline(2) =~ 'VIMsug' 1d - exe "write " . escape(dirlist[dirchoice], ' ') . '/' . fname + exe "write " . dirname . '/' . fname set nomod else echo 'Sorry, downloading failed' diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim --- a/runtime/autoload/sqlcomplete.vim +++ b/runtime/autoload/sqlcomplete.vim @@ -1,8 +1,8 @@ " Vim OMNI completion script for SQL " Language: SQL " Maintainer: David Fishburn -" Version: 5.0 -" Last Change: Mon Jun 05 2006 3:30:04 PM +" Version: 6.0 +" Last Change: Thu 03 Apr 2008 10:37:54 PM Eastern Daylight Time " Usage: For detailed help " ":help sql.txt" " or ":help ft-sql-omni" @@ -106,7 +106,7 @@ function! sqlcomplete#Complete(findstart let begindot = 1 endif while start > 0 - if line[start - 1] =~ '\w' + if line[start - 1] =~ '\(\w\|\s\+\)' let start -= 1 elseif line[start - 1] =~ '\.' && \ compl_type =~ 'column\|table\|view\|procedure' @@ -178,11 +178,10 @@ function! sqlcomplete#Complete(findstart " Allow the user to override the dbext plugin to specify whether " the owner/creator should be included in the list - let saved_dbext_show_owner = 1 - if exists('g:dbext_default_dict_show_owner') - let saved_dbext_show_owner = g:dbext_default_dict_show_owner + if g:loaded_dbext >= 300 + let saveSetting = DB_listOption('dict_show_owner') + exec 'DBSetOption dict_show_owner='.(g:omni_sql_include_owner==1?'1':'0') endif - let g:dbext_default_dict_show_owner = g:omni_sql_include_owner let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '') if s:sql_file_{compl_type} == "" @@ -192,18 +191,12 @@ function! sqlcomplete#Complete(findstart if s:sql_file_{compl_type} != "" if filereadable(s:sql_file_{compl_type}) let compl_list = readfile(s:sql_file_{compl_type}) - " let dic_list = readfile(s:sql_file_{compl_type}) - " if !empty(dic_list) - " for elem in dic_list - " let kind = (compl_type=='table'?'m':(compl_type=='procedure'?'f':'v')) - " let item = {'word':elem, 'menu':elem, 'kind':kind, 'info':compl_type} - " let compl_list += [item] - " endfor - " endif endif endif - let g:dbext_default_dict_show_owner = saved_dbext_show_owner + if g:loaded_dbext > 300 + exec 'DBSetOption dict_show_owner='.saveSetting + endif elseif compl_type =~? 'column' " This type of completion relies upon the dbext.vim plugin @@ -450,8 +443,8 @@ function! s:SQLCCheck4dbext() " Leave time for the user to read the error message :sleep 2 return -1 - elseif g:loaded_dbext < 300 - let msg = "The dbext plugin must be at least version 3.00 " . + elseif g:loaded_dbext < 600 + let msg = "The dbext plugin must be at least version 5.30 " . \ " for dynamic SQL completion" call s:SQLCErrorMsg(msg) " Leave time for the user to read the error message @@ -514,34 +507,42 @@ endfunction function! s:SQLCGetObjectOwner(object) " The owner regex matches a word at the start of the string which is " followed by a dot, but doesn't include the dot in the result. - " ^ - from beginning of line - " "\? - ignore any quotes - " \zs - start the match now - " \w\+ - get owner name - " \ze - end the match - " "\? - ignore any quotes - " \. - must by followed by a . - let owner = matchstr( a:object, '^"\?\zs\w\+\ze"\?\.' ) + " ^ - from beginning of line + " \("\|\[\)\? - ignore any quotes + " \zs - start the match now + " .\{-} - get owner name + " \ze - end the match + " \("\|\[\)\? - ignore any quotes + " \. - must by followed by a . + " let owner = matchstr( a:object, '^\s*\zs.*\ze\.' ) + let owner = matchstr( a:object, '^\("\|\[\)\?\zs\.\{-}\ze\("\|\]\)\?\.' ) return owner endfunction function! s:SQLCGetColumns(table_name, list_type) " Check if the table name was provided as part of the column name - let table_name = matchstr(a:table_name, '^[a-zA-Z0-9_]\+\ze\.\?') + let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?') let table_cols = [] let table_alias = '' let move_to_top = 1 + let table_name = substitute(table_name, '\s*\(.\{-}\)\s*$', '\1', 'g') + + " If the table name was given as: + " where c. + let table_name = substitute(table_name, '^\c\(WHERE\|AND\|OR\)\s\+', '', '') if g:loaded_dbext >= 300 let saveSettingAlias = DB_listOption('use_tbl_alias') exec 'DBSetOption use_tbl_alias=n' endif + let table_name_stripped = substitute(table_name, '["\[\]]*', '', 'g') + " Check if we have already cached the column list for this table " by its name - let list_idx = index(s:tbl_name, table_name, 0, &ignorecase) + let list_idx = index(s:tbl_name, table_name_stripped, 0, &ignorecase) if list_idx > -1 - let table_cols = split(s:tbl_cols[list_idx]) + let table_cols = split(s:tbl_cols[list_idx], '\n') else " Check if we have already cached the column list for this table " by its alias, assuming the table_name provided was actually @@ -549,11 +550,11 @@ function! s:SQLCGetColumns(table_name, l " select * " from area a " where a. - let list_idx = index(s:tbl_alias, table_name, 0, &ignorecase) + let list_idx = index(s:tbl_alias, table_name_stripped, 0, &ignorecase) if list_idx > -1 - let table_alias = table_name + let table_alias = table_name_stripped let table_name = s:tbl_name[list_idx] - let table_cols = split(s:tbl_cols[list_idx]) + let table_cols = split(s:tbl_cols[list_idx], '\n') endif endif @@ -609,8 +610,8 @@ function! s:SQLCGetColumns(table_name, l " '.*' - Exclude the rest of the line in the match let table_name_new = matchstr(@y, \ 'from.\{-}'. - \ '\zs\(\(\<\w\+\>\)\.\)\?'. - \ '\<\w\+\>\ze'. + \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'. + \ '\("\|\[\)\?.\{-}\("\|\]\)\ze'. \ '\s\+\%(as\s\+\)\?\<'. \ matchstr(table_name, '.\{-}\ze\.\?$'). \ '\>'. @@ -618,6 +619,7 @@ function! s:SQLCGetColumns(table_name, l \ '\(\\|$\)'. \ '.*' \ ) + if table_name_new != '' let table_alias = table_name let table_name = table_name_new @@ -668,7 +670,7 @@ function! s:SQLCGetColumns(table_name, l let s:tbl_name = add( s:tbl_name, table_name ) let s:tbl_alias = add( s:tbl_alias, table_alias ) let s:tbl_cols = add( s:tbl_cols, table_cols_str ) - let table_cols = split(table_cols_str) + let table_cols = split(table_cols_str, '\n') endif endif diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -1,21 +1,21 @@ " tar.vim: Handles browsing tarfiles " AUTOLOAD PORTION -" Date: Sep 29, 2006 -" Version: 11 +" Date: Jun 12, 2008 +" Version: 16 " Maintainer: Charles E Campbell, Jr " License: Vim License (see vim's :help license) " " Contains many ideas from Michael Toren's " -" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1 +" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright " notice is copied with it. Like anything else that's free, -" tarPlugin.vim is provided *as is* and comes with no warranty -" of any kind, either expressed or implied. By using this -" plugin, you agree that in no event will the copyright -" holder be liable for any damages resulting from the use -" of this software. +" tar.vim and tarPlugin.vim are provided *as is* and comes +" with no warranty of any kind, either expressed or implied. +" By using this plugin, you agree that in no event will the +" copyright holder be liable for any damages resulting from +" the use of this software. " --------------------------------------------------------------------- " Load Once: {{{1 @@ -24,8 +24,11 @@ set cpo&vim if &cp || exists("g:loaded_tar") || v:version < 700 finish endif -let g:loaded_tar= "v11" +let g:loaded_tar= "v16" "call Decho("loading autoload/tar.vim") +if v:version < 701 || (v:version == 701 && !has("patch299")) + echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299" +endif " --------------------------------------------------------------------- " Default Settings: {{{1 @@ -41,12 +44,33 @@ endif if !exists("g:tar_writeoptions") let g:tar_writeoptions= "uf" endif + +if !exists("g:netrw_cygwin") + if has("win32") || has("win95") || has("win64") || has("win16") + if &shell =~ '\%(\\|\\)\%(\.exe\)\=$' + let g:netrw_cygwin= 1 + else + let g:netrw_cygwin= 0 + endif + else + let g:netrw_cygwin= 0 + endif +endif + +" set up shell quoting character if !exists("g:tar_shq") - if has("unix") + if exists("&shq") && &shq != "" + let g:tar_shq= &shq + elseif has("win32") || has("win95") || has("win64") || has("win16") + if exists("g:netrw_cygwin") && g:netrw_cygwin + let g:tar_shq= "'" + else + let g:tar_shq= '"' + endif + else let g:tar_shq= "'" - else - let g:tar_shq= '"' endif +" call Decho("g:tar_shq<".g:tar_shq.">") endif " ---------------- @@ -95,27 +119,32 @@ fun! tar#Browse(tarfile) " give header " call Decho("printing header") - exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'" - exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'" - exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'" + let lastline= line("$") + call setline(lastline+1,'" tar.vim version '.g:loaded_tar) + call setline(lastline+2,'" Browsing tarfile '.a:tarfile) + call setline(lastline+3,'" Select a file with cursor and press ENTER') + $put ='' 0d $ let tarfile= a:tarfile if has("win32") && executable("cygpath") " assuming cygwin - let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e') + let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile)),'\n$','','e') endif let curlast= line("$") if tarfile =~# '\.\(gz\|tgz\)$' -" call Decho("exe silent r! gzip -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "silent r! gzip -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_browseoptions." - " +" call Decho("1: exe silent r! gzip -d -c ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") + exe "silent r! gzip -d -c -- ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - " + elseif tarfile =~# '\.lrp' +" call Decho("2: exe silent r! cat -- ".s:Escape(tarfile)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ") + exe "silent r! cat -- ".s:Escape(tarfile)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - " elseif tarfile =~# '\.bz2$' -" call Decho("exe silent r! bzip2 -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_browseoptions." - ") - exe "silent r! bzip2 -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_browseoptions." - " +" call Decho("3: exe silent r! bzip2 -d -c ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") + exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile)." | ".g:tar_cmd." -".g:tar_browseoptions." - " else -" call Decho("exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".g:tar_shq.tarfile.g:tar_shq) - exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".g:tar_shq.tarfile.g:tar_shq +" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile)) + exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile) endif if v:shell_error != 0 redraw! @@ -166,13 +195,15 @@ fun! s:TarBrowseSelect() let curfile= expand("%") if has("win32") && executable("cygpath") " assuming cygwin - let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e') + let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile)),'\n$','','e') endif new - wincmd _ + if !exists("g:tar_nomax") || g:tar_nomax == 0 + wincmd _ + endif let s:tblfile_{winnr()}= curfile - call tar#Read("tarfile:".tarfile.':'.fname,1) + call tar#Read("tarfile:".tarfile.'::'.fname,1) filetype detect let &report= repkeep @@ -185,27 +216,50 @@ fun! tar#Read(fname,mode) " call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")") let repkeep= &report set report=10 - let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','') - let fname = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','') + let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','') + let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','') if has("win32") && executable("cygpath") " assuming cygwin - let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e') + let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile)),'\n$','','e') endif " call Decho("tarfile<".tarfile.">") " call Decho("fname<".fname.">") + if fname =~ '\.gz$' && executable("zcat") + let decmp= "|zcat" + let doro = 1 + elseif fname =~ '\.bz2$' && executable("bzcat") + let decmp= "|bzcat" + let doro = 1 + else + let decmp="" + let doro = 0 + if fname =~ '\.gz$\|\.bz2$\|\.Z$\|\.zip$' + setlocal bin + endif + endif + if tarfile =~# '\.\(gz\|tgz\)$' -" call Decho("exe silent r! gzip -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -OPxf - '".fname."'") - exe "silent r! gzip -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_readoptions." - '".fname."'" +" call Decho("5: exe silent r! gzip -d -c -- ".s:Escape(tarfile)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.s:Escape(fname)) + exe "silent r! gzip -d -c -- ".s:Escape(tarfile)."| ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp + elseif tarfile =~# '\.lrp$' +" call Decho("6: exe silent r! cat ".s:Escape(tarfile)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp) + exe "silent r! cat -- ".s:Escape(tarfile)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp elseif tarfile =~# '\.bz2$' -" call Decho("exe silent r! bzip2 -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_readoptions." - '".fname."'") - exe "silent r! bzip2 -d -c ".g:tar_shq.tarfile.g:tar_shq."| ".g:tar_cmd." -".g:tar_readoptions." - '".fname."'" +" call Decho("7: exe silent r! bzip2 -d -c ".s:Escape(tarfile)."| ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp) + exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile)."| ".g:tar_cmd." -".g:tar_readoptions." - ".s:Escape(fname).decmp else -" call Decho("exe silent r! ".g:tar_cmd." -".g:tar_readoptions." ".g:tar_shq.tarfile.g:tar_shq." ".g:tar_shq.fname.g:tar_shq) - exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".g:tar_shq.tarfile.g:tar_shq." ".g:tar_shq.fname.g:tar_shq +" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions." -- ".s:Escape(tarfile)." ".s:Escape(fname)) + exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".s:Escape(tarfile)." -- ".s:Escape(fname).decmp endif + + if doro + " because the reverse process of compressing changed files back into the tarball is not currently supported + setlocal ro + endif + let w:tarfile= a:fname - exe "file tarfile:".fname + exe "file tarfile::".fname " cleanup 0d @@ -251,7 +305,7 @@ fun! tar#Write(fname) " attempt to change to the indicated directory try - exe "cd ".escape(tmpdir,' \') + exe "cd ".fnameescape(tmpdir) catch /^Vim\%((\a\+)\)\=:E344/ redraw! echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None @@ -270,24 +324,26 @@ fun! tar#Write(fname) cd _ZIPVIM_ " call Decho("current directory now: ".getcwd()) - let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\):.*$','\1','') - let fname = substitute(w:tarfile,'tarfile:.\{-}:\(.*\)$','\1','') + let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\)::.*$','\1','') + let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','') " handle compressed archives if tarfile =~# '\.gz' - call system("gzip -d ".tarfile) + call system("gzip -d -- ".tarfile) let tarfile = substitute(tarfile,'\.gz','','e') - let compress= "gzip '".tarfile."'" + let compress= "gzip ".s:Escape(tarfile) elseif tarfile =~# '\.tgz' - call system("gzip -d ".tarfile) + call system("gzip -d -- ".s:Escape(tarfile)) let tarfile = substitute(tarfile,'\.tgz','.tar','e') - let compress= "gzip '".tarfile."'" + let compress= "gzip -- ".s:Escape(tarfile) let tgz = 1 elseif tarfile =~# '\.bz2' - call system("bzip2 -d ".tarfile) + call system("bzip2 -d -- ".s:Escape(tarfile)) let tarfile = substitute(tarfile,'\.bz2','','e') - let compress= "bzip2 '".tarfile."'" + let compress= "bzip2 -- ".s:Escape(tarfile) endif +" call Decho("tarfile<".tarfile.">") +" call Decho("compress<".compress.">") if v:shell_error != 0 redraw! @@ -309,26 +365,26 @@ fun! tar#Write(fname) endif " call Decho("tarfile<".tarfile."> fname<".fname.">") - exe "w! ".fname + exe "w! ".fnameescape(fname) if executable("cygpath") - let tarfile = substitute(system("cygpath ".tarfile),'\n','','e') + let tarfile = substitute(system("cygpath ".s:Escape(tarfile)),'\n','','e') endif " delete old file from tarfile -" call Decho("tar --delete -f '".tarfile."' '".fname."'") - call system("tar --delete -f '".tarfile."' '".fname."'") +" call Decho("system(tar --delete -f ".s:Escape(tarfile)." -- ".s:Escape(fname).")") + call system("tar --delete -f ".s:Escape(tarfile)." -- ".s:Escape(fname)) if v:shell_error != 0 redraw! - echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None + echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None " call inputsave()|call input("Press to continue")|call inputrestore() else " update tarfile with new file -" call Decho("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'") - call system("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'") +" call Decho("tar -".g:tar_writeoptions." ".s:Escape(tarfile)." -- ".s:Escape(fname)) + call system("tar -".g:tar_writeoptions." ".s:Escape(tarfile)." -- ".s:Escape(fname)) if v:shell_error != 0 redraw! - echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None + echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None " call inputsave()|call input("Press to continue")|call inputrestore() elseif exists("compress") " call Decho("call system(".compress.")") @@ -372,19 +428,31 @@ endfun fun! s:Rmdir(fname) " call Dfunc("Rmdir(fname<".a:fname.">)") if has("unix") - call system("/bin/rm -rf ".a:fname) + call system("/bin/rm -rf -- ".s:Escape(a:fname)) elseif has("win32") || has("win95") || has("win64") || has("win16") if &shell =~? "sh$" - call system("/bin/rm -rf ".a:fname) + call system("/bin/rm -rf -- ".s:Escape(a:fname)) else - call system("del /S ".a:fname) + call system("del /S ".s:Escape(a:fname)) endif endif " call Dret("Rmdir") endfun -" ------------------------------------------------------------------------ +" --------------------------------------------------------------------- +" s:Escape: {{{2 +fun s:Escape(name) + " shellescape() was added by patch 7.0.111 + if exists("*shellescape") + let qnameq= shellescape(a:name) + else + let qnameq= g:tar_shq . a:name . g:tar_shq + endif + return qnameq +endfun + +" --------------------------------------------------------------------- " Modelines And Restoration: {{{1 let &cpo= s:keepcpo unlet s:keepcpo -" vim:ts=8 fdm=marker +" vim:ts=8 fdm=marker diff --git a/runtime/autoload/xml/html32.vim b/runtime/autoload/xml/html32.vim --- a/runtime/autoload/xml/html32.vim +++ b/runtime/autoload/xml/html32.vim @@ -381,4 +381,3 @@ let g:xmldata_html32 = { \ 'param': ['/>', ''], \ } \ } -" vim:ft=vim:ff=unix diff --git a/runtime/autoload/xml/html401s.vim b/runtime/autoload/xml/html401s.vim --- a/runtime/autoload/xml/html401s.vim +++ b/runtime/autoload/xml/html401s.vim @@ -408,4 +408,3 @@ let g:xmldata_html401s = { \ 'param': ['/>', ''], \ } \ } -" vim:ft=vim:ff=unix diff --git a/runtime/autoload/xml/xhtml10s.vim b/runtime/autoload/xml/xhtml10s.vim --- a/runtime/autoload/xml/xhtml10s.vim +++ b/runtime/autoload/xml/xhtml10s.vim @@ -408,4 +408,3 @@ let g:xmldata_xhtml10s = { \ 'param': ['/>', ''], \ } \ } -" vim:ft=vim:ff=unix diff --git a/runtime/autoload/xml/xhtml10t.vim b/runtime/autoload/xml/xhtml10t.vim --- a/runtime/autoload/xml/xhtml10t.vim +++ b/runtime/autoload/xml/xhtml10t.vim @@ -458,4 +458,3 @@ let g:xmldata_xhtml10t = { \ 'param': ['/>', ''], \ } \ } -" vim:ft=vim:ff=unix diff --git a/runtime/compiler/rubyunit.vim b/runtime/compiler/rubyunit.vim --- a/runtime/compiler/rubyunit.vim +++ b/runtime/compiler/rubyunit.vim @@ -32,4 +32,4 @@ CompilerSet errorformat=\%W\ %\\+%\\d%\\ let &cpo = s:cpo_save unlet s:cpo_save -" vim: nowrap sw=2 sts=2 ts=8 ff=unix: +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt --- a/runtime/doc/farsi.txt +++ b/runtime/doc/farsi.txt @@ -1,4 +1,4 @@ -*farsi.txt* For Vim version 7.1. Last change: 2005 Mar 29 +*farsi.txt* For Vim version 7.2a. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -1,4 +1,4 @@ -*filetype.txt* For Vim version 7.1. Last change: 2007 May 10 +*filetype.txt* For Vim version 7.2a. Last change: 2008 Jun 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -122,7 +122,7 @@ The file types are also used for syntax command is used, the file type detection is installed too. There is no need to do ":filetype on" after ":syntax on". -To disable one of the file types, add a line in the your filetype file, see +To disable one of the file types, add a line in your filetype file, see |remove-filetype|. *filetype-detect* @@ -502,6 +502,13 @@ For further discussion of fortran_have_t detection of source format see |ft-fortran-syntax|. +GIT COMMIT *ft-gitcommit-plugin* + +One command, :DiffGitCached, is provided to show a diff of the current commit +in the preview window. It is equivalent to calling "git diff --cached" plus +any arguments given to the command. + + MAIL *ft-mail-plugin* Options: @@ -546,6 +553,20 @@ CTRL-] Jump to the manual page for the CTRL-T Jump back to the previous manual page. +PDF *ft-pdf-plugin* + +Two maps, and , are provided to simulate a tag stack for navigating +the PDF. The following are treated as tags: + +- The byte offset after "startxref" to the xref table +- The byte offset after the /Prev key in the trailer to an earlier xref table +- A line of the form "0123456789 00000 n" in the xref table +- An object reference like "1 0 R" anywhere in the PDF + +These maps can be disabled with > + :let g:no_pdf_maps = 1 +< + RPM SPEC *ft-spec-plugin* Since the text for this plugin is rather long it has been put in a separate @@ -555,7 +576,7 @@ file: |pi_spec.txt|. SQL *ft-sql* Since the text for this plugin is rather long it has been put in a separate -file: |sql.txt|. +file: |ft_sql.txt|. TEX *ft-tex-plugin* diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt new file mode 100644 --- /dev/null +++ b/runtime/doc/ft_ada.txt @@ -0,0 +1,515 @@ +*ft_ada.txt* For Vim version 7.2a. Last change: 2008 Jun 21 + + + ADA FILE TYPE PLUG-INS REFERENCE MANUAL~ + +ADA *ada.vim* + +1. Syntax Highlighting |ft-ada-syntax| +2. Plug-in |ft-ada-plugin| +3. Omni Completion |ft-ada-omni| + 3.1 Omni Completion with "gnat xref" |gnat-xref| + 3.2 Omni Completion with "ctags" |ada-ctags| +4. Compiler Support |ada-compiler| + 4.1 GNAT |compiler-gnat| + 4.1 Dec Ada |compiler-decada| +5. References |ada-reference| + 5.1 Options |ft-ada-options| + 5.2 Functions |ft-ada-functions| + 5.3 Commands |ft-ada-commands| + 5.4 Variables |ft-ada-variables| + 5.5 Constants |ft-ada-constants| +8. Extra Plug-ins |ada-extra-plugins| + +============================================================================== +1. Syntax Highlighting ~ + *ft-ada-syntax* + +This mode is designed for the 2005 edition of Ada ("Ada 2005"), which includes +support for objected-programming, protected types, and so on. It handles code +written for the original Ada language ("Ada83", "Ada87", "Ada95") as well, +though code which uses Ada 2005-only keywords will be wrongly colored (such +code should be fixed anyway). For more information about Ada, see +http://www.adapower.com. + +The Ada mode handles a number of situations cleanly. + +For example, it knows that the "-" in "-5" is a number, but the same character +in "A-5" is an operator. Normally, a "with" or "use" clause referencing +another compilation unit is coloured the same way as C's "#include" is coloured. +If you have "Conditional" or "Repeat" groups coloured differently, then "end +if" and "end loop" will be coloured as part of those respective groups. + +You can set these to different colours using vim's "highlight" command (e.g., +to change how loops are displayed, enter the command ":hi Repeat" followed by +the colour specification; on simple terminals the colour specification +ctermfg=White often shows well). + +There are several options you can select in this Ada mode. See|ft-ada-options| +for a complete list. + +To enable them, assign a value to the option. For example, to turn one on: + > + > let g:ada_standard_types = 1 +> +To disable them use ":unlet". Example: +> + > unlet g:ada_standard_types + +You can just use ":" and type these into the command line to set these +temporarily before loading an Ada file. You can make these option settings +permanent by adding the "let" command(s), without a colon, to your "~/.vimrc" +file. + +Even on a slow (90Mhz) PC this mode works quickly, but if you find the +performance unacceptable, turn on |g:ada_withuse_ordinary|. + +Syntax folding instructions (|fold-syntax|) are added when |g:ada_folding| is +set. + +============================================================================== +2. File type Plug-in ~ + *ft-ada-indent* *ft-ada-plugin* + +The Ada plug-in provides support for: + + - auto indenting (|indent.txt|) + - insert completion (|i_CTRL-N|) + - user completion (|i_CTRL-X_CTRL-U|) + - tag searches (|tagsrch.txt|) + - Quick Fix (|quickfix.txt|) + - backspace handling (|'backspace'|) + - comment handling (|'comments'|, |'commentstring'|) + +The plug-in only activates the features of the Ada mode whenever an Ada +files is opened and add adds Ada related entries to the main and pop-up menu. + +============================================================================== +3. Omni Completion ~ + *ft-ada-omni* + +The Ada omni-completions (|i_CTRL-X_CTRL-O|) uses tags database created either +by "gnat xref -v" or the "exuberant Ctags (http://ctags.sourceforge.net). The +complete function will automatically detect which tool was used to create the +tags file. + +------------------------------------------------------------------------------ +3.1 Omni Completion with "gnat xref" ~ + *gnat-xref* + +GNAT XREF uses the compiler internal information (ali-files) to produce the +tags file. This has the advantage to be 100% correct and the option of deep +nested analysis. However the code must compile, the generator is quite +slow and the created tags file contains only the basic Ctags information for +each entry - not enough for some of the more advanced Vim code browser +plug-ins. + +NOTE: "gnat xref -v" is very tricky to use as it has almost no diagnostic + output - If nothing is printed then usually the parameters are wrong. + Here some important tips: + +1) You need to compile your code first and use the "-aO" option to point to + your .ali files. +2) "gnat xref -v ../Include/adacl.ads" won't work - use the "gnat xref -v + -aI../Include adacl.ads" instead. +3) "gnat xref -v -aI../Include *.ad?" won't work - use "cd ../Include" and + then "gnat xref -v *.ad?" +4) Project manager support is completely broken - don't even try "gnat xref + -Padacl.gpr". +5) VIM is faster when the tags file is sorted - use "sort --unique + --ignore-case --output=tags tags" . +6) Remember to insert "!_TAG_FILE_SORTED 2 %sort ui" as first line to mark + the file assorted. + +------------------------------------------------------------------------------ +3.2 Omni Completion with "ctags"~ + *ada-ctags* + +Exuberant Ctags uses its own multi-language code parser. The parser is quite +fast, produces a lot of extra information (hence the name "Exuberant Ctags") +and can run on files which currently do not compile. + +There are also lots of other Vim-tools which use exuberant Ctags. + +You will need to install a version of the Exuberant Ctags which has Ada +support patched in. Such a version is available from the GNU Ada Project +(http://gnuada.sourceforge.net). + +The Ada parser for Exuberant Ctags is fairly new - don't expect complete +support yet. + +============================================================================== +4. Compiler Support ~ + *ada-compiler* + +The Ada mode supports more then one Ada compiler and will automatically load the +compiler set in|g:ada_default_compiler|whenever an Ada source is opened. The +provided compiler plug-ins are split into the actual compiler plug-in and a +collection of support functions and variables. This allows the easy +development of specialized compiler plug-ins fine tuned to your development +environment. + +------------------------------------------------------------------------------ +4.1 GNAT ~ + *compiler-gnat* + +GNAT is the only free (beer and speech) Ada compiler available. There are +several version available which differentiate in the licence terms used. + +The GNAT compiler plug-in will perform a compile on pressing and then +immediately shows the result. You can set the project file to be used by +setting: + > + > call g:gnat.Set_Project_File ('my_project.gpr') + +Setting a project file will also create a Vim session (|views-sessions|) so - +like with the GPS - opened files, window positions etc. will remembered +separately for all projects. + + *gnat_members* +GNAT OBJECT ~ + + *g:gnat.Make()* +g:gnat.Make() + Calls|g:gnat.Make_Command|and displays the result inside a + |quickfix| window. + + *g:gnat.Pretty()* +g:gnat.Pretty() + Calls|g:gnat.Pretty_Command| + + *g:gnat.Find()* +g:gnat.Find() + Calls|g:gnat.Find_Command| + + *g:gnat.Tags()* +g:gnat.Tags() + Calls|g:gnat.Tags_Command| + + *g:gnat.Set_Project_File()* +g:gnat.Set_Project_File([{file}]) + Set gnat project file and load associated session. An open + project will be closed and the session written. If called + without file name the file selector opens for selection of a + project file. If called with an empty string then the project + and associated session are closed. + + *g:gnat.Project_File* +g:gnat.Project_File string + Current project file. + + *g:gnat.Make_Command* +g:gnat.Make_Command string + External command used for|g:gnat.Make()| (|'makeprg'|). + + *g:gnat.Pretty_Program* +g:gnat.Pretty_Program string + External command used for|g:gnat.Pretty()| + + *g:gnat.Find_Program* +g:gnat.Find_Program string + External command used for|g:gnat.Find()| + + *g:gnat.Tags_Command* +g:gnat.Tags_Command string + External command used for|g:gnat.Tags()| + + *g:gnat.Error_Format* +g:gnat.Error_Format string + Error format (|'errorformat'|) + +------------------------------------------------------------------------------ +4.2 Dec Ada ~ + *compiler-hpada* *compiler-decada* + *compiler-vaxada* *compiler-compaqada* + +Dec Ada (also known by - in chronological order - VAX Ada, Dec Ada, Compaq Ada +and HP Ada) is a fairly dated Ada 83 compiler. Support is basic: will +compile the current unit. + +The Dec Ada compiler expects the package name and not the file name to be +passed a parameter. The compiler plug-in supports the usual file name +convention to convert the file into a unit name. For separates both '-' and +'__' are allowed. + + *decada_members* +DEC ADA OBJECT ~ + + *g:decada.Make()* +g:decada.Make() function + Calls|g:decada.Make_Command|and displays the result inside a + |quickfix| window. + + *g:decada.Unit_Name()* +g:decada.Unit_Name() function + Get the Unit name for the current file. + + *g:decada.Make_Command* +g:decada.Make_Command string + External command used for|g:decadat.Make()| (|'makeprg'|). + + *g:decada.Error_Format* +g:decada.Error_Format| string + Error format (|'errorformat'|). + +============================================================================== +5. References ~ + *ada-reference* + +------------------------------------------------------------------------------ +5.1 Options ~ + *ft-ada-options* + + *g:ada_standard_types* +g:ada_standard_types bool (true when exists) + Highlight types in package Standard (e.g., "Float") + + *g:ada_space_errors* + *g:ada_no_trail_space_error* + *g:ada_no_tab_space_error* + *g:ada_all_tab_usage* +g:ada_space_errors bool (true when exists) + Highlight extraneous errors in spaces ... + g:ada_no_trail_space_error + - but ignore trailing spaces at the end of a line + g:ada_no_tab_space_error + - but ignore tabs after spaces + g:ada_all_tab_usage + - highlight all tab use + + *g:ada_line_errors* +g:ada_line_errors bool (true when exists) + Highlight lines which are to long. Note: This highlighting + option is quite CPU intensive. + + *g:ada_rainbow_color* +g:ada_rainbow_color bool (true when exists) + Use rainbow colours for '(' and ')'. You need the + rainbow_parenthesis for this to work + + *g:ada_folding* +g:ada_folding set ('sigpft') + Use folding for Ada sources. + 's': activate syntax folding on load + 'p': fold packages + 'f': fold functions and procedures + 't': fold types + 'c': fold conditionals + 'g': activate gnat pretty print folding on load + 'i': lone 'is' folded with line above + 'b': lone 'begin' folded with line above + 'p': lone 'private' folded with line above + 'x': lone 'exception' folded with line above + 'i': activate indent folding on load + + Note: Syntax folding is in an early (unusable) stage and + indent or gnat pretty folding is suggested. + + For gnat pretty folding to work the following settings are + suggested: -cl3 -M79 -c2 -c3 -c4 -A1 -A2 -A3 -A4 -A5 + + For indent folding to work the following settings are + suggested: shiftwidth=3 softtabstop=3 + + *g:ada_abbrev* +g:ada_abbrev bool (true when exists) + Add some abbreviations. This feature more or less superseded + by the various completion methods. + + *g:ada_withuse_ordinary* +g:ada_withuse_ordinary bool (true when exists) + Show "with" and "use" as ordinary keywords (when used to + reference other compilation units they're normally highlighted + specially). + + *g:ada_begin_preproc* +g:ada_begin_preproc bool (true when exists) + Show all begin-like keywords using the colouring of C + preprocessor commands. + + *g:ada_omni_with_keywords* +g:ada_omni_with_keywords + Add Keywords, Pragmas, Attributes to omni-completions + (|compl-omni|). Note: You can always complete then with user + completion (|i_CTRL-X_CTRL-U|). + + *g:ada_extended_tagging* +g:ada_extended_tagging enum ('jump', 'list') + use extended tagging, two options are available + 'jump': use tjump to jump. + 'list': add tags quick fix list. + Normal tagging does not support function or operator + overloading as these features are not available in C and + tagging was originally developed for C. + + *g:ada_extended_completion* +g:ada_extended_completion + Uses extended completion for and completions + (|i_CTRL-N|). In this mode the '.' is used as part of the + identifier so that 'Object.Method' or 'Package.Procedure' are + completed together. + + *g:ada_gnat_extensions* +g:ada_gnat_extensions bool (true when exists) + Support GNAT extensions. + + *g:ada_with_gnat_project_files* +g:ada_with_gnat_project_files bool (true when exists) + Add gnat project file keywords and Attributes. + + *g:ada_default_compiler* +g:ada_default_compiler string + set default compiler. Currently supported is 'gnat' and + 'decada'. + +An "exists" type is a boolean is considered true when the variable is defined +and false when the variable is undefined. The value which the variable is +set makes no difference. + +------------------------------------------------------------------------------ +5.3 Commands ~ + *ft-ada-commands* + +:AdaRainbow *:AdaRainbow* + Toggles rainbow colour (|g:ada_rainbow_color|) mode for + '(' and ')' + +:AdaLines *:AdaLines* + Toggles line error (|g:ada_line_errors|) display + +:AdaSpaces *:AdaSpaces* + Toggles space error (|g:ada_space_errors|) display. + +:AdaTagDir *:AdaTagDir* + Creates tags file for the directory of the current file. + +:AdaTagFile *:AdaTagFile* + Creates tags file for the current file. + +:AdaTypes *:AdaTypes* + Toggles standard types (|g:ada_standard_types|) colour. + +:GnatFind *:GnatFind* + Calls |g:gnat.Find()| + +:GnatPretty *:GnatPretty* + Calls |g:gnat.Pretty()| + +:GnatTags *:GnatTags* + Calls |g:gnat.Tags()| + +------------------------------------------------------------------------------ +5.3 Variables ~ + *ft-ada-variables* + + *g:gnat* +g:gnat object + Control object which manages GNAT compiles. The object + is created when the first Ada source code is loaded provided + that |g:ada_default_compiler|is set to 'gnat'. See|gnat_members| + for details. + + *g:decada* +g:decada object + Control object which manages Dec Ada compiles. The object + is created when the first Ada source code is loaded provided + that |g:ada_default_compiler|is set to 'decada'. See + |decada_members|for details. + +------------------------------------------------------------------------------ +5.4 Constants ~ + *ft-ada-constants* + +All constants are locked. See |:lockvar| for details. + + *g:ada#WordRegex* +g:ada#WordRegex string + Regular expression to search for Ada words + + *g:ada#DotWordRegex* +g:ada#DotWordRegex string + Regular expression to search for Ada words separated by dots. + + *g:ada#Comment* +g:ada#Comment string + Regular expression to search for Ada comments + + *g:ada#Keywords* +g:ada#Keywords list of dictionaries + List of keywords, attributes etc. pp. in the format used by + omni completion. See |complete-items| for details. + + *g:ada#Ctags_Kinds* +g:ada#Ctags_Kinds dictionary of lists + Dictionary of the various kinds of items which the Ada support + for Ctags generates. + +------------------------------------------------------------------------------ +5.2 Functions ~ + *ft-ada-functions* + +ada#Word([{line}, {col}]) *ada#Word()* + Return full name of Ada entity under the cursor (or at given + line/column), stripping white space/newlines as necessary. + +ada#List_Tag([{line}, {col}]) *ada#Listtags()* + List all occurrences of the Ada entity under the cursor (or at + given line/column) inside the quick-fix window + +ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()* + List all occurrences of the Ada entity under the cursor (or at + given line/column) in the tag jump list. Mode can either be + 'tjump' or 'stjump'. + +ada#Create_Tags ({option}) *ada#Create_Tags()* + Creates tag file using Ctags. The option can either be 'file' + for the current file, 'dir' for the directory of the current + file or a file name. + +gnat#Insert_Tags_Header() *gnat#Insert_Tags_Header()* + Adds the tag file header (!_TAG_) information to the current + file which are missing from the GNAT XREF output. + +ada#Switch_Syntax_Option ({option}) *ada#Switch_Syntax_Option()* + Toggles highlighting options on or off. Used for the Ada menu. + + *gnat#New()* +gnat#New () + Create a new gnat object. See |g:gnat| for details. + + +============================================================================== +8. Extra Plugins ~ + *ada-extra-plugins* + +You can optionally install the following extra plug-in. They work well with Ada +and enhance the ability of the Ada mode.: + +backup.vim + http://www.vim.org/scripts/script.php?script_id=1537 + Keeps as many backups as you like so you don't have to. + +rainbow_parenthsis.vim + http://www.vim.org/scripts/script.php?script_id=1561 + Very helpful since Ada uses only '(' and ')'. + +nerd_comments.vim + http://www.vim.org/scripts/script.php?script_id=1218 + Excellent commenting and uncommenting support for almost any + programming language. + +matchit.vim + http://www.vim.org/scripts/script.php?script_id=39 + '%' jumping for any language. The normal '%' jump only works for '{}' + style languages. The Ada mode will set the needed search patters. + +taglist.vim + http://www.vim.org/scripts/script.php?script_id=273 + Source code explorer sidebar. There is a patch for Ada available. + +The GNU Ada Project distribution (http://gnuada.sourceforge.net) of Vim +contains all of the above. + +============================================================================== +vim: textwidth=78 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab +vim: filetype=help diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt --- a/runtime/doc/howto.txt +++ b/runtime/doc/howto.txt @@ -1,4 +1,4 @@ -*howto.txt* For Vim version 7.1. Last change: 2006 Apr 02 +*howto.txt* For Vim version 7.2a. Last change: 2006 Apr 02 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -1,4 +1,4 @@ -*intro.txt* For Vim version 7.1. Last change: 2007 May 07 +*intro.txt* For Vim version 7.2a. Last change: 2008 Jun 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -120,27 +120,13 @@ NOTE: *subscribe-maillist* If you want to join, send a message to - + Make sure that your "From:" address is correct. Then the list server will give you help on how to subscribe. -You can retrieve old messages from the maillist software, and an index of -messages. Ask vim-help for instructions. - -Archives are kept at: *maillist-archive* -http://groups.yahoo.com/group/vim -http://groups.yahoo.com/group/vimdev -http://groups.yahoo.com/group/vimannounce -http://groups.yahoo.com/group/vim-multibyte -http://groups.yahoo.com/group/vim-mac - - -Additional maillists: - - *french-maillist* - Vim list in the French language. Subscribe by sending a message to - - Or go to http://groups.yahoo.com/group/vim-fr. + *maillist-archive* +For more information and archives look on the Vim maillist page: +http://www.vim.org/maillist.php Bug reports: *bugs* *bug-reports* *bugreport.vim* @@ -220,6 +206,7 @@ Vim would never have become what it is n Eric Fischer Mac port, 'cindent', and other improvements Benji Fisher Answering lots of user questions Bill Foster Athena GUI port + Google Lets me work on Vim one day a week Loic Grenie xvim (ideas for multi windows version) Sven Guckes Vim promotor and previous WWW page maintainer Darren Hiebert Exuberant ctags @@ -231,7 +218,7 @@ Vim would never have become what it is n Steve Kirkendall Elvis Roger Knobbe original port to Windows NT Sergey Laskavy Vim's help from Moscow - Felix von Leitner Maintainer of Vim Mailing Lists + Felix von Leitner Previous maintainer of Vim Mailing Lists David Leonard Port of Python extensions to Unix Avner Lottem Edit in right-to-left windows Flemming Madsen X11 client-server, various features and patches @@ -241,6 +228,8 @@ Vim would never have become what it is n Sung-Hyun Nam Work on multi-byte versions Vince Negri Win32 GUI and generic console enhancements Steve Oualline Author of the first Vim book |frombook| + Dominique Pelle figuring out valgrind reports and fixes + A.Politz Many bug reports and some fixes George V. Reilly Win32 port, Win32 GUI start-off Stephen Riehm bug collector Stefan Roemer various patches and help to users @@ -560,7 +549,7 @@ Ex mode Like Command-line mode, but af you remain in Ex mode. Very limited editing of the command line. |Ex-mode| -There are five ADDITIONAL modes. These are variants of the BASIC modes: +There are six ADDITIONAL modes. These are variants of the BASIC modes: *Operator-pending* *Operator-pending-mode* Operator-pending mode This is like Normal mode, but after an operator @@ -574,6 +563,12 @@ Replace mode Replace mode is a special If the 'showmode' option is on "-- REPLACE --" is shown at the bottom of the window. +Virtual Replace mode Virtual Replace mode is similar to Replace mode, but + instead of file characters you are replacing screen + real estate. See |Virtual-Replace-mode|. + If the 'showmode' option is on "-- VREPLACE --" is + shown at the bottom of the window. + Insert Normal mode Entered when CTRL-O given in Insert mode. This is like Normal mode, but after executing one command Vim returns to Insert mode. @@ -608,7 +603,7 @@ CTRL-O in Insert mode you get a beep but TO mode ~ Normal Visual Select Insert Replace Cmd-line Ex ~ FROM mode ~ -Normal v V ^V *4 *1 R : / ? ! Q +Normal v V ^V *4 *1 R gR : / ? ! Q Visual *2 ^G c C -- : -- Select *5 ^O ^G *6 -- -- -- Insert -- -- -- -- diff --git a/runtime/doc/os_amiga.txt b/runtime/doc/os_amiga.txt --- a/runtime/doc/os_amiga.txt +++ b/runtime/doc/os_amiga.txt @@ -1,4 +1,4 @@ -*os_amiga.txt* For Vim version 7.1. Last change: 2005 Mar 29 +*os_amiga.txt* For Vim version 7.2a. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt --- a/runtime/doc/os_dos.txt +++ b/runtime/doc/os_dos.txt @@ -1,4 +1,4 @@ -*os_dos.txt* For Vim version 7.1. Last change: 2006 Mar 30 +*os_dos.txt* For Vim version 7.2a. Last change: 2006 Mar 30 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt --- a/runtime/doc/os_win32.txt +++ b/runtime/doc/os_win32.txt @@ -1,4 +1,4 @@ -*os_win32.txt* For Vim version 7.1. Last change: 2007 Apr 22 +*os_win32.txt* For Vim version 7.2a. Last change: 2008 May 02 VIM REFERENCE MANUAL by George Reilly @@ -306,7 +306,7 @@ A. When using :! to run an external comm :!start winfile.exe < Using "start" stops Vim switching to another screen, opening a new console, or waiting for the program to complete; it indicates that you are running a - program that does not effect the files you are editing. Programs begun + program that does not affect the files you are editing. Programs begun with :!start do not get passed Vim's open file handles, which means they do not have to be closed before Vim. To avoid this special treatment, use ":! start". diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt --- a/runtime/doc/pi_spec.txt +++ b/runtime/doc/pi_spec.txt @@ -1,4 +1,4 @@ -*pi_spec.txt* For Vim version 7.1. Last change: 2006 Apr 24 +*pi_spec.txt* For Vim version 7.2a. Last change: 2006 Apr 24 by Gustavo Niemeyer ~ diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.1. Last change: 2007 May 10 +*quickfix.txt* For Vim version 7.2a. Last change: 2008 Mar 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -141,8 +141,11 @@ command with 'l'. current window is used instead of the quickfix list. *:cq* *:cquit* -:cq[uit] Quit Vim with an error code, so that the compiler +:cq[uit][!] Quit Vim with an error code, so that the compiler will not compile the same file again. + WARNING: All changes in files are lost! Also when the + [!] is not used. It works like ":qall!" |:qall|, + except that Vim returns a non-zero exit code. *:cf* *:cfile* :cf[ile][!] [errorfile] Read the error file and jump to the first error. @@ -159,12 +162,12 @@ command with 'l'. the location list. -:cg[etfile][!] [errorfile] *:cg* *:cgetfile* +:cg[etfile] [errorfile] *:cg* *:cgetfile* Read the error file. Just like ":cfile" but don't jump to the first error. -:lg[etfile][!] [errorfile] *:lg* *:lgetfile* +:lg[etfile] [errorfile] *:lg* *:lgetfile* Same as ":cgetfile", except the location list for the current window is used instead of the quickfix list. @@ -229,15 +232,15 @@ command with 'l'. current window is used instead of the quickfix list. *:cgete* *:cgetexpr* -:cgete[xpr][!] {expr} Create a quickfix list using the result of {expr}. +:cgete[xpr] {expr} Create a quickfix list using the result of {expr}. Just like ":cexpr", but don't jump to the first error. *:lgete* *:lgetexpr* -:lgete[xpr][!] {expr} Same as ":cgetexpr", except the location list for the +:lgete[xpr] {expr} Same as ":cgetexpr", except the location list for the current window is used instead of the quickfix list. *:cad* *:caddexpr* -:cad[dexpr][!] {expr} Evaluate {expr} and add the resulting lines to the +:cad[dexpr] {expr} Evaluate {expr} and add the resulting lines to the current quickfix list. If a quickfix list is not present, then a new list is created. The current cursor position will not be changed. See |:cexpr| for @@ -246,7 +249,7 @@ command with 'l'. :g/mypattern/caddexpr expand("%") . ":" . line(".") . ":" . getline(".") < *:lad* *:laddexpr* -:lad[dexpr][!] {expr} Same as ":caddexpr", except the location list for the +:lad[dexpr] {expr} Same as ":caddexpr", except the location list for the current window is used instead of the quickfix list. *:cl* *:clist* @@ -280,6 +283,21 @@ If vim is built with |+autocmd| support, running commands before and after a quickfix command (':make', ':grep' and so on) is executed. See |QuickFixCmdPre| and |QuickFixCmdPost| for details. + *QuickFixCmdPost-example* +When 'encoding' differs from the locale, the error messages may have a +different encoding from what Vim is using. To convert the messages you can +use this code: > + function QfMakeConv() + let qflist = getqflist() + for i in qflist + let i.text = iconv(i.text, "cp936", "utf-8") + endfor + call setqflist(qflist) + endfunction + + au QuickfixCmdPost make call QfMakeConv() + + ============================================================================= 2. The error window *quickfix-window* @@ -434,6 +452,7 @@ 4. Using :make *:make_makeprg* 5. The errorfile is read using 'errorformat'. 6. If vim was built with |+autocmd|, all relevant |QuickFixCmdPost| autocommands are executed. + See example below. 7. If [!] is not given the first error is jumped to. 8. The errorfile is deleted. 9. You can now move through the errors with commands @@ -481,6 +500,25 @@ the screen and saved in a file the same If 'shellpipe' is empty, the {errorfile} part will be omitted. This is useful for compilers that write to an errorfile themselves (e.g., Manx's Amiga C). + +Using QuickFixCmdPost to fix the encoding ~ + +It may be that 'encoding' is set to an encoding that differs from the messages +your build program produces. This example shows how to fix this after Vim has +read the error messages: > + + function QfMakeConv() + let qflist = getqflist() + for i in qflist + let i.text = iconv(i.text, "cp936", "utf-8") + endfor + call setqflist(qflist) + endfunction + + au QuickfixCmdPost make call QfMakeConv() + +(Example by Faque Cheng) + ============================================================================== 5. Using :vimgrep and :grep *grep* *lid* @@ -751,6 +789,18 @@ work, because Vim is then running in the stdin (standard input) will not be interactive. +PERL *quickfix-perl* *compiler-perl* + +The Perl compiler plugin doesn't actually compile, but invokes Perl's internal +syntax checking feature and parses the output for possible errors so you can +correct them in quick-fix mode. + +Warnings are forced regardless of "no warnings" or "$^W = 0" within the file +being checked. To disable this set g:perl_compiler_force_warnings to a zero +value. For example: > + let g:perl_compiler_force_warnings = 0 + + PYUNIT COMPILER *compiler-pyunit* This is not actually a compiler, but a unit testing framework for the @@ -1379,7 +1429,8 @@ by Vim. *errorformat-Perl* In $VIMRUNTIME/tools you can find the efm_perl.pl script, which filters Perl error messages into a format that quickfix mode will understand. See the -start of the file about how to use it. +start of the file about how to use it. (This script is deprecated, see +|compiler-perl|.) diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt --- a/runtime/doc/remote.txt +++ b/runtime/doc/remote.txt @@ -1,4 +1,4 @@ -*remote.txt* For Vim version 7.1. Last change: 2006 Apr 30 +*remote.txt* For Vim version 7.2a. Last change: 2008 May 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -64,7 +64,10 @@ The following command line arguments are server {name} instead of the default (see below). *--remote-send* - --remote-send {keys} Send {keys} to server and exit. + --remote-send {keys} Send {keys} to server and exit. The {keys} + are not mapped. Special key names are + recognized, e.g., "" results in a CR + character. *--remote-expr* --remote-expr {expr} Evaluate {expr} in server and print the result on stdout. diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt --- a/runtime/doc/scroll.txt +++ b/runtime/doc/scroll.txt @@ -1,4 +1,4 @@ -*scroll.txt* For Vim version 7.1. Last change: 2006 Aug 27 +*scroll.txt* For Vim version 7.2a. Last change: 2006 Aug 27 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 7.1. Last change: 2007 May 11 +*syntax.txt* For Vim version 7.2a. Last change: 2008 Jun 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -103,7 +103,7 @@ To put this into a mapping, you can use: \ endif [using the |<>| notation, type this literally] -Details +Details: The ":syntax" commands are implemented by sourcing a file. To see exactly how this works, look in the file: command file ~ @@ -531,12 +531,12 @@ one of the first five lines in the file. The syntax type can always be overruled for a specific buffer by setting the b:asmsyntax variable: > - :let b:asmsyntax=nasm + :let b:asmsyntax = "nasm" If b:asmsyntax is not set, either automatically or by hand, then the value of the global variable asmsyntax is used. This can be seen as a default assembly language: > - :let asmsyntax=nasm + :let asmsyntax = "nasm" As a last resort, if nothing is defined, the "asm" syntax is used. @@ -613,7 +613,7 @@ C *c.vim* *ft-c-syntax* A few things in C highlighting are optional. To enable them assign any value to the respective variable. Example: > - :let c_comment_strings=1 + :let c_comment_strings = 1 To disable them use ":unlet". Example: > :unlet c_comment_strings @@ -626,6 +626,8 @@ c_no_tab_space_error ... but no spaces c_no_bracket_error don't highlight {}; inside [] as errors c_no_curly_error don't highlight {}; inside [] and () as errors; except { and } in first column +c_curly_error highlight a missing }; this forces syncing from the + start of the file, can be slow c_no_ansi don't do standard ANSI types and constants c_ansi_typedefs ... but do standard ANSI types c_ansi_constants ... but do standard ANSI constants @@ -674,7 +676,6 @@ highlighting for cErrInParen and cErrInB If you want to use folding in your C files, you can add these lines in a file an the "after" directory in 'runtimepath'. For Unix this would be ~/.vim/after/syntax/c.vim. > - syn region myFold start="{" end="}" transparent fold syn sync fromstart set foldmethod=syntax @@ -1475,11 +1476,10 @@ which are used for the statement itself, strings, strings, boolean constants and types (this, super) respectively. I have opted to chose another background for those statements. -In order to help you to write code that can be easily ported between -Java and C++, all C++ keywords are marked as error in a Java program. -However, if you use them regularly, you may want to define the following -variable in your .vimrc file: > - :let java_allow_cpp_keywords=1 +In order to help you write code that can be easily ported between Java and +C++, all C++ keywords can be marked as an error in a Java program. To +have this add this line in your .vimrc file: > + :let java_allow_cpp_keywords = 0 Javadoc is a program that takes special comments out of Java program files and creates HTML pages. The standard configuration will highlight this HTML code @@ -2402,7 +2402,7 @@ vimrc file: > SH *sh.vim* *ft-sh-syntax* *ft-bash-syntax* *ft-ksh-syntax* -This covers the "normal" Unix (Borne) sh, bash and the Korn shell. +This covers the "normal" Unix (Bourne) sh, bash and the Korn shell. Vim attempts to determine which shell type is in use by specifying that various filenames are of specific types: > @@ -2425,23 +2425,30 @@ variables in your <.vimrc>: let g:is_posix = 1 < bash: > let g:is_bash = 1 -< sh: (default) Borne shell > +< sh: (default) Bourne shell > let g:is_sh = 1 If there's no "#! ..." line, and the user hasn't availed himself/herself of a default sh.vim syntax setting as just shown, then syntax/sh.vim will assume -the Borne shell syntax. No need to quote RFCs or market penetration -statistics in error reports, please -- just select the default version of -the sh your system uses in your <.vimrc>. - -If, in your <.vimrc>, you set > - let g:sh_fold_enabled= 1 +the Bourne shell syntax. No need to quote RFCs or market penetration +statistics in error reports, please -- just select the default version of the +sh your system uses in your <.vimrc>. + +The syntax/sh.vim file provides several levels of syntax-based folding: > + + let g:sh_fold_enabled= 0 (default, no syntax folding) + let g:sh_fold_enabled= 1 (enable function folding) + let g:sh_fold_enabled= 2 (enable heredoc folding) + let g:sh_fold_enabled= 4 (enable if/do/for folding) > then various syntax items (HereDocuments and function bodies) become -syntax-foldable (see |:syn-fold|). - -If you notice highlighting errors while scrolling backwards, which are fixed -when redrawing with CTRL-L, try setting the "sh_minlines" internal variable +syntax-foldable (see |:syn-fold|). You also may add these together +to get multiple types of folding: > + + let g:sh_fold_enabled= 3 (enables function and heredoc folding) + +If you notice highlighting errors while scrolling backwards which are fixed +when one redraws with CTRL-L, try setting the "sh_minlines" internal variable to a larger number. Example: > let sh_minlines = 500 @@ -2504,7 +2511,7 @@ scripts. You can change Vim's default f supported types. You can also easily alter the SQL dialect being used on a buffer by buffer basis. -For more detailed instructions see |sql.txt|. +For more detailed instructions see |ft_sql.txt|. TCSH *tcsh.vim* *ft-tcsh-syntax* @@ -2531,7 +2538,7 @@ number is that redrawing can become slow TEX *tex.vim* *ft-tex-syntax* -*tex-folding* + *tex-folding* Want Syntax Folding? ~ As of version 28 of , syntax-based folding of parts, chapters, @@ -2541,7 +2548,15 @@ in your <.vimrc>, and :set fdm=syntax. modeline at the end of your LaTeX file: > % vim: fdm=syntax < -*tex-runon* + *tex-nospell* +Don't Want Spell Checking In Comments? ~ + +Some folks like to include things like source code in comments and so would +prefer that spell checking be disabled in comments in LaTeX files. To do +this, put the following in your <.vimrc>: > + let g:tex_comment_nospell= 1 +< + *tex-runon* Run-on Comments/Math? ~ The highlighting supports TeX, LaTeX, and some AmsTeX. The @@ -2554,7 +2569,7 @@ special "TeX comment" has been provided which will forcibly terminate the highlighting of either a texZone or a texMathZone. -*tex-slow* + *tex-slow* Slow Syntax Highlighting? ~ If you have a slow computer, you may wish to reduce the values for > @@ -2564,8 +2579,8 @@ If you have a slow computer, you may wis increase them. This primarily affects synchronizing (i.e. just what group, if any, is the text at the top of the screen supposed to be in?). -*tex-morecommands* *tex-package* -Wish To Highlight More Commmands? ~ + *tex-morecommands* *tex-package* +Want To Highlight More Commands? ~ LaTeX is a programmable language, and so there are thousands of packages full of specialized LaTeX commands, syntax, and fonts. If you're using such a @@ -2574,7 +2589,7 @@ it. However, clearly this is impractica techniques in |mysyntaxfile-add| to extend or modify the highlighting provided by syntax/tex.vim. -*tex-error* + *tex-error* Excessive Error Highlighting? ~ The supports lexical error checking of various sorts. Thus, @@ -2584,7 +2599,7 @@ you may put in your <.vimrc> the followi let tex_no_error=1 and all error checking by will be suppressed. -*tex-math* + *tex-math* Need a new Math Group? ~ If you want to include a new math group in your LaTeX, the following @@ -2599,7 +2614,7 @@ and then to the call to it in .vim/after The "starform" variable, if true, implies that your new math group has a starred form (ie. eqnarray*). -*tex-style* + *tex-style* Starting a New Style? ~ One may use "\makeatletter" in *.tex files, thereby making the use of "@" in @@ -2624,36 +2639,56 @@ set "tf_minlines" to the value you desir :let tf_minlines = your choice -VIM *vim.vim* *ft-vim-syntax* - -There is a tradeoff between more accurate syntax highlighting versus -screen updating speed. To improve accuracy, you may wish to increase -the g:vim_minlines variable. The g:vim_maxlines variable may be used -to improve screen updating rates (see |:syn-sync| for more on this). - - g:vim_minlines : used to set synchronization minlines - g:vim_maxlines : used to set synchronization maxlines - -The g:vimembedscript option allows for somewhat faster loading of syntax -highlighting for vim scripts at the expense of supporting syntax highlighting -for external scripting languages (currently perl, python, ruby, and tcl). - - g:vimembedscript == 1 (default) will allow highlighting - g:vimembedscript doesn't exist of supported embedded scripting - languages: perl, python, ruby and - tcl. - - g:vimembedscript == 0 Syntax highlighting for embedded - scripting languages will not be - loaded. - +VIM *vim.vim* *ft-vim-syntax* + *g:vimsyn_minlines* *g:vimsyn_maxlines* +There is a tradeoff between more accurate syntax highlighting versus screen +updating speed. To improve accuracy, you may wish to increase the +g:vimsyn_minlines variable. The g:vimsyn_maxlines variable may be used to +improve screen updating rates (see |:syn-sync| for more on this). > + + g:vimsyn_minlines : used to set synchronization minlines + g:vimsyn_maxlines : used to set synchronization maxlines +< + (g:vim_minlines and g:vim_maxlines are deprecated variants of + these two options) + + *g:vimsyn_embed* +The g:vimsyn_embed option allows users to select what, if any, types of +embedded script highlighting they wish to have. > + + g:vimsyn_embed == 0 : don't embed any scripts + g:vimsyn_embed =~ 'm' : embed mzscheme (but only if vim supports it) + g:vimsyn_embed =~ 'p' : embed perl (but only if vim supports it) + g:vimsyn_embed =~ 'P' : embed python (but only if vim supports it) + g:vimsyn_embed =~ 'r' : embed ruby (but only if vim supports it) + g:vimsyn_embed =~ 't' : embed tcl (but only if vim supports it) +< +By default, g:vimsyn_embed is "mpPr"; ie. syntax/vim.vim will support +highlighting mzscheme, perl, python, and ruby by default. Vim's has("tcl") +test appears to hang vim when tcl is not truly available. Thus, by default, +tcl is not supported for embedding (but those of you who like tcl embedded in +their vim syntax highlighting can simply include it in the g:vimembedscript +option). + *g:vimsyn_folding* + +Some folding is now supported with syntax/vim.vim: > + + g:vimsyn_folding == 0 or doesn't exist: no syntax-based folding + g:vimsyn_folding =~ 'a' : augroups + g:vimsyn_folding =~ 'f' : fold functions + g:vimsyn_folding =~ 'm' : fold mzscheme script + g:vimsyn_folding =~ 'p' : fold perl script + g:vimsyn_folding =~ 'P' : fold python script + g:vimsyn_folding =~ 'r' : fold ruby script + g:vimsyn_folding =~ 't' : fold tcl script + + *g:vimsyn_noerror* Not all error highlighting that syntax/vim.vim does may be correct; VimL is a difficult language to highlight correctly. A way to suppress error -highlighting is to put: > - - let g:vimsyntax_noerror = 1 - -in your |vimrc|. +highlighting is to put the following line in your |vimrc|: > + + let g:vimsyn_noerror = 1 +< XF86CONFIG *xf86conf.vim* *ft-xf86conf-syntax* @@ -3158,7 +3193,7 @@ line break. fold *:syn-fold* -The "fold" argument makes the fold level increased by one for this item. +The "fold" argument makes the fold level increase by one for this item. Example: > :syn region myFold start="{" end="}" transparent fold :syn sync fromstart @@ -3320,7 +3355,7 @@ use another character that is not used i :syntax region String start=+"+ end=+"+ skip=+\\"+ See |pattern| for the explanation of what a pattern is. Syntax patterns are -always interpreted like the 'magic' options is set, no matter what the actual +always interpreted like the 'magic' option is set, no matter what the actual value of 'magic' is. And the patterns are interpreted like the 'l' flag is not included in 'cpoptions'. This was done to make syntax files portable and independent of 'compatible' and 'magic' settings. @@ -3379,6 +3414,8 @@ Notes: - The highlighted area will never be outside of the matched text. - A negative offset for an end pattern may not always work, because the end pattern may be detected when the highlighting should already have stopped. +- Until Vim 7.2 the offsets were counted in bytes instead of characters. This + didn't work well for multi-byte characters. - The start of a match cannot be in a line other than where the pattern matched. This doesn't work: "a\nb"ms=e. You can make the highlighting start in another line, this does work: "a\nb"hs=e. @@ -3500,9 +3537,9 @@ single name. remove={group-name}.. The specified groups are removed from the cluster. -A cluster so defined may be referred to in a contains=.., nextgroup=.., add=.. -or remove=.. list with a "@" prefix. You can also use this notation to -implicitly declare a cluster before specifying its contents. +A cluster so defined may be referred to in a contains=.., containedin=.., +nextgroup=.., add=.. or remove=.. list with a "@" prefix. You can also use +this notation to implicitly declare a cluster before specifying its contents. Example: > :syntax match Thing "# [^#]\+ #" contains=@ThingMembers @@ -4194,7 +4231,7 @@ WildMenu current match in 'wildmenu' com The 'statusline' syntax allows the use of 9 different highlights in the statusline and ruler (via 'rulerformat'). The names are User1 to User9. -For the GUI you can use these groups to set the colors for the menu, +For the GUI you can use the following groups to set the colors for the menu, scrollbars and tooltips. They don't have defaults. This doesn't work for the Win32 GUI. Only three highlight arguments have any effect here: font, guibg, and guifg. diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt --- a/runtime/doc/tagsrch.txt +++ b/runtime/doc/tagsrch.txt @@ -1,4 +1,4 @@ -*tagsrch.txt* For Vim version 7.1. Last change: 2006 Apr 24 +*tagsrch.txt* For Vim version 7.2a. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.1. Last change: 2007 May 12 +*todo.txt* For Vim version 7.2a. Last change: 2008 Jun 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,50 +30,125 @@ be worked on, but only if you sponsor Vi *known-bugs* -------------------- Known bugs and current work ----------------------- -Patch to make virtcol([123, '$']) do the right thing. (Michael Schaap) - -Insert mode completion: CTRL-N and CTRL-P work differently and they both don't -work as expected. (Bernhard Walle, 2007 Feb 27) - -When 'rightleft' is set the completion menu is positioned wrong. (Baha-Eddine -MOKADEM) - -glob() doesn't work correctly with single quotes and 'shell' set to /bin/sh. -(Adri Verhoef, Charles Campbell 2007 Mar 26) - -Splitting quickfix window messes up window layout. (Marius Gedminas, 2007 Apr -25) - -Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 -(Martin Stubenschrott) - ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . - -Making the German sharp s uppercase doesn't work properly: one character less -is uppercased in "gUe". -Also: latin2 has the same character but it isn't uppercased there. +Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23) + +Drawing popup menu isn't quite right when there are double-wide characters. +Yukihiro Nakadaira is working on a solution (2008 Jun 22). Use mb_fix_col(). + +When reallocating cmdline xp_pattern becomes invalid. Move expand_T xpc into +ccline? (Dominique Pelle) + +Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3 +laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1) +Works OK with Vim in an xterm. + +Fix for matchparen HL doesn't work. beep. + +Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun +11) I can't reproduce it. + +Win32: associating a type with Vim doesn't take care of space after a +backslash? (Robert Vibrant, 2008 Jun 5) + +":let &g:tw = 44" sets the local option value. (Cyril Slobin, 2008 Apr 25) + +After using for command line completion after ":ta blah" and getting E33 +(no tags file), further editing the command to e.g., ":echo 'blah'", the +command is not executed. + +When 'bomb' is changed the window title is updated to show/hide a "+", but the +tab page label isn't. (Patrick Texier, 2008 Jun 24) + +Despite adding save_subexpr() this still doesn't work properly: +Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?') +Returns ['12a4', 'aaa', '4aaa'], should be ['12a4', 'aaa', ''] +Backreference not cleared when retrying after \@<= fails? +(Brett Stahlman, 2008 March 8) + +Win32: remote editing fails when the current directory name contains "[". +(Ivan Tishchenko, Liu Yubao) Suggested patch by Chris Lubinski: Avoid +escaping characters where the backslash is not removed later. Asked Chris for +an alternate solution, also for src/ex_getln.c. + +When adding path to 'tags' with a wildcard, it appears only a first match is +used. (Erik Falor, 2008 April 18) Or is it that a wildcard in the file name +is not supported, only in the path? + +The str2special() function doesn't handle multi-byte characters properly. +Patch from Vladimir Vichniakov, 2007 Apr 24. +Should clean up the whole function. Also allow modifiers like ? +find_special_key() also has this problem. + +Problem with 'langmap' parsing. (James Vega, 2008 Jan 27) +Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull, +2008 May 14) + +Problem with CTRL-F. (Charles Campbell, 2008 March 21) +Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c". +'lines' is 54. (2008 March 27) + +Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23) +Works OK when 'cmdheight' is 2. + +The utf class table is missing some entries: + 0x2212, minus sign + 0x2217, star + 0x2500, bar + 0x26ab, circle + +Visual line mode doesn't highlight properly when 'showbreak' is used and the +line doesn't fit. (Dasn, 2008 May 1) + +GUI: In Normal mode can't yank the modeless selection. Make "gy" do this? +Works like CTRL-Y in Command line mode. + +Mac: patch for mouse wheel scroll under Leopard. (Eckehard Berns, 2007 Dec 7) Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is changed or the window is resized. -Mac: Patch for Mac GUI tabline. (Nicolas Weber, 2006 Jul 18, Update 2007 Feb) - New update v6 ~/tmp/guitab.v6.diff (Kyle Wheeler) - -When 'virtualedit' is set a "p" of a block just past the end of the line -inserts before the cursor. (Engelke) +Mac: Patch for configure: remove arch from ruby link args. (Knezevic, 2008 +Mar 5) Alternative: Kazuki Sakamoto, Mar 7. + +":emenu" works with the translated menu name. Should also work with the +untranslated name. Would need to store both the English and the translated +name. Patch by Bjorn Winckler, 2008 Mar 30. + +C't: On utf-8 system, editing file with umlaut through Gnome results in URL +with %nn%nn, which is taken as two characters instead of one. +Try to reproduce at work. + +Patch for redo register. (Ben Schmidt, 2007 Oct 19) +Await response to question to make the register writable. + +Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct +1) + +"vim -O aa aa" gives only one window. (Zdenek Sekera, 2008 Apr 16) + +Including NFA regexp code: +Use "\%#= to set the engine: 0 = automatic, 1 = backtracking, 2 = new. +Useful in tests. +Performance tests: +- ~/vim/test/veryslow.js (file from Daniel Fetchinson) +- ~/vim/test/slowsearch +- ~/vim/test/rgb.vim +- search for a.*e*exn in the vim executable. Go to last line to use + 'hlsearch'. Using Aap to build Vim: add remarks about how to set personal preferences. Example on http://www.calmar.ws/tmp/aap.html -GTK: 'bsdir' doesn't work. Sometimes get a "gtk critical error". -Moved some code to append file name to further down in gui_gtk.c -gui_mch_browse(), but "last" value of 'bsdir' still doesn't work. - -C syntax: "#define x {" The macro should terminate at the end of the line, -not continue in the next line. (Kelvin Lee, 2006 May 24) +Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26) +Bug in using a transparent syntax region. (Hanlen in vim-dev maillist, 2007 +Jul 31) C syntax: {} inside () causes following {} to be highlighted as error. (Michalis Giannakidis, 2006 Jun 1) +When 'diffopt' has "context:0" a single deleted line causes two folds to merge +and mess up syncing. (Austin Jennings, 2008 Jan 31) + Gnome improvements: Edward Catmur, 2007 Jan 7 Also use Save/Discard for other GUIs @@ -82,53 +157,62 @@ New PHP syntax file, use it? (Peter Hodg 'foldcolumn' in modeline applied to wrong window when using a session. (Teemu Likonen, March 19) -Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26) +Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 +by Vissale Neang. (Martin Stubenschrott) +Asked Vissale to make the scripts more friendly for the Vim distribution. +New version received 2008 Jan 6. + +Cheng Fang made javacomplete. (2007 Aug 11) +Asked about latest version: 0.77.1 is on www.vim.org. More AmigaOS4 patches. (Peter Bengtsson, Nov 9) -Add v:searchforward variable. Patch by Yakov Lerner, 2006 Nov 18. - -Redraw problem in loop. (Yakov Lerner, 2006 Sep 7) +globpath() doesn't work as expected. The example shows using 'path', but the +"**8" form and upwards search are not supported. + +Error when cancelling completion menu and auto-formatting. (Tim Weber, 2008 +Apr 17) + +Problem with compound words? (Bert, 2008 May 6) +No warning for when flags are defined after they are used in an affix. + +With Visual selection, "r" and then CTRL-C Visual mode is stopped but the +highlighting is not removed. + +Screen redrawing when continuously updating the buffer and resizing the +terminal. (Yakov Lerner, 2006 Sept 7) Add option settings to help ftplugin. (David Eggum, 2006 Dec 18) -Use new dutch wordlist for spelling? http://www.opentaal.org/ -See remarks from Adri, 2007 Feb 9. +Autoconf problem: when checking for iconv library we may add -L/usr/local/lib, +but when compiling further tests -liconv is added without the -L argument, +that may fail (e.g., sizeof(int)). (Blaine, 2007 Aug 21) When opening quickfix window, disable spell checking? +Popup menu redraw: Instead of first redrawing the text and then drawing the +popup menu over it, first draw the new popup menu, remember its position and +size and then redraw the text, skipping the characters under the popup menu. +This should avoid flicker. Other solution by A.Politz, 2007 Aug 22. + +Spell checking: Add a way to specify punctuation characters. Add the +superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079. + Windows 98: pasting from the clipboard with text from another application has a trailing NUL. (Joachim Hofmann) Perhaps the length specified for CF_TEXT isn't right? -Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for characters -with umlaut. (Joachim Hofmann) toupper_tab[] and tolower_tab[] are not filled -properly? - Completion: Scanning for tags doesn't check for typed key now and then? Hangs for about 5 seconds. Appears to be caused by finding include files with "foo/**" in 'path'. (Kalisiak, 2006 July 15) -Completion: When 'completeopt' has "longest" and there is one match the -message is "back at original" and typing a char doesn't leave completion mode. -(Igor Prischepoff, 2006 Oct 5) - -Completion: When using CTRL-X O and there is only "struct." before the cursor, -typing one char to reduce the matches, then BS completion stops. Should keep -completion if still no less than what we started with. - -Completion: don't stop completion when typing a space when completing full -lines? Also when completing file names? Only stop completion when there are -no matches? -After using BS completion only stops when typing a space. Many people want to -stop at non-word characters, e.g., '('. Add an option for this? Or check -vim_iswordc() before calling ins_compl_addleader()? - -searchpos() doesn't use match under cursor at start of line. (Viktor -Kojouharov, 2006 Nov 16) - -When FEAT_BYTEOFF is defined but FEAT_NETBEANS_INTG is not compiling fails. -Add FEAT_BYTEOFF to the check at line 1180 in feature.h +When the file name has parenthesis, e.g., "foo (bar).txt", ":!ls '%'" has the +parenthesis escaped but not the space. That's inconsistent. Either escape +neither or both. No escaping might be best, because it doesn't depend on +particularities of the shell. (Zvi Har'El, 2007 Nov 10) (Teemu Likonen, 2008 +Jun 3) +However, for backwards compatibility escaping might be necessary. Check if +the user put quotes around the expanded item? Color for cUserLabel should differ from case label, so that a mistake in a switch list is noticed: @@ -138,18 +222,27 @@ switch list is noticed: foobar: } -":s" command removes combining characters. (Ron Aaron, 2006 May 17, 2006 Dec 7) - Look at http://www.gtk-server.org/ . It has a Vim script implementation. +Netbeans problem. Use "nc -l 127.0.0.1 55555" for the server, then run gvim +with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then +go to Insert mode and add a few lines. Then backspacing every other time +moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25) + +Redraw problem when appending digraph causes line to wrap. (James Vega, 2007 +Sep 18) + Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov, 2007 Feb 8) Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15) Sutcliffe says it works well. + Update 2007 May 22 for Vim 7.1 Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2) +Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7) + Win32: XPM support only works with path without spaces. Patch by Mathias Michaelis, 2006 Jun 9. Another patch for more path names, 2006 May 31. New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other @@ -166,12 +259,14 @@ Win16: include patches to make Win16 ver Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis, 2007 Feb 18) +Patch by Alex Dobrynin, 2007 Jun 3. Also fixes other scroll wheel problems. Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages label. (Tsakiridis, 2007 Feb 18) -Win32: remote editing doesn't work when the current directory name contains -"[]". (Ivan Tishchenko, 2007 March 1) +Win32: using "gvim --remote-tab-silent fname" sometimes gives an empty screen +with the more prompt. Caused by setting the guitablabel? (Thomas Michael +Engelke, 2007 Dec 20 - 2008 Jan 17) Win64: diff.exe crashes on Win64. (Julianne Bailey, 2006 Dec 12) Build another diff.exe somehow? @@ -179,48 +274,46 @@ Build another diff.exe somehow? Win64: Seek error in swap file for a very big file (3 Gbyte). Check storing pointer in long and seek offset in 64 bit var. -When doing "gvim --remote-tab foo" while gvim is minimized the tab pages line -only shows the current label, not the others. +Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17) + +Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph +Ebersbach, 2008 Feb 1) + +Menu item that does "xxd -r" doesn't work when 'fileencoding' is utf-16. +Check for this and use iconv? (Edward L. Fox, 2007 Sep 12) +Does the conversion in the other direction work when 'filenecodings' is set +properly? + +Cursor displayed in the wrong position when using 'numberwidth'. (James Vega, +2007 Jun 21) + +When $VAR contains a backslash expand('$VAR') removes it. (Teemu Likonen, 2008 +Jun 18) + +If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work. + +F1 - F4 in an xterm produce a different escape sequence when used with a +modifier key. Need to catch three different sequences. Use K_ZF1, like +K_ZHOME? (Dickey, 2007 Dec 2) Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16) -When setting 'keymap' twice the b:keymap_name variable isn't set. (Milan -Berta, 2007 Mar 9) Has something to do with 'iminsert'. - -Problem with CursorHoldI? (Max Dyckhoff, 2006 Nov 10) - UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear to work. (Tony Mechelynck, 2007 March 2) -The str2special() function doesn't handle multi-byte characters properly. -Patch from Vladimir Vichniakov, 2007 Apr 24. -find_special_key() also has this problem. - In debug mode, using CTRL-R = to evaluate a function causes stepping through the function. (Hari Krishna Dara, 2006 Jun 28) -":let &shiftwidth = 'asdf'" doesn't produce an error message. - C++ indenting wrong with "=". (James Kanze, 2007 Jan 26) -"zug" reports wrong file. problem with Namebuff? (Lawrence Kesteloot, 2006 Sep -10) - ":lockvar" should use copyID to avoid endless loop. -Patch to use xterm mouse codes for screen. (Micah Cowan, 2007 May 8) +When using --remote-silent and the file name matches 'wildignore' get an E479 +error. without --remoete-silent it works fine. (Ben Fritz, 2008 Jun 20) Gvim: dialog for closing Vim should check if Vim is busy writing a file. Then use a different dialog: "busy saving, really quit? yes / no". -Win32: editing remote file d:\a[1]\aa.txt doesn't work. (Liu Yubao, 2006 May -29) - -"zw" doesn't appear to work. (Luis A Florit, 2006 Jun 23, 24) - -"dw" in a line with one character deletes the line. Vi and nvi don't do this. -Is it intentional or not? (Kjell Arne Rekaa) - Check other interfaces for changing curbuf in a wrong way. Patch like for if_ruby.c. @@ -232,26 +325,24 @@ character, don't offer "ignore" and "add The need_fileinfo flag is messy. Instead make the message right away and put it in keep_msg? -More-prompt is skipped when doing this; (Randall W. Morris, Jun 17) - :au - - b - - Editing a file remotely that matches 'wildignore' results in a "no match" error. Should only happen when there are wildards, not when giving the file name literally, and esp. if there is only one name. -When 'expandtab' is set then a Tab copied for 'copyindent' is expanded to -spaces, even when 'preserveindent' is set. (Alexei Alexandrov, Mar 7) - Test 61 fails sometimes. This is a timing problem: "sleep 2" sometimes takes longer than 2 seconds. +Changing 'guifont' in the console causes an uneccessary redraw. + +"vim -C" often has 'nocompatible', because it's set in some startup script. +Set 'compatible' after startup is done? Patch by James Vega, 2008 Feb 7. + VMS: while editing a file found in complex, Vim will save file into the first directory of the path and not to the original location of the file. (Zoltan Arpadffy) +VMS: VFC files are in some cases truncated during reading (Zoltan Arpadffy) + input() completion should not insert a backslash to escape a space in a file name? @@ -260,10 +351,6 @@ element. setpos() could accept an optio Ruby completion is insecure. Can this be fixed? -":confirm w" does give a prompt when 'readonly' is set, but not when the file -permissions are read-only. Both can be overruled by ":w!" thus it would be -logical to get a prompt for both. (Michael Schaap) - When 'backupskip' is set from $TEMP special characters need to be escaped. (patch by Grembowietz, 2007 Feb 26, not quite right) Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\(" @@ -278,9 +365,10 @@ Substituting an area with a line break w the Visual area. Can this be fixed? (James Vega, 2006 Sept 15) Windows installer could add a "open in new tab of existing Vim" menu entry. - -:s/e/E/l not only lists but also shows line number. Is that right? -(Yakov Lerner, 2006 Jul 27) +Gvimext: patch to add "Edit with single Vim &tabbed" menu entry. +Just have two choices, always using one Vim and selecting between using an +argument list or opening each file in a separate tab. +(Erik Falor, 2008 May 21) GUI: When combining fg en bg make sure they are not equal. @@ -289,22 +377,27 @@ Jun 5) Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21) -When 'bomb' is set or reset the file should be considered modified. (Tony -Mechelynck) Handle like 'endofline'. - Add an option to specify the character to use when a double-width character is moved to the next line. Default '>', set to a space to blank it out. Check that char is single width when it's set (compare with 'listchars'). -Update main.aap for installing on the Mac. - The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3) Session file creation: 'autochdir' causes trouble. Keep it off until after loading all files. -C completion: doesn't work after aa[0]->, where aa is an array of structures. -(W. de Hoog, 2006 Aug 12) +When showing a diff between a non-existant file and an existing one, with the +cursor in the empty buffer, the other buffer only shows the last line. Change +the "insert" into a change from one line to many? (Yakov Lerner, 2008 May 27) + +Add autocommand for when a tabpage is being closed. Also for when a tab page +has been created. + +Using ":make" blocks Vim. Allow running one make in the background (if the +shell supports it), catch errors in a file and update the error list on the +fly. A bit like "!make > file&" and repeating ":cf file". ":bgmake", +background make. ":bgcancel" interrupts it. +A.Politz may work on this. The spellfile plugin checks for a writable "spell" directory. A user may have a writable runtime directory without a "spell" directory, it could be created @@ -327,6 +420,13 @@ previous version. For Aap: include a config.arg.example file with hints how to use config.arg. +Command line completion when 'cmdheight' is maximum and 'wildmenu' is set, +only one buffer line displayed, causes display errors. + +Completing with 'wildmenu' and using and to move through directory +tree stops unexpectedly when using ":cd " and entering a directory that +doesn't contain other directories. + Linux distributions: - Suggest compiling xterm with --enable-tcap-query, so that nr of colors is known to Vim. 88 colors instead of 16 works better. See ":help @@ -348,9 +448,6 @@ Accessing file#var in a function should When ":cn" moves to an error in the same line the message isn't shortened. Only skip shortening for ":cc"? -Win32: The matchparen plugin doesn't update the match when scrolling with the -mouse wheel. (Ilya Bobir, 2006 Jun 27) - Write "making vim work better" for the docs (mostly pointers): *nice* - sourcing $VIMRUNTIME/vimrc_example.vim - setting 'mouse' to "a" @@ -362,6 +459,15 @@ Campbell 2006 Jul 06. Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6) +":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim +Chase) + +A custom completion function in a ":command" cannot be a Funcref. (Andy +Wokula, 2007 Aug 25) + +Problem with using :redir in user command completion function? (Hari Krishna +Dara, 2006 June 21) + GTK: When maximizing Vim the result is slightly smaller, the filler border is not there, and the "maximize" button is still there. Clicking it again does give a maximized window. (Darren Hiebert) @@ -374,21 +480,20 @@ GDK_WINDOW_STATE_MAXIMIZED) and set it a Another resizing problem when setting 'columns' and 'lines' to a very large number. (Tony Mechelynck, 2007 Feb 6) -Problem with using :redir in user command completion function? (Hari Krishna -Dara, 2006 June 21) +GTK: when using the -geom argument with an offset from the right edge and the +size is smaller than the default, the Vim window is not positioned properly. + +GTK: when editing a directory with the netrw plugin in a terminal and doing +":gui" Vim hangs in obtaining the selection. Workaround patch 7.1.209 is a +hack (timeout after 3 seconds). Why don't we get the selection here? After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center the cursor line. It works OK after some other commands. -Screen redrawing when continuously updating the buffer and resizing the -terminal. (Yakov Lerner, 2006 Sept 7) - Win32: Is it possible to have both postscript and Win32 printing? Does multi-byte printing with ":hardcopy" work? Add remark in documentation about this. -'thesaurus' doesn't work when 'infercase' is set. (Mohsin, 2006 May 30) - There should be something about spell checking in the user manual. Check: Running Vim in a console and still having connect to the X server for @@ -401,28 +506,22 @@ Jul 26, Gary Johnson) In the Netbeans interface add a "vimeval" function, so that the other side can check the result of has("patch13"). -":py" asks for an argument, ":py asd" then gives the error that ":py" isn't -implemented. Should already happen for ":py". - Add command modifier that skips wildcard expansion, so that you don't need to put backslashes before special chars, only for white space. -Win32 GUI: confirm() with zero default should not have a choice selected. - Win32: When the GUI tab pages line is displayed Vim jumps from the secondary to the primary monitor. (Afton Lewis, 2007 Mar 9) Old resizing problem? -GTK GUI: When the completion popup menu is used scrolling another window by -the scrollbar is OK, but using the scroll wheel it behaves line . - -"cit" used on deletes . Should not delete anything and start -insertion, like "ci'" does on "". (Michal Bozon) - -Allow more than 3 ":match" items. +GTK: when the Tab pages bar appears or disappears while the window is +maximized the window is no longer maximized. Patch that has some idea but +doesn't work from Geoffrey Antos, 2008 May 5. The magic clipboard format "VimClipboard2" appears in several places. Should be only one. +"vim -C" often has 'nocompatible', because it's set somewhere in a startup +script. Do "set compatible" after startup? + It's difficult to debug numbered functions (function in a Dictionary). Print the function name before resolving it to a number? let d = {} @@ -433,62 +532,76 @@ the function name before resolving it to Add a mark for the other end of the Visual area (VIsual pos). '< and '> are only set after Visual moded is ended. +Also add a variable for the Visual mode. So that this mode and '< '> can be +used to set what "gv" selects. (Ben Schmidt) + +Win32: When running ":make" and 'encoding' differs from the system locale, the +output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei Wu) +Should we use 'termencoding' for this? + +Win32, NTFS: When editing an specific infostream directly and 'backupcopy' is +"auto" should detect this situation and work like 'backupcopy' is "yes". File +name is something like "c:\path\foo.txt:bar", includes a colon. (Alex +Jakushev, 2008 Feb 1) Small problem displaying diff filler line when opening windows with a script. (David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 ) -When pattern for ":sort" is empty, use last search pattern. Allows trying out -the pattern first. (Brian McKee) - Is it allowed that 'backupext' is empty? Problems when backup is in same dir as original file? If it's OK don't compare with 'patchmode'. (Thierry Closen) Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007 Jan 1) -Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update Apr 28) - -Patch for improving regexp speed by not freeing memory. (Alexei Alexandrov, -2007 Feb 6) +Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr +23) + +":mkview" isn't called with the right buffer argument. Happens when using +tabs and the autocommand "autocmd BufWinLeave * mkview". (James Vega, 2007 +Jun 18) xterm should be able to pass focus changes to Vim, so that Vim can check for buffers that changed. Perhaps in misc.c, function selectwindow(). Xterm 224 supports it! -Omni completion takes the wrong structure for variable arguments. (Bill -McCarthy, 2007 Feb 18) - When completing from another file that uses a different encoding completion text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is latin1. Example from Gombault Damien, 2007 Mar 24. -Completing ":echohl" argument should include "None". (Ori Avtalion) - - -Vim 7.2: -- Search offset doesn't work for multibyte character. Patch from Yukihiro - Nakadaira, 2006 Jul 18. - Changes the offset from counting bytes to counting characters. -- Rename the tutor files from tutor.gr.* to tutor.el.*. Greece vs Greek. - Make all tutor files available in utf-8. -- Remove ! for ":cgetfile" and ":lgetfile". (patch from Yegappan Lakshmanan, - 2007 Mar 9) +Is it possible to use "foo#var" instead of "g:foo#var" inside a function? + +Syntax HL: When using "nextgroup" and the group has an empty match, there is +no search at that position for another match. (Lukas Mai, 2008 April 11) + +Spell menu: When using the Popup menu to select a replacement word, +":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use "z=" +somehow? Or use a new function. + +In gvim the backspace key produces a backspace character, but on Linux the +VERASE key is Delete. Set VERASE to Backspace? (patch by Stephane Chazelas, +2007 Oct 16) + +TermResponse autocommand isn't always triggered when using vimdiff. (Aron +Griffis, 2007 Sep 19) + +Patch for supporting #rrggbb in color terminals. (Matt Wozniski) + +Create a gvimtutor.1 file and change Makefiles to install it. + + +Vim 7.3: +- Add patch for 'relativenumber' option? Markus Heidelberg, 2008 Feb 21 - Add blowfish encryption. Openssl has an implementation. Also by Paul Kocher (LGPL), close to original. Mohsin also has some ideas. Take four bytes and turn them into unsigned to avoid byte-order problems. Need to buffer up to 7 bytes to align on 8 byte boundaries. -- Rename doc/sql.vim doc/ft_sql.vim. -- Change "command-line" to "[Command Line]" for the command line buffer - name in ex_window(). -- Move including fcntl.h to vim.h, before O_NOFOLLOW, and remove it from all - .c files. - ":{range}source": source the lines from the file. You can already yank lines and use :@" to execute them. Most of do_source() would not be used, need a new function. It's easy when not doing breakpoints or profiling. -Patches: +More patches: - Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3) - Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct 21) @@ -503,7 +616,8 @@ Patches: - ml_append_string(): efficiently append to an existing line. (Brad Beveridge, 2006 Aug 26) Use in some situations, e.g., when pasting a character at a time? -- gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2006 Sep 8) +- gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2007 Sep 13, + 2008 Jun 12) - recognize hex numbers better. (Mark Manning, 2006 Sep 13) @@ -520,7 +634,7 @@ 9 Mac unicode patch (Da Woon Jung, Eck - when 'macatsui' is off should we always convert to "macroman" and ignore 'termencoding'? 9 HTML indenting can be slow. Caused by using searchpair(). Can search() - be used instead? + be used instead? A.Politz is looking into a solution. 8 Win32: Add minidump generation. (George Reilly, 2006 Apr 24) 8 Add ":n" to fnamemodify(): normalize path, remove "../" when possible. Aric Blumer has a patch for this. He will update the patch for 6.3. @@ -528,8 +642,7 @@ 7 Completion of network shares, patch Update 2004 Sep 6. How does this work? Missing comments. - Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav - Smilauer, 2004 Sep 13, fix Oct 31) - Asked for improvements 2004 Dec 20. + Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30) 8 Add a few more command names to the menus. Patch from Jiri Brezina (28 feb 2002). Will mess the translations... 7 ATTENTION dialog choices are more logical when "Delete it' appears @@ -566,7 +679,9 @@ 8 Add functions: Tcl implementation ~/vim/HierAssist/ ) taglist() add argument to specify maximum number of matches. useful for interactive things or completion. -7 Make globpath() also work with upwards search. (Brian Medley) + col('^') column of first non-white character. + Can use "len(substitute(getline('.'), '\S.*', '', '')) + + 1", but that's ugly. 7 Add patch from Benoit Cerrina to integrate Vim and Perl functions better. Now also works for Ruby (2001 Nov 10) - Patch from Herculano de Lima Einloft Neto for better formatting of the @@ -727,8 +842,6 @@ 8 Win32: When clicking on the gvim tit console, go back to Vim and click "reload" in the dialog for the changed file: Window moves with the cursor! Put focus event in input buffer and let generic Vim code handle it? -8 When activating the Vim window with mouse click, don't move cursor to - mouse position. Catch WM_MOUSEACTIVATE. (Luevelsmeyer) 8 Win32: When mouse is hidden and in the toolbar, moving it won't make it appear. (Sami Salonen) 8 Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that @@ -1069,10 +1182,10 @@ 8 Handling of non-fixed width fonts is "Small" problems: +- Can't disable terminal flow control, to enable the use of CTRL-S and + CTRL-Q. Add an option for it? - When using e_secure in do_one_cmd() mention the command being executed, otherwise it's not clear where it comes from. -8 When disabling FEAT_CMDL_COMPL compilation fails. Would need to avoid - using parse_compl_arg() in eval.c and uc_scan_attr(). 9 For Turkish vim_tolower() and vim_toupper() also need to use utf_ functions for characters below 0x80. (Sertacyildiz) 9 When the last edited file is a help file, using '0 in a new Vim doesn't @@ -1133,7 +1246,6 @@ 7 When 'ttimeoutlen' is 10 and 'timeou delay should not be interpreted as a keycode. (Hans Ginzel) 7 ":botright 1 new" twice causes all window heights to be changed. Make the bottom window only bigger as much as needed. -7 "[p" doesn't work in Visual mode. (David Brown) 7 The Cygwin and MingW makefiles define "PC", but it's not used anywhere. Remove? (Dan Sharp) 9 User commands use the context of the script they were defined in. This @@ -1144,9 +1256,6 @@ 9 User commands use the context of the 8 The Japanese message translations for MS-Windows are called ja.sjis.po, but they use encoding cp932. Rename the file and check that it still works. -9 When a syntax region does not use "keepend" and a contained item does use - "extend", this makes the outer region stop at the end of the contained - region. (Lutz Eymers) Another example Nov 14 2002. 8 A very long message in confirm() can't be quit. Make this possible with CTRL-C. 7 clip_x11_own_selection() uses CurrentTime, that is not allowed. VNC X @@ -1163,8 +1272,6 @@ 8 'hkmap' should probably be global-lo 9 When "$" is in 'cpoptions' and folding is active, a "C" command changes the folds and resets w_lines_valid. The display updating doesn't work then. (Pritesh Mistry) -8 ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the "!" as a - flag to to the command. Same for ":snomagic". (Johan Spetz) 8 Using ":s" in a function changes the previous replacement string. Save "old_sub" in save_search_patterns()? 8 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+" @@ -1176,8 +1283,6 @@ 7 When using "daw" on the last word in 9 When getting focus while writing a large file, could warn for this file being changed outside of Vim. Avoid checking this while the file is being written. -9 The "Error detected while processing modelines" message should have an - error number. 7 The message in bt_dontwrite_msg() could be clearer. 8 The script ID that is stored with an option and displayed with ":verbose set" isn't reset when the option is set internally. For example when @@ -1517,6 +1622,7 @@ 7 MS-Windows: When a wrong command is look at the help for 'winaltkeys'. 7 Add a help.vim plugin that maps to jump to the next tag in || and (and ) to the previous tag. + Patch by Balazs Kezes, 2007 Dec 30. Remark from A. Politz. - Check text editor compendium for vi and Vim remarks. @@ -1610,6 +1716,8 @@ Spell checking: - Considering Hunspell 1.1.4: What does MAXNGRAMSUGS do? Is COMPLEXPREFIXES necessary when we have flags for affixes? +- Support spelling words in CamelCase as if they were two separate words. + Requires some option to enable it. (Timothy Knox) - There is no Finnish spell checking file. For openoffic Voikko is now used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/ (Teemu Likonen) @@ -1675,6 +1783,8 @@ 8 Charles Campbell asks for method to http://spellchecker.mozdev.org/source.html http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/ author: Kevin Hendricks +8 It is currently not possible to mark "can not" as rare, because "can" and + "not" are good words. Find a way to let "rare" overrule "good"? 8 Make "en-rare" spell file? Ask Charles Campbell. 8 The English dictionaries for different regions are not consistent in their use of words with a dash. @@ -1686,6 +1796,8 @@ 8 Add hl groups to 'spelllang'? Diff mode: +9 Instead invoking an external diff program, use builtin code. One can be + found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c 8 Use diff mode to show the changes made in a buffer (compared to the file). Use an unnamed buffer, like doing: new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis @@ -1767,6 +1879,9 @@ 8 The quickfix file is read without co More generic solution: support a filter (e.g., by calling a function). 8 When a file was converted from 'fileencoding' to 'encoding', a tag search should also do this on the search pattern. (Andrzej M. Ostruszka) +8 When filtering changes the encoding 'fileencoding' may not work. E.g., + when using xxd and 'fileencoding' is "utf-16". Add an option to set a + different fileencoding for filter output? 7 When converting a file fails, mention which byte could not be converted, so that the user can fix the problem. 8 Add configure option to be able to disable using the iconv library. (Udo @@ -1775,7 +1890,14 @@ 9 'aleph' should be set to 1488 for Un 8 Should add test for using various commands with multi-byte characters. 8 'infercase' doesn't work with multi-byte characters. 8 toupper() function doesn't handle byte count changes. -7 When searching, should order of composing characters be ignored? +7 Searching and composing characters: + When searching, should order of composing characters be ignored? + Add special item to match with a composing character, zero-width, so that + one can replace a base character and keep the composing characters. + Add a special item to match with a composing character, so that composing + characters can be manipulated. + Add a modifier to ignore composing characters, only compare base + characters. Useful for Hebrew (Ron Aaron) 8 Should implement 'delcombine' for command line editing. 8 Detect overlong UTF-8 sequences and handle them like illegal bytes. 8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte @@ -2003,6 +2125,8 @@ 7 SpecialKey highlighting overrules sy Built-in script language: +8 Make the filename and line number available to script functions, so that + they can give useful debugging info. The whole call stack would be ideal. 7 Execute a function with standard option values. No need to save and restore option values. Especially useful for new options. Problem: how to avoid a performance penalty (esp. for string options)? @@ -2067,6 +2191,8 @@ 8 Add functions: shorten(fname) shorten a file name, like home_replace() perl(cmd) call Perl and return string inputrl() like input() but right-to-left + typed() return the characters typed and consumed (to + find out what happened) virtualmode() add argument to obtain whether "$" was used in Visual block mode. getacp() Win32: get codepage (Glenn Maynard) @@ -2250,8 +2376,6 @@ 9 Check handling of overwriting of mes When switching to another file and screen scrolls because of the long message and return must be typed, don't scroll the screen back before redrawing. -7 Add an option, which is a regexp, that disables warning messages which - match that regexp (Tsirkin). 8 When address range is wrong you only get "Invalid range". Be a bit more specific: Negative, beyond last line, reverse range? Include the text. 8 Make it possible to ignore errors for a moment ('errorignore'?). Another @@ -2661,6 +2785,8 @@ 8 Add completion of previously inserte Requires remembering a number of insertions. 8 Add 'f' flag to 'complete': Expand file names. Also apply 'complete' to whole line completion. +- Add a flag to 'complete' to only scan local header files, not system + header files. (Andri Moell) - Make it possible to search include files in several places. Use the 'path' option? Can this be done with the dictionary completion (use wildcards in the file name)? @@ -2720,11 +2846,14 @@ 8 Custom completion of user commands c Command line completion: +8 Completing ":r ~br" should find matching user names. 8 Change expand_interactively into a flag that is passed as an argument. 8 With command line completion after '%' and '#', expand current/alternate file name, so it can be edited. Also with modifiers, such as "%:h". 8 When completing command names, either sort them on the long name, or list them with the optional part inside []. +8 Add an option to ignore case when doing interactive completion. So that + ":e file" also lists "Filelist" (sorted after matching case matches). 7 Completion of ":map x ": fill in the current mapping, so that it can be edited. (Sven Guckes) - For 'wildmenu': Simplify "../bar" when possible. @@ -2769,6 +2898,9 @@ 8 When using CTRL-O in Insert mode, th Perhaps it can be allowed a single time, to be able to do "10axyz". Nesting this further is confusing. ":map 5aabc" works only once from Insert mode. +8 When using CTRL-G CTRL-O do like CTRL-\ CTRL-O, but when returning with + the cursor in the same position and the text didn't change continue the + same change, so that "." repeats the whole insert. 7 Use CTRL-G to repeat what follows. Useful for inserting a character multiple times or repeating CTRL-Y. 7 Use 'matchpairs' for 'showmatch': When inserting a character check if it @@ -2790,7 +2922,14 @@ 7 Use 'matchpairs' for 'showmatch': Wh 'cindent', 'smartindent': +9 ") :" confuses continuation line: (Colin Bennett, 2007 Dec 14) + cout << "a" + << ") :" + << "y"; 8 Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17) +8 Why are continuation lines outside of a {} block not indented? E.g.: + long_type foo = + value; 8 Java: Inside an anonymous class, after an "else" or "try" the indent is too small. (Vincent Bergbauer) Problem of using {} inside (), 'cindent' doesn't work then. @@ -2893,6 +3032,7 @@ 7 Allow specifying it separately for T Text objects: +8 Add text object for fold, so that it can be yanked when it's open. 8 Add test script for text object commands "aw", "iW", etc. 8 Add text object for part of a CamelHumpedWord and under_scored_word. (Scott Graham) "ac" and "au"? @@ -2903,7 +3043,8 @@ 8 Add a text object for any kind of qu 8 Add text object for any kind of parens, also multi-byte ones. 7 Add text object for current search pattern: "a/" and "i/". Makes it possible to turn text highlighted for 'hlsearch' into a Visual area. -8 Add a way to make an ":omap" for a user-defined text object. +8 Add a way to make an ":omap" for a user-defined text object. Requires + changing the starting position in oap->start. 8 Add "gp" and "gP" commands: insert text and make sure there is a single space before it, unless at the start of the line, and after it, unless at the end of the line or before a ".". @@ -2990,6 +3131,7 @@ More advanced repeating commands: - Add "." command for visual mode: redo last visual command (e.g. ":fmt"). 7 Repeating "d:{cmd}" with "." doesn't work. (Benji Fisher) Somehow remember the command line so that it can be repeated? +- Add "gn": repeat last movement command. Including count. - Add "." command after operator: repeat last command of same operator. E.g. "c." will repeat last change, also when "x" used since then (Webb). "y." will repeat last yank. @@ -3136,24 +3278,29 @@ 7 Recognize "[a-z]", "[0-9]", etc. and "\d". 7 Add a way to specify characters in or form. Could be \%. -8 Flags that apply to the whole pattern. - This works for all places where a regexp is used. - Add "\q" to not store this pattern as the last search pattern? 8 Add an argument after ":s/pat/str/" for a range of matches. For example, ":s/pat/str/#3-4" to replace only the third and fourth "pat" in a line. +8 When 'iskeyword' is changed the matches from 'hlsearch' may change. (Benji + Fisher) redraw if some options are set while 'hlsearch' is set? 8 Add an option not to use 'hlsearch' highlighting for ":s" and ":g" commands. (Kahn) It would work like ":noh" is used after that command. Also: An extra flag to do this once, and a flag to keep the existing search pattern. +- Make 'hlsearch' a local/global option, so that it can be disabled in some + of the windows. - Add \%h{group-name}; to search for a specific highlight group. Add \%s{syntax-group}; to search for a specific syntax group. - Support Perl regexp. Use PCRE (Perl Compatible RE) package. (Shade) Or translate the pattern to a Vim one. Don't switch on with an option for typed commands/mappings/functions, it's too confusing. Use "\@@" in the pattern, to avoid incompatibilities. -7 Add POSIX regexp, like Nvi, with 'extended' option? It's like very-magic. +8 Add a way to access the last substitute text, what is used for ":s//~/". + Can't use the ~ register, it's already used for drag & drop. - Remember flags for backreferenced items, so that "*" can be used after it. Check with "\(\S\)\1\{3}". (Hemmerling) +8 Flags that apply to the whole pattern. + This works for all places where a regexp is used. + Add "\q" to not store this pattern as the last search pattern? - Add flags to search command (also for ":s"?): i ignore case I use case @@ -3206,11 +3353,18 @@ 7 Add ":iselect", a combination of ":i Undo: +9 After undo/redo, in the message show whether the buffer is modified or + not. 8 Undo tree: visually show the tree somehow (Damian Conway) Show only the leaves, indicating how many changed from the branch and the timestamp? Put branch with most recent change on the left, older changes get more indent? +8 See ":e" as a change operation, find the changes and add them to the + undo info. Also be able to undo the "Reload file" choice for when a file + was changed outside of Vim. + Would require doing a diff between the buffer text and the file and + storing the differences. 8 Search for pattern in undo tree, showing when it happened and the text state, so that you can jump to it. - Persistent undo: store undo in a file. @@ -3218,8 +3372,6 @@ 8 Search for pattern in undo tree, sho before some time/date can be flushed. 'undopersist' gives maximum time to keep undo: "3h", "1d", "2w", "1y", etc. For the file use dot and extension: ".filename.un~" (like swapfile but "un~" instead of "swp"). -8 See ":e" as a change operation, find the changes and add them to the - undo info. Needed for when an external tool changes the file. - Make it possible to undo all the commands from a mapping, including a trailing unfinished command, e.g. for ":map K iX^[r". - When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not @@ -3318,6 +3470,7 @@ 8 Add argument to keep the list of buf name. (Schild) 8 Keep the last used directory of the file browser (File/Open menu). 8 Remember the last used register for "@@". +8 Remember the redo buffer, so that "." works after restarting. 8 Remember a list of last accessed files. To be used in the "File.Open Recent" menu. Default is to remember 10 files or so. Also remember which files have been read and written. How to display @@ -3336,6 +3489,11 @@ Modelines: 8 Before trying to execute a modeline, check that it looks like one (valid option names). If it's very wrong, silently ignore it. Ignore a line that starts with "Subject: ". +- Add an option to whitelist options that are allowed in a modeline. This + would allow careful users to use modelines, e.g., only allowing + 'shiftwidth'. +- Add an option to let modelines only set local options, not global ones + such as 'encoding'. - When an option value is coming from a modeline, do not carry it over to another edited file? Would need to remember the value from before the modeline setting. @@ -3417,6 +3575,7 @@ 7 When starting Vim several times, ins Marks: +8 Add ten marks for last changed files: ':0, ':1, etc. One mark per file. 8 When cursor is first moved because of scrolling, set a mark at this position. (Rimon Barr) Use '-. 8 Add a command to jump to a mark and make the motion inclusive. g'm and g`m? @@ -3520,7 +3679,6 @@ 7 Be able to set a 'mouseshape' for th 8 Add 'mouse' flag, which sets a behavior like Visual mode, but automatic yanking at the button-up event. Or like Select mode, but typing gets you out of Select mode, instead of replacing the text. (Bhaskar) -7 Checkout sysmouse() for FreeBSD console mouse support. - Implement mouse support for the Amiga console. - Using right mouse button to extend a blockwise selection should attach to the nearest corner of the rectangle (four possible corners). @@ -3575,6 +3733,8 @@ 7 Make the debug mode history availabl Various improvements: +8 ":sign unplace * file={filename}" should work. Also: ":sign unplace * + buffer={bufnr}". So one can remove all signs for one file/buffer. 7 Add plugins for formatting? Should be able to make a choice depending on the language of a file (English/Korean/Japanese/etc.). Setting the 'langformat' option to "chinese" would load the @@ -3582,6 +3742,7 @@ 7 Add plugins for formatting? Should The plugin would set 'formatexpr' and define the function being called. Edward L. Fox explains how it should be done for most Asian languages. (2005 Nov 24) + Alternative: patch for utf-8 line breaking. (Yongwei Wu, 2008 Feb 23) 7 [t to move to previous xml/html tag (like "vatov"), ]t to move to next ("vatv"). 7 [< to move to previous xml/html tag, e.g., previous
  • . ]< to move to @@ -3601,6 +3762,8 @@ 6 Python interface: add vim.message() 7 Support using ":vert" with User commands. Add expandable items . Do the same for ":browse" and ":confirm"? For ":silent" and ":debug" apply to the whole user command. + More general: need a way to access command modifiers in a user command. + Assign them to a v: variable? 7 Allow a window not to have a statusline. Makes it possible to use a window as a buffer-tab selection. 7 Add an invisible buffer which can be edited. For use in scripts that want diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt --- a/runtime/doc/usr_04.txt +++ b/runtime/doc/usr_04.txt @@ -1,4 +1,4 @@ -*usr_04.txt* For Vim version 7.1. Last change: 2006 Jun 21 +*usr_04.txt* For Vim version 7.2a. Last change: 2006 Jun 21 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt --- a/runtime/doc/usr_05.txt +++ b/runtime/doc/usr_05.txt @@ -1,4 +1,4 @@ -*usr_05.txt* For Vim version 7.1. Last change: 2007 May 11 +*usr_05.txt* For Vim version 7.2a. Last change: 2007 May 11 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_06.txt b/runtime/doc/usr_06.txt --- a/runtime/doc/usr_06.txt +++ b/runtime/doc/usr_06.txt @@ -1,4 +1,4 @@ -*usr_06.txt* For Vim version 7.1. Last change: 2006 Apr 24 +*usr_06.txt* For Vim version 7.2a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt --- a/runtime/doc/usr_07.txt +++ b/runtime/doc/usr_07.txt @@ -1,4 +1,4 @@ -*usr_07.txt* For Vim version 7.1. Last change: 2006 Apr 24 +*usr_07.txt* For Vim version 7.2a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt --- a/runtime/doc/usr_12.txt +++ b/runtime/doc/usr_12.txt @@ -1,4 +1,4 @@ -*usr_12.txt* For Vim version 7.1. Last change: 2007 May 11 +*usr_12.txt* For Vim version 7.2a. Last change: 2007 May 11 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_20.txt b/runtime/doc/usr_20.txt --- a/runtime/doc/usr_20.txt +++ b/runtime/doc/usr_20.txt @@ -1,4 +1,4 @@ -*usr_20.txt* For Vim version 7.1. Last change: 2006 Apr 24 +*usr_20.txt* For Vim version 7.2a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt --- a/runtime/doc/usr_30.txt +++ b/runtime/doc/usr_30.txt @@ -1,4 +1,4 @@ -*usr_30.txt* For Vim version 7.1. Last change: 2007 Apr 22 +*usr_30.txt* For Vim version 7.2a. Last change: 2007 Nov 10 VIM USER MANUAL - by Bram Moolenaar @@ -200,14 +200,14 @@ Then have Vim read this file with: > Jumping to errors will work like with the ":make" command. ============================================================================== -*30.2* Indenting C files +*30.2* Indenting C style text A program is much easier to understand when the lines have been properly -indented. Vim offers various ways to make this less work. - For C programs set the 'cindent' option. Vim knows a lot about C programs -and will try very hard to automatically set the indent for you. Set the -'shiftwidth' option to the amount of spaces you want for a deeper level. Four -spaces will work fine. One ":set" command will do it: > +indented. Vim offers various ways to make this less work. For C or C style +programs like Java or C++, set the 'cindent' option. Vim knows a lot about C +programs and will try very hard to automatically set the indent for you. Set +the 'shiftwidth' option to the amount of spaces you want for a deeper level. +Four spaces will work fine. One ":set" command will do it: > :set cindent shiftwidth=4 @@ -451,7 +451,7 @@ in your text. The second time, Vim take (thus taking you to column 8). Thus Vim uses as many s as possible, and then fills up with spaces. When backspacing it works the other way around. A will always delete -the amount specified with 'softtabstop'. Then are used as many as +the amount specified with 'softtabstop'. Then s are used as many as possible and spaces to fill the gap. The following shows what happens pressing a few times, and then using . A "." stands for a space and "------->" for a . diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -1,4 +1,4 @@ -*various.txt* For Vim version 7.1. Last change: 2008 Jan 11 +*various.txt* For Vim version 7.2a. Last change: 2008 Jun 08 VIM REFERENCE MANUAL by Bram Moolenaar @@ -123,7 +123,7 @@ 8g8 Find an illegal UTF-8 byte sequenc *:#!* :#!{anything} Ignored, so that you can start a Vim script with: > - #!/usr/bin/env vim -S + #!vim -S echo "this is a Vim script" quit < @@ -226,7 +226,8 @@ 8g8 Find an illegal UTF-8 byte sequenc ":!echo ! \! \\!" executes "echo ls ! \!". After the command has been executed, the timestamp of the current file is checked |timestamp|. - There cannot be a '|' in {cmd}, see |:bar|. + A '|' in {cmd} is passed to the shell, you cannot use + it to append a Vim command. See |:bar|. A newline character ends {cmd}, what follows is interpreted as a following ":" command. However, if there is a backslash before the newline it is removed @@ -315,6 +316,7 @@ N *+find_in_path* include file searches N *+folding* |folding| *+footer* |gui-footer| *+fork* Unix only: |fork| shell commands + *+float* Floating point support N *+gettext* message translations |multi-lang| *+GUI_Athena* Unix only: Athena |GUI| *+GUI_neXtaw* Unix only: neXtaw |GUI| @@ -343,6 +345,7 @@ B *+mouse_dec* Unix only: Dec terminal N *+mouse_gpm* Unix only: Linux console mouse handling |gpm-mouse| B *+mouse_netterm* Unix only: netterm mouse handling |netterm-mouse| N *+mouse_pterm* QNX only: pterm mouse handling |qnx-terminal| +N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse| N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse| B *+multi_byte* Korean and other languages |multibyte| *+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime| @@ -362,7 +365,8 @@ H *+profile* |:profile| command m *+python* Python interface |python| m *+python/dyn* Python interface |python-dynamic| |/dyn| N *+quickfix* |:make| and |quickfix| commands -N *+reltime* |reltime()| function +N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout, + 'redrawtime' option B *+rightleft* Right to left typing |'rightleft'| m *+ruby* Ruby interface |ruby| m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn| @@ -435,10 +439,11 @@ N *+X11* Unix only: can restore window :redi[r] >> {file} Redirect messages to file {file}. Append if {file} already exists. {not in Vi} +:redi[r] @{a-zA-Z} :redi[r] @{a-zA-Z}> Redirect messages to register {a-z}. Append to the contents of the register if its name is given - uppercase {A-Z}. For backward compatibility, the ">" - after the register name can be omitted. {not in Vi} + uppercase {A-Z}. The ">" after the register name is + optional. {not in Vi} :redi[r] @{a-z}>> Append messages to register {a-z}. {not in Vi} :redi[r] @*> @@ -674,10 +679,14 @@ 2. Online help *online-help* :helpgrep uganda\c < Example for searching in French help: > :helpgrep backspace@fr -< Cannot be followed by another command, everything is +< The pattern does not support line breaks, it must + match within one line. You can use |:grep| instead, + but then you need to get the list of help files in a + complicated way. + Cannot be followed by another command, everything is used as part of the pattern. But you can use |:execute| when needed. - Compressed help files will not be searched (Debian + Compressed help files will not be searched (Fedora compresses the help files). {not in Vi} diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,4 +1,4 @@ -*version7.txt* For Vim version 7.1. Last change: 2007 May 12 +*version7.txt* For Vim version 7.2a. Last change: 2008 Jun 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -51,6 +51,11 @@ Changed |changed-7.1| Added |added-7.1| Fixed |fixed-7.1| +VERSION 7.2 |version-7.2| +Changed |changed-7.2| +Added |added-7.2| +Fixed |fixed-7.2| + ============================================================================== INCOMPATIBLE CHANGES *incompatible-7* @@ -1161,7 +1166,7 @@ Kana (Edward L. Fox) New message translations: ~ -The Ukranian messages are now also available in cp1251. +The Ukrainian messages are now also available in cp1251. Vietnamese message translations and menu. (Phan Vinh Thinh) @@ -4615,6 +4620,2156 @@ Solution: Use the same mechanism as in multiplier as much as possible. Files: src/memfile.c +============================================================================== +VERSION 7.2 *version-7.2* + +This section is about improvements made between version 7.1 and 7.2. + +This is mostly a bug-fix release. The main new feature is floating point +support. |Float| + + +Changed *changed-7.2* +------- + +Changed the command line buffer name from "command-line" to "[Command Line]". + +Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr", +":lgetexpr" and ":lgetfile". They are not needed. (Yegappan Lakshmanan) + +An offset for syntax matches worked on bytes instead of characters. That is +inconsistent and can easily be done wrong. Use character offsets now. +(Yukihiro Nakadaira) + +The FileChangedShellPost event was also given when a file didn't change. +(John Little) + +When the current line is long (doesn't fit) the popup menu can't be seen. +Display it below the screen line instead of below the text line. +(Francois Ingelrest) + +Switched to autoconf version 2.62. + +Moved including fcntl.h to vim.h and removed it from all .c files. + +Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings. +Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1). + + +Added *added-7.2* +----- + +New syntax files: + Cdrdao config (Nikolai Weibull) + Coco/R (Ashish Shukla) + CUDA (Timothy B. Terriberry) + denyhosts config (Nikolai Weibull) + Dtrace script (Nicolas Weber) + Git output, commit, config, rebase, send-email (Tim Pope) + HASTE (M. Tranchero) + Host conf (Nikolai Weibull) + Linden script (Timo Frenay) + Symbian meta-makefile, MMP (Ron Aaron) + MS messages (Kevin Locke) + PDF (Tim Pope) + ProMeLa (Maurizio Tranchero) + Reva Foth (Ron Aaron) + VOS CM macro (Andrew McGill) + XBL (Doug Kearns) + +New tutor files: + Made UTF-8 versions of all the tutor files. + Greek renamed from ".gr" to ".el" (Greek vs Greece). + Esperanto (Dominique Pelle) + Croatian (Paul B. Mahol) + +New filetype plugins: + Cdrdao config (Nikolai Weibull) + Debian control files (Debian Vim maintainers) + Denyhosts (Nikolai Weibull) + Dos .ini file (Nikolai Weibull) + Dtrace script (Nicolas Weber) + Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope) + Host conf (Nikolai Weibull) + MS messages (Kevin Locke) + PDF (Tim Pope) + Reva Forth (Ron Aaron) + +New indent files: + Dtrace script (Nicolas Weber) + Erlang (Csaba Hoch) + Git config (Tim Pope) + Tiny Fugue (Christian J. Robinson) + +New keymap files: + Croatian (Paul B. Mahol) + Russian Dvorak (Serhiy Boiko) + Ukrainian Dvorak (Serhiy Boiko) + +Other new runtime files: + Esperanto menus and message translations. (Dominique Pelle) + Finnish translation of menus and messages. (Flammie Pirinen) + +Added floating point support. |Float| + +Added argument to mode() to return a bit more detail about the current mode. +(Ben Schmidt) + +Added support for BSD console mouse: |sysmouse|. (Paul Mahol) + +Added the "newtab" value for the 'switchbuf' option. (partly by Yegappan +Lakshmanan) + +Improved error messages for the netbeans interface. (Philippe Fremy) + +Added support for using xterm mouse codes for screen. (Micah Cowan) + +Added support for cross compiling: +Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko) Fixed +mistakes in configure.in after that. +Don't use /usr/local/include and /usr/local/lib in configure. (Philip +Prindeville) +For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in +src/vim.rc. (Tsuneo Nakagawa) + +Added v:searchforward variable: What direction we're searching in. (Yakov +Lerner) + + +Fixed *fixed-7.2* +----- + +Patch 7.1.001 +Problem: Still can't build with Gnome libraries. +Solution: Fix typo in bind_textdomain_codeset. (Mike Kelly) +Files: src/gui_gtk.c, src/gui_gtk_x11.c + +Patch 7.1.002 +Problem: Oracle Pro*C/C++ files are not detected. +Solution: Add the missing star. (Micah J. Cowan) +Files: runtime/filetype.vim + +Patch 7.1.003 (extra) +Problem: The "Tear off this menu" message appears in the message history + when using a menu. (Yongwei Wu) +Solution: Disable message history when displaying the menu tip. +Files: src/gui_w32.c + +Patch 7.1.004 +Problem: Crash when doing ":next directory". (Raphael Finkel) +Solution: Do not use "buf", it may be invalid after autocommands. +Files: src/ex_cmds.c + +Patch 7.1.005 +Problem: "cit" used on deletes . Should not delete + anything and start insertion, like "ci'" does on "". (Michal + Bozon) +Solution: Handle an empty object specifically. Made it work consistent for + various text objects. +Files: src/search.c + +Patch 7.1.006 +Problem: Resetting 'modified' in a StdinReadPost autocommand doesn't work. +Solution: Set 'modified' before the autocommands instead of after it. +Files: src/buffer.c + +Patch 7.1.007 (extra) +Problem: Mac: Context menu doesn't work on Intel Macs. + Scrollbars are not dimmed when Vim is not the active application. +Solution: Remove the test whether context menus are supported. They are + always there in OS/X. Handle the dimming. (Nicolas Weber) +Files: src/gui_mac.c, src/gui.h + +Patch 7.1.008 +Problem: getfsize() returns a negative number for very big files. +Solution: Check for overflow and return -2. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.1.009 +Problem: In diff mode, displaying the difference between a tab and spaces + is not highlighted correctly. +Solution: Only change highlighting at the end of displaying a tab. +Files: src/screen.c + +Patch 7.1.010 +Problem: The Gnome session file doesn't restore tab pages. +Solution: Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio) +Files: src/gui_gtk_x11.c + +Patch 7.1.011 +Problem: Possible buffer overflow when $VIMRUNTIME is very long. (Victor + Stinner) +Solution: Use vim_snprintf(). +Files: src/main.c + +Patch 7.1.012 +Problem: ":let &shiftwidth = 'asdf'" doesn't produce an error message. +Solution: Check for a string argument. (Chris Lubinski) +Files: src/option.c + +Patch 7.1.013 +Problem: ":syn include" only loads the first file, while it is documented + as doing the equivalent of ":runtime!". +Solution: Change the argument to source_runtime(). (James Vega) +Files: src/syntax.c + +Patch 7.1.014 +Problem: Crash when doing C indenting. (Chris Monson) +Solution: Obtain the current line again after invoking cin_islabel(). +Files: src/edit.c + +Patch 7.1.015 +Problem: MzScheme interface: current-library-collection-paths produces no + list. Interface doesn't build on a Mac. +Solution: Use a list instead of a pair. (Bernhard Fisseni) Use "-framework" + argument for MZSCHEME_LIBS in configure. +Files: src/configure.in, src/if_mzsch.c, src/auto/configure + +Patch 7.1.016 (after patch 7.1.012) +Problem: Error message about setting 'diff' to a string. +Solution: Don't pass an empty string to set_option_value() when setting + 'diff'. +Files: src/quickfix.c, src/popupmnu.c + +Patch 7.1.017 +Problem: ":confirm w" does give a prompt when 'readonly' is set, but not + when the file permissions are read-only. (Michael Schaap) +Solution: Provide a dialog in both situations. (Chris Lubinski) +Files: src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro + +Patch 7.1.018 +Problem: When 'virtualedit' is set a "p" of a block just past the end of + the line inserts before the cursor. (Engelke) +Solution: Check for the cursor being just after the line (Chris Lubinski) +Files: src/ops.c + +Patch 7.1.019 +Problem: ":py" asks for an argument, ":py asd" then gives the error that + ":py" isn't implemented. Should already happen for ":py". +Solution: Compare with ex_script_ni. (Chris Lubinski) +Files: src/ex_docmd.c + +Patch 7.1.020 +Problem: Reading from uninitialized memory when using a dialog. (Dominique + Pelle) +Solution: In msg_show_console_dialog() append a NUL after every appended + character. +Files: src/message.c + +Patch 7.1.021 (after 7.1.015) +Problem: Mzscheme interface doesn't compile on Win32. +Solution: Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev) +Files: src/if_mzsch.c + +Patch 7.1.022 +Problem: When setting 'keymap' twice the b:keymap_name variable isn't set. + (Milan Berta) +Solution: Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft) +Files: src/digraph.c + +Patch 7.1.023 +Problem: "dw" in a line with one character deletes the line. Vi and nvi + don't do this. (Kjell Arne Rekaa) +Solution: Check for one-character words especially. +Files: src/search.c + +Patch 7.1.024 +Problem: Using a pointer that has become invalid. (Chris Monson) +Solution: Obtain the line pointer again after we looked at another line. +Files: src/search.c + +Patch 7.1.025 +Problem: search() and searchpos() don't use match under cursor at start of + line when using 'bc' flags. (Viktor Kojouharov) +Solution: Don't go to the previous line when the 'c' flag is present. + Also fix that "j" doesn't move the cursor to the right column. +Files: src/eval.c, src/search.c + +Patch 7.1.026 +Problem: "[p" doesn't work in Visual mode. (David Brown) +Solution: Use checkclearop() instead of checkclearopq(). +Files: src/normal.c + +Patch 7.1.027 +Problem: On Sun systems opening /dev/fd/N doesn't work, and they are used + by process substitutions. +Solution: Allow opening specific character special files for Sun systems. + (Gary Johnson) +Files: src/fileio.c, src/os_unix.h + +Patch 7.1.028 +Problem: Can't use last search pattern for ":sort". (Brian McKee) +Solution: When the pattern is emtpy use the last search pattern. (Martin + Toft) +Files: runtime/doc/change.txt, src/ex_cmds.c + +Patch 7.1.029 (after 7.1.019) +Problem: Can't compile when all interfaces are used. (Taylor Venable) +Solution: Only check for ex_script_ni when it's defined. +Files: src/ex_docmd.c + +Patch 7.1.030 +Problem: The "vimtutor" shell script checks for "vim6" but not for "vim7". + (Christian Robinson) +Solution: Check for more versions, but prefer using "vim". +Files: src/vimtutor + +Patch 7.1.031 +Problem: virtcol([123, '$']) doesn't work. (Michael Schaap) +Solution: When '$' is used for the column number get the last column. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.1.032 +Problem: Potential crash when editing a command line. (Chris Monson) +Solution: Check the position to avoid access before the start of an array. +Files: src/ex_getln.c + +Patch 7.1.033 +Problem: A buffer is marked modified when it was first deleted and then + added again using a ":next" command. (John Mullin) +Solution: When checking if a buffer is modified use the BF_NEVERLOADED flag. +Files: src/option.c + +Patch 7.1.034 +Problem: Win64: A few compiler warnings. Problems with optimizer. +Solution: Use int instead of size_t. Disable the optimizer in one function. + (George V. Reilly) +Files: src/eval.c, src/spell.c + +Patch 7.1.035 +Problem: After ":s/./&/#" all listed lines have a line number. (Yakov + Lerner) +Solution: Reset the line number flag when not using the "&" flag. +Files: src/ex_cmds.c + +Patch 7.1.036 +Problem: Completing ":echohl" argument should include "None". (Ori + Avtalion) ":match" should have "none" too. +Solution: Add flags to use expand_highlight(). Also fix that when disabling + FEAT_CMDL_COMPL compilation fails. (Chris Lubinski) +Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro + src/syntax.c + +Patch 7.1.037 +Problem: strcpy() used for overlapping strings. (Chris Monson) +Solution: Use mch_memmove() instead. +Files: src/option.c + +Patch 7.1.038 +Problem: When 'expandtab' is set then a Tab copied for 'copyindent' is + expanded to spaces, even when 'preserveindent' is set. (Alexei + Alexandrov) +Solution: Remove the check for 'expandtab'. Also fix that ">>" doesn't obey + 'preserveindent'. (Chris Lubinski) +Files: src/misc1.c + +Patch 7.1.039 +Problem: A tag in a help file that starts with "help-tags" and contains a + percent sign may make Vim crash. (Ulf Harnhammar) +Solution: Use puts() instead of fprintf(). +Files: src/ex_cmds.c + +Patch 7.1.040 +Problem: ":match" only supports three matches. +Solution: Add functions clearmatches(), getmatches(), matchadd(), + matchdelete() and setmatches(). Changed the data structures for + this. A small bug in syntax.c is fixed, so newly created + highlight groups can have their name resolved correctly from their + ID. (Martin Toft) +Files: runtime/doc/eval.txt, runtime/doc/pattern.txt, + runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c, + src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c, + src/testdir/Makefile, src/testdir/test63.in, + src/testdir/test63.ok, src/window.c + +Patch 7.1.041 (extra, after 7.1.040) +Problem: Some changes for patch 7.1.040 are in extra files. +Solution: Update the extra files. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + +Patch 7.1.042 (after 7.1.040) +Problem: Internal error when using matchadd(). (David Larson) +Solution: Check the third argument to be present before using the fourth + argument. (Martin Toft) +Files: src/eval.c + +Patch 7.1.043 +Problem: In Ex mode using CTRL-D twice may cause a crash. Cursor isn't + positioned properly after CTRL-D. +Solution: Set prev_char properly. Position the cursor correctly. (Antony + Scriven) +Files: src/ex_getln.c + +Patch 7.1.044 +Problem: In Insert mode 0 CTRL-T deletes all indent, it should add indent. + (Gautam Iyer) +Solution: Check for CTRL-D typed. +Files: src/edit.c + +Patch 7.1.045 +Problem: Unnecessary screen redrawing. (Jjgod Jiang) +Solution: Reset "must_redraw" after clearing the screen. +Files: src/screen.c + +Patch 7.1.046 +Problem: ":s" command removes combining characters. (Ron Aaron) +Solution: Copy composing characters individually. (Chris Lubinski) +Files: src/regexp.c + +Patch 7.1.047 +Problem: vim_regcomp() called with invalid argument. (Xiaozhou Liu) +Solution: Change TRUE to RE_MAGIC + RE_STRING. +Files: src/ex_eval.c + +Patch 7.1.048 +Problem: The matchparen plugin doesn't update the match when scrolling with + the mouse wheel. (Ilya Bobir) +Solution: Set the match highlighting for text that can be scrolled into the + viewable area without moving the cursor. (Chris Lubinski) +Files: runtime/plugin/matchparen.vim + +Patch 7.1.049 +Problem: Cannot compile GTK2 version with Hangul input feature. +Solution: Don't define FEAT_XFONTSET when using GTK2. +Files: src/feature.h + +Patch 7.1.050 +Problem: Possible crash when using C++ indenting. (Chris Monson) +Solution: Keep the line pointer to the line to compare with. Avoid going + past the end of line. +Files: src/misc1.c + +Patch 7.1.051 +Problem: Accessing uninitialized memory when finding spell suggestions. +Solution: Don't try swapping characters at the end of a word. +Files: src/spell.c + +Patch 7.1.052 +Problem: When creating a new match not all fields are initialized, which + may lead to unpredictable results. +Solution: Initialise rmm_ic and rmm_maxcol. +Files: src/window.c + +Patch 7.1.053 +Problem: Accessing uninitialized memory when giving a message. +Solution: Check going the length before checking for a NUL byte. +Files: src/message.c + +Patch 7.1.054 +Problem: Accessing uninitialized memory when displaying the fold column. +Solution: Add a NUL to the extra array. (Dominique Pelle). Also do this in + a couple of other situations. +Files: src/screen.c + +Patch 7.1.055 +Problem: Using strcpy() with arguments that overlap. +Solution: Use mch_memmove() instead. +Files: src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c, + src/misc1.c, src/regexp.c, src/termlib.c + +Patch 7.1.056 +Problem: More prompt does not behave correctly after scrolling back. + (Randall W. Morris) +Solution: Avoid lines_left becomes negative. (Chris Lubinski) Don't check + mp_last when deciding to show the more prompt. (Martin Toft) +Files: src/message.c + +Patch 7.1.057 +Problem: Problem with CursorHoldI when using "r" in Visual mode (Max + Dyckhoff) +Solution: Ignore CursorHold(I) when getting a second character for a Normal + mode command. Also abort the "r" command in Visual when a special + key is typed. +Files: src/normal.c + +Patch 7.1.058 +Problem: When 'rightleft' is set the completion menu is positioned wrong. + (Baha-Eddine MOKADEM) +Solution: Fix the completion menu. (Martin Toft) +Files: src/popupmnu.c, src/proto/search.pro, src/search.c + +Patch 7.1.059 +Problem: When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim + hangs and beeps. (Antony Scriven) +Solution: Clear "got_int" in the main loop to avoid the hang. When typing + CTRL-C twice in a row abort the ":g" command. This is Vi + compatible. +Files: src/main.c + +Patch 7.1.060 +Problem: Splitting quickfix window messes up window layout. (Marius + Gedminas) +Solution: Compute the window size in a smarter way. (Martin Toft) +Files: src/window.c + +Patch 7.1.061 +Problem: Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for + characters with umlaut. (Joachim Hofmann) +Solution: Do not use islower()/isupper()/tolower()/toupper() but our own + functions. (Chris Lubinski) +Files: src/mbyte.c, src/regexp.c, src/vim.h + +Patch 7.1.062 (after 7.1.038) +Problem: Indents of C comments can be wrong. (John Mullin) +Solution: Adjust ind_len. (Chris Lubinski) +Files: src/misc1.c + +Patch 7.1.063 (after 7.1.040) +Problem: Warning for unitialized variable. +Solution: Initialise it to NULL. +Files: src/ex_docmd.c + +Patch 7.1.064 +Problem: On Interix some files appear not to exist. +Solution: Remove the top bit from st_mode. (Ligesh) +Files: src/os_unix.c + +Patch 7.1.065 (extra) +Problem: Win32: Compilation problem for newer version of w32api. +Solution: Only define __IID_DEFINED__ when needed. (Chris Sutcliffe) +Files: src/Make_ming.mak, src/iid_ole.c + +Patch 7.1.066 +Problem: When 'bomb' is set or reset the file should be considered + modified. (Tony Mechelynck) +Solution: Handle like 'endofline'. (Martin Toft) +Files: src/buffer.c, src/fileio.c, src/option.c, src/structs.h + +Patch 7.1.067 +Problem: 'thesaurus' doesn't work when 'infercase' is set. (Mohsin) +Solution: Don't copy the characters being completed but check the case and + apply it to the suggested word. Also fix that the first word in + the thesaurus line is not used. (Martin Toft) +Files: src/edit.c + +Patch 7.1.068 +Problem: When 'equalalways' is set and splitting a window, it's possible + that another small window gets bigger. +Solution: Only equalize window sizes when after a split the windows are + smaller than another window. (Martin Toft) +Files: runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c + +Patch 7.1.069 +Problem: GTK GUI: When using confirm() without a default button there still + is a default choice. +Solution: Ignore Enter and Space when there is no default button. (Chris + Lubinski) +Files: src/gui_gtk.c + +Patch 7.1.070 (extra) +Problem: Win32 GUI: When using confirm() without a default button there + still is a default choice. +Solution: Set focus on something else than a button. (Chris Lubinski) +Files: src/gui_w32.c + +Patch 7.1.071 (after 7.1.040) +Problem: Regexp patterns are not tested. +Solution: Add a basic test, to be expanded later. + Also add (commented-out) support for valgrind. +Files: src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.1.072 (extra, after 7.1.041 and 7.1.071) +Problem: Some changes for patch 7.1.071 are in extra files. +Solution: Update the extra files. Also fix a few warnings from the DOS test + makefile. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + +Patch 7.1.073 (after 7.1.062) +Problem: Wrong cursor position and crash when 'preserveindent' is set. + (Charles Campbell) +Solution: Handle the situation that we start without indent. (Chris + Lubinski) +Files: src/misc1.c + +Patch 7.1.074 +Problem: Crash when calling string() on a recurively nested List. +Solution: Check result value for being NULL. (Yukihiro Nakadaira) +Files: src/eval.c + +Patch 7.1.075 +Problem: ":let v:statusmsg" reads memory already freed. +Solution: Don't set v:statusmsg when listing it. +Files: src/eval.c + +Patch 7.1.076 +Problem: Another strcpy() with overlapping arguments. +Solution: Use mch_memmove(). (Dominique Pelle) And another one. +Files: src/ex_docmd.c, src/normal.c + +Patch 7.1.077 +Problem: Using "can_spell" without initializing it. (Dominique Pelle) +Solution: Set a default for get_syntax_attr(). +Files: src/syntax.c + +Patch 7.1.078 +Problem: Dropping a file name on gvim that contains a CSI byte doesn't work + when editing the command line. +Solution: Escape the CSI byte when inserting in the input buffer. (Yukihiro + Nakadaira) +Files: src/gui.c, src/ui.c + +Patch 7.1.079 +Problem: When the locale is "C" and 'encoding' is "latin1" then the "@" + character in 'isfname', 'isprint', etc. doesn't pick up accented + characters. +Solution: Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER(). +Files: src/charset.c, src/macros.h + +Patch 7.1.080 (extra) +Problem: Compiler warnings for using "const char *" for "char *". +Solution: Add type casts. (Chris Sutcliffe) +Files: src/GvimExt/gvimext.cpp + +Patch 7.1.081 +Problem: Command line completion for a shell command: "cat " + doesn't work. +Solution: Start the file name at any character that can't be in a file name. + (Martin Toft) +Files: src/ex_docmd.c + +Patch 7.1.082 +Problem: After a ":split" the matchparen highlighting isn't there. +Solution: Install a WinEnter autocommand. Also fixes that after + ":NoMatchParen" only the current window is updated. (Martin Toft) +Files: runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim + +Patch 7.1.083 (after 7.1.081) +Problem: Command line completion doesn't work with wildcards. +Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft) +Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c + +Patch 7.1.084 +Problem: Using the "-nb" argument twice causes netbeans not to get + fileOpened events. +Solution: Change "&" to "&&". (Xavier de Gaye) +Files: src/ex_cmds.c + +Patch 7.1.085 +Problem: ":e fold.c" then ":sp fold.c" results in folds of original window + to disappear. (Akita Noek) +Solution: Invoke foldUpdateAll() for all windows of the changed buffer. + (Martin Toft) +Files: src/ex_cmds.c + +Patch 7.1.086 +Problem: Crash when using specific Python syntax highlighting. (Quirk) +Solution: Check for a negative index, coming from a keyword match at the + start of a line from a saved state. +Files: src/syntax.c + +Patch 7.1.087 +Problem: Reading past ":cscope find" command. Writing past end of a buffer. +Solution: Check length of the argument before using the pattern. Use + vim_strncpy(). (Dominique Pelle) +Files: if_cscope.c + +Patch 7.1.088 (extra) +Problem: The coordinates used by ":winpos" differ from what getwinposx() + and getwinposy() return. +Solution: Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry) +Files: src/gui_mac.c + +Patch 7.1.089 +Problem: ":let loaded_getscriptPlugin" doesn't clear to eol, result is + "#1in". +Solution: Clear to the end of the screen after displaying the first variable + value. +Files: src/eval.c + +Patch 7.1.090 +Problem: Compiler warning on Mac OS X 10.5. +Solution: Don't redeclare sigaltstack(). (Hisashi T Fujinaka) +Files: src/os_unix.c + +Patch 7.1.091 (extra) +Problem: Win32: Can't embed Vim inside another application. +Solution: Add the --windowid argument. (Nageshwar) +Files: runtime/doc/gui_w32.txt, runtime/doc/starting.txt, + runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c + +Patch 7.1.092 (extra, after 7.1.088) +Problem: Wrong arguments for MoveWindowStructure(). +Solution: Remove "TRUE". (Michael Henry) +Files: src/gui_mac.c + +Patch 7.1.093 +Problem: Reading past end of a screen line when determining cell width. + (Dominique Pelle) +Solution: Add an argument to mb_off2cells() for the maximum offset. +Files: src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro, + src/screen.c + +Patch 7.1.094 +Problem: When checking if syntax highlighting is present, looking in the + current buffer instead of the specified one. +Solution: Use "buf" instead of "curbuf". +Files: src/syntax.c + +Patch 7.1.095 +Problem: The FocusLost and FocusGained autocommands are triggered + asynchronously in the GUI. This may cause arbitrary problems. +Solution: Put the focus event in the input buffer and handle it when ready + for it. +Files: src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c, + src/keymap.h + +Patch 7.1.096 +Problem: Reading past end of a string when resizing Vim. (Dominique Pelle) +Solution: Check the string pointer before getting the char it points to. +Files: src/message.c + +Patch 7.1.097 +Problem: ":setlocal stl=%!1+1" does not work. +Solution: Adjust check for pointer. (Politz) +Files: src/option.c + +Patch 7.1.098 +Problem: ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula) +Solution: Before converting "s:" into a script ID, check if it is a Funcref. +Files: src/eval.c + +Patch 7.1.099 +Problem: When the 'keymap' and 'paste' options have a non-default value, + ":mkexrc" and ":mksession" do not correctly set the options. +Solution: Set the options with side effects before other options. +Files: src/option.c + +Patch 7.1.100 +Problem: Win32: Executing cscope doesn't always work properly. +Solution: Use another way to invoke cscope. (Mike Williams) +Files: src/if_cscope.c, src/if_cscope.h, src/main.c, + src/proto/if_cscope.pro + +Patch 7.1.101 +Problem: Ruby: The Buffer.line= method does not work. +Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins) +Files: src/if_ruby.c + +Patch 7.1.102 +Problem: Perl interface doesn't compile with new version of Perl. +Solution: Add two variables to the dynamic library loading. (Suresh + Govindachar) +Files: src/if_perl.xs + +Patch 7.1.103 +Problem: Using "dw" with the cursor past the end of the last line (using + CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase) +Solution: Don't move the cursor back when the movement failed. +Files: src/normal.c + +Patch 7.1.104 (after 7.1.095) +Problem: When 'lazyredraw' is set a focus event causes redraw to be + postponed until a key is pressed. +Solution: Instead of not returning from vgetc() when a focus event is + encountered return K_IGNORE. Add plain_vgetc() for when the + caller doesn't want to get K_IGNORE. +Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c, + src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c + +Patch 7.1.105 +Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz) +Solution: When parsing a dictionary value without using the value, don't try + obtaining the key name. +Files: src/eval.c + +Patch 7.1.106 +Problem: ":messages" doesn't quit listing on ":". +Solution: Break the loop when "got_int" is set. +Files: src/message.c + +Patch 7.1.107 +Problem: When doing a block selection and using "s" to change the text, + while triggering auto-indenting, causes the wrong text to be + repeated in other lines. (Adri Verhoef) +Solution: Compute the change of indent and compensate for that. +Files: src/ops.c + +Patch 7.1.108 (after 7.1.100) +Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta) +Solution: Use (long) instead of (intptr_t) when it's not defined. +Files: src/if_cscope.c + +Patch 7.1.109 +Problem: GTK: when there are many tab pages, clicking on the arrow left of + the labels moves to the next tab page on the right. (Simeon Bird) +Solution: Check the X coordinate of the click and pass -1 as value for the + left arrow. +Files: src/gui_gtk_x11.c, src/term.c + +Patch 7.1.110 (after 7.1.102) +Problem: Win32: Still compilation problems with Perl. +Solution: Change the #ifdefs. (Suresh Govindachar) +Files: src/if_perl.xs + +Patch 7.1.111 +Problem: When using ":vimgrep" with the "j" flag folds from another buffer + may be displayed. (A.Politz) +Solution: When not jumping to another buffer update the folds. +Files: src/quickfix.c + +Patch 7.1.112 +Problem: Using input() with a wrong argument may crash Vim. (A.Politz) +Solution: Init the input() return value to NULL. +Files: src/eval.c + +Patch 7.1.113 +Problem: Using map() to go over an empty list causes memory to be freed + twice. (A.Politz) +Solution: Don't clear the typeval in restore_vimvar(). +Files: src/eval.c + +Patch 7.1.114 +Problem: Memory leak in getmatches(). +Solution: Don't increment the refcount twice. +Files: src/eval.c + +Patch 7.1.115 (after 7.1.105) +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Init variable to NULL. +Files: src/eval.c + +Patch 7.1.116 +Problem: Cannot display Unicode characters above 0x10000. +Solution: Remove the replacement with a question mark when UNICODE16 is not + defined. (partly by Nicolas Weber) +Files: src/screen.c + +Patch 7.1.117 +Problem: Can't check wether Vim was compiled with Gnome. (Tony Mechelynck) +Solution: Add gui_gnome to the has() list. +Files: src/eval.c + +Patch 7.1.118 (after 7.1.107) +Problem: Compiler warning for Visual C compiler. +Solution: Add typecast. (Mike Williams) +Files: src/ops.c + +Patch 7.1.119 +Problem: Crash when 'cmdheight' set to very large value. (A.Politz) +Solution: Limit 'cmdheight' to 'lines' minus one. Store right value of + 'cmdheight' when running out of room. +Files: src/option.c, src/window.c + +Patch 7.1.120 +Problem: Can't properly check memory leaks while running tests. +Solution: Add an argument to garbagecollect(). Delete functions and + variables in the test scripts. +Files: runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c, + src/testdir/Makefile, src/testdir/test14.in, + src/testdir/test26.in, src/testdir/test34.in, + src/testdir/test45.in, src/testdir/test47.in, + src/testdir/test49.in, src/testdir/test55.in, + src/testdir/test56.in, src/testdir/test58.in, + src/testdir/test59.in, src/testdir/test60.in, + src/testdir/test60.vim, src/testdir/test62.in, + src/testdir/test63.in, src/testdir/test64.in, + +Patch 7.1.121 +Problem: Using ":cd %:h" when editing a file in the current directory + results in an error message for using an empty string. +Solution: When "%:h" results in an empty string use ".". +Files: src/eval.c + +Patch 7.1.122 +Problem: Mac: building Vim.app fails. Using wrong architecture. +Solution: Use line continuation for the gui_bundle dependency. Detect the + system architecture with "uname -a". +Files: src/main.aap + +Patch 7.1.123 +Problem: Win32: ":edit foo ~ foo" expands "~". +Solution: Change the call to expand_env(). +Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c + +Patch 7.1.124 (extra) +Problem: Mac: When dropping a file on Vim.app that is already in the buffer + list (from .viminfo) results in editing an empty, unnamed buffer. + (Axel Kielhorn) Also: warning for unused variable. +Solution: Move to the buffer of the first agument. Delete unused variable. +Files: src/gui_mac.c + +Patch 7.1.125 +Problem: The TermResponse autocommand event is not always triggered. (Aron + Griffix) +Solution: When unblocking autocommands check if v:termresponse changed and + trigger the event then. +Files: src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c, + src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c + +Patch 7.1.126 (extra) +Problem: ":vimgrep */*" fails when a BufRead autocommand changes directory. + (Bernhard Kuhn) +Solution: Change back to the original directory after loading a file. + Also: use shorten_fname1() to avoid duplicating code. +Files: src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c, + src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro, + src/quickfix.c + +Patch 7.1.127 +Problem: Memory leak when doing cmdline completion. (Dominique Pelle) +Solution: Free "orig" argument of ExpandOne() when it's not used. +Files: src/ex_getln.c + +Patch 7.1.128 (extra) +Problem: Build problems with new version of Cygwin. +Solution: Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen) +Files: src/Make_cyg.mak + +Patch 7.1.129 (extra) +Problem: Win32: Can't get the user name when it is longer than 15 + characters. +Solution: Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov) +Files: src/os_win32.c + +Patch 7.1.130 +Problem: Crash with specific order of undo and redo. (A.Politz) +Solution: Clear and adjust pointers properly. Add u_check() for debugging. +Files: src/undo.c, src/structs.h + +Patch 7.1.131 +Problem: ":mksession" always adds ":setlocal autoread". (Christian J. + Robinson) +Solution: Skip boolean global/local option using global value. +Files: src/option.c + +Patch 7.1.132 +Problem: getpos("'>") may return a negative column number for a Linewise + selection. (A.Politz) +Solution: Don't add one to MAXCOL. +Files: src/eval.c + +Patch 7.1.133 (after 7.1.126) +Problem: shorten_fname1() linked when it's not needed. +Solution: Add #ifdef. +Files: src/fileio.c + +Patch 7.1.134 (extra) +Problem: Win32: Can't build with VC8 +Solution: Detect the MSVC version instead of using NMAKE_VER. + (Mike Williams) +Files: src/Make_mvc.mak + +Patch 7.1.135 +Problem: Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two + buffers for the same file. (Suresh Govindachar) +Solution: Invoke FullName_save() when a path contains "//" or "\\". +Files: src/buffer.c + +Patch 7.1.136 +Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle) +Solution: Free the contained-in list. +Files: src/syntax.c + +Patch 7.1.137 +Problem: Build failure when using EXITFREE. (Dominique Pelle) +Solution: Add an #ifdef around using clip_exclude_prog. +Files: src/misc2.c + +Patch 7.1.138 +Problem: The Perl Msg() function doesn't stop when "q" is typed at the more + prompt. (Hari Krishna Dara) +Solution: Check got_int. +Files: src/if_perl.xs + +Patch 7.1.139 +Problem: When using marker folding and ending Insert mode with CTRL-C the + current fold is truncated. (Fred Kater) +Solution: Ignore got_int while updating folds. +Files: src/fold.c + +Patch 7.1.140 +Problem: v:count is set only after typing a non-digit, that makes it + difficult to make a nice mapping. +Solution: Set v:count while still typing the count. +Files: src/normal.c + +Patch 7.1.141 +Problem: GTK: -geom argument doesn't support a negative offset. +Solution: Compute position from the right/lower corner. +Files: src/gui_gtk_x11.c + +Patch 7.1.142 +Problem: ":redir @A>" doesn't work. +Solution: Ignore the extra ">" also when appending. (James Vega) +Files: src/ex_docmd.c + +Patch 7.1.143 +Problem: Uninitialized memory read when diffing three files. (Dominique + Pelle) +Solution: Remove "+ !notset" so that we don't use fields that were not + computed. +Files: src/diff.c + +Patch 7.1.144 +Problem: After ":diffup" cursor can be in the wrong position. +Solution: Force recomputing the cursor position. +Files: src/diff.c + +Patch 7.1.145 +Problem: Insert mode completion: When using the popup menu, after + completing a word and typing a non-word character Vim is still + completing the same word, following CTRL-N doesn't work. + Insert mode Completion: When using CTRL-X O and there is only + "struct." before the cursor, typing one char to reduce the + matches, then BS completion stops. +Solution: When typing a character that is not part of the item being + completed, stop complete mode. For whole line completion also + accept a space. For file name completion stop at a path + separator. + For omni completion stay in completion mode even if completing + with empty string. +Files: src/edit.c + +Patch 7.1.146 (extra) +Problem: VMS: Files with a very rare record organization (VFC) cannot be + properly written by Vim. + On older VAX systems mms runs into a syntax error. +Solution: Check for this special situation. Do not wrap a comment, make it + one long line. (Zoltan Arpadffy) +Files: src/fileio.c, src/Make_vms.mms + +Patch 7.1.147 (after 7.1.127) +Problem: Freeing memory already freed when completing user name. (Meino + Cramer) +Solution: Use a flag to remember if "orig" needs to be freed. +Files: src/ex_getln.c + +Patch 7.1.148 +Problem: Some types are not found by configure. +Solution: Test for the sys/types.h header file. (Sean Boudreau) +Files: src/configure.in, src/auto/configure + +Patch 7.1.149 +Problem: GTK GUI: When the completion popup menu is used scrolling another + window by the scrollbar is OK, but using the scroll wheel it + behaves line . +Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu. +Files: src/edit.c, src/gui.c + +Patch 7.1.150 +Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't + work correctly. (Jianrong Yu) +Solution: When 'clipboard' has "unnamed" also obtain the selection when + getting the default register. +Files: src/ops.c + +Patch 7.1.151 +Problem: Using whole line completion with 'ignorecase' and 'infercase' set + and the line is empty get an lalloc(0) error. +Solution: Don't try changing case for an empty match. (Matthew Wozniski) +Files: src/edit.c + +Patch 7.1.152 +Problem: Display problem when 'hls' and 'cursorcolumn' are set and + searching for "$". (John Mullin) Also when scrolling + horizontally when 'wrap' is off. +Solution: Keep track of the column where highlighting was set. Check the + column offset when skipping characters. +Files: src/screen.c + +Patch 7.1.153 +Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles + Campbell) +Solution: Add type casts. Init st_dev and st_ino separately. Don't use + type casts for vim_snprintf() when HAVE_STDARG_H is defined. + Define XpmAllocColor when needed. +Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c, + src/gui_xmebw.c + +Patch 7.1.154 +Problem: Compiler warning for signed/unsigned compare. +Solution: Add type cast. +Files: src/screen.c + +Patch 7.1.155 +Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega) +Solution: When there is only one branch use u_freeheader() to delete it. +Files: src/undo.c + +Patch 7.1.156 +Problem: Overlapping arguments for strcpy() when expanding command line + variables. +Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos. + (Dominique Pelle) +Files: src/ex_docmd.c + +Patch 7.1.157 +Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk) +Solution: Only give an error for an empty line, not for a comment. +Files: src/ex_docmd.c + +Patch 7.1.158 (extra) +Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the + result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding' + is "cp1250" (Lukas Cerman) +Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct + byte sequence. For cp1250, when conversion to 'encoding' results + in the 7th bit not set, set the 7th bit after conversion. +Files: src/os_win32.c, src/gui_w48.c + +Patch 7.1.159 +Problem: strcpy() has overlapping arguments. +Solution: Use mch_memmove() instead. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.1.160 +Problem: When a focus autocommand is defined, getting or losing focus + causes the hit-enter prompt to be redrawn. (Bjorn Winckler) +Solution: Overwrite the last line. +Files: src/message.c + +Patch 7.1.161 +Problem: Compilation errors with tiny features and EXITFREE. +Solution: Add #ifdefs. (Dominique Pelle) +Files: src/edit.c, src/misc2.c + +Patch 7.1.162 +Problem: Crash when using a modifier before "while" or "for". (A.Politz) +Solution: Skip modifiers when checking for a loop command. +Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c + +Patch 7.1.163 +Problem: Warning for the unknown option 'bufsecret'. +Solution: Remove the lines .vim that use this option. (Andy Wokula) +Files: runtime/menu.vim + +Patch 7.1.164 +Problem: Reading past end of regexp pattern. (Dominique Pelle) +Solution: Use utf_ptr2len(). +Files: src/regexp.c + +Patch 7.1.165 +Problem: Crash related to getting X window ID. (Dominique Pelle) +Solution: Don't trust the window ID that we got in the past, check it every + time. +Files: src/os_unix.c + +Patch 7.1.166 +Problem: Memory leak for using "gp" in Visual mode. +Solution: Free memory in put_register(). (Dominique Pelle) +Files: src/ops.c + +Patch 7.1.167 +Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789) +Solution: Allocate more memory. Fix check for maximum number of columns. +Files: src/xxd/xxd.c + +Patch 7.1.168 (extra) +Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have + focus, clicking in it doesn't position the cursor. (Juergen + Kraemer) +Solution: Don't reset s_button_pending just after receiving focus. +Files: src/gui_w48.c + +Patch 7.1.169 +Problem: Using uninitialized variable when system() fails. (Dominique + Pelle) +Solution: Let system() return an empty string when it fails. +Files: src/eval.c + +Patch 7.1.170 +Problem: Valgrind warning for overlapping arguments for strcpy(). +Solution: Use mch_memmove() instead. (Dominique Pelle) +Files: src/getchar.c + +Patch 7.1.171 +Problem: Reading one byte before allocated memory. +Solution: Check index not to become negative. (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.1.172 +Problem: When 'buftype' is "acwrite" Vim still checks if the file or + directory exists before overwriting. +Solution: Don't check for overwriting when the buffer name is not a file + name. +Files: src/ex_cmds.c + +Patch 7.1.173 +Problem: Accessing freed memory. (Dominique Pelle) +Solution: Don't call reg_getline() to check if a line is the first in the + file. +Files: src/regexp.c + +Patch 7.1.174 +Problem: Writing NUL past end of a buffer. +Solution: Copy one byte less when using strncat(). (Dominique Pelle) +Files: src/ex_cmds.c, src/ex_docmd.c, + +Patch 7.1.175 +Problem: doesn't work with some combination of 'sts', 'linebreak' and + 'backspace'. (Francois Ingelrest) +Solution: When adding white space results in not moving back delete one + character. +Files: src/edit.c + +Patch 7.1.176 +Problem: Building with Aap fails when the "compiledby" argument contains + '<' or '>' characters. (Alex Yeh) +Solution: Change how quoting is done in the Aap recipe. +Files: src/main.aap + +Patch 7.1.177 +Problem: Freeing memory twice when in debug mode while reading a script. +Solution: Ignore script input while in debug mode. +Files: src/ex_cmds2.c, src/getchar.c, src/globals.h + +Patch 7.1.178 +Problem: "%" doesn't work on "/* comment *//* comment */". +Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus + Heidelberg) +Files: src/search.c + +Patch 7.1.179 +Problem: Need to check for TCL 8.5. +Solution: Adjust configure script. (Alexey Froloff) +Files: src/configure.in, src/auto/configure + +Patch 7.1.180 +Problem: Regexp patterns not tested sufficiently. +Solution: Add more checks to the regexp test. +Files: src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.1.181 +Problem: Accessing uninitialized memory in Farsi mode. (Dominique Pelle) +Solution: Only invoke lrF_sub() when there is something to do. +Files: src/ex_cmds.c + +Patch 7.1.182 +Problem: When using tab pages and an argument list the session file may + contain wrong "next" commands. (Alexander Bluem) +Solution: Use "argu" commands and only when needed. +Files: src/ex_docmd.c + +Patch 7.1.183 +Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu + Paul) +Solution: Inside "\%[]" detect \&, \| and \) as an error. +Files: src/regexp.c + +Patch 7.1.184 +Problem: Crash when deleting backwards over a line break in Insert mode. +Solution: Don't advance the cursor when it's already on the NUL after a + line. (Matthew Wozniski) +Files: src/normal.c + +Patch 7.1.185 +Problem: Using "gR" with a multi-byte encoding and typing a CR pushes + characters onto the replace stack incorrectly, resulting in BS + putting back the wrong characters. (Paul B. Mahol) +Solution: Push multi-byte characters onto the replace stack in reverse byte + order. Add replace_push_mb(). +Files: src/edit.c, src/misc1.c, src/proto/edit.pro + +Patch 7.1.186 +Problem: "expand('')" returns a bogus value after changing + directory. (Dave Fishburn) +Solution: Copy "autocmd_fname" to allocated memory and expand to full + filename. Shorten the path when expanding . +Files: src/ex_docmd.c, src/fileio.c + +Patch 7.1.187 +Problem: Win32 GUI: Custom completion using system() no longer works + after patch 7.1.104. (Erik Falor) +Solution: Loop when safe_vgetc() returns K_IGNORE. +Files: src/ex_getln.c + +Patch 7.1.188 +Problem: When 'showmode' is off the message for changing a readonly file is + given in the second column instead of the first. (Payl B. Mahol) +Solution: Put the W10 message in the first column. +Files: src/edit.c + +Patch 7.1.189 (after 7.1.104) +Problem: Patch 7.1.104 was incomplete. +Solution: Also call plain_vgetc() in ask_yesno(). +Files: src/misc1.c + +Patch 7.1.190 +Problem: Cursor after end-of-line: "iA sentence.)" +Solution: Move cursor back and make motion inclusive. +Files: src/normal.c + +Patch 7.1.191 +Problem: Win32 GUI: after patch 7.1.168 there is still a problem when + clicking in a scrollbar. (Juergen Jottkaerr) +Solution: Don't check the input buffer when dragging the scrollbar. +Files: src/gui.c + +Patch 7.1.192 +Problem: With Visual block selection, "s" and typing something, CTRL-C + doesn't stop Vim from repeating the replacement in other lines, + like happens for "I". +Solution: Check for "got_int" to be set. +Files: src/ops.c + +Patch 7.1.193 +Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the + character pairs are not used. (Philippe de Muyter) +Solution: Add those Vim 5.x digraphs that don't conflict with others. +Files: src/digraph.c + +Patch 7.1.194 +Problem: ":echo glob('~/{}')" results in /home/user//. +Solution: Don't add a slash if there already is one. +Files: src/os_unix.c + +Patch 7.1.195 +Problem: '0 mark doesn't work for "~/foo ~ foo". +Solution: Don't expand the whole file name, only "~/". +Files: src/mark.c + +Patch 7.1.196 (extra) +Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik + Falor) +Solution: Use the TTM_SETMAXTIPWIDTH message. +Files: src/gui_w32.c + +Patch 7.1.197 +Problem: Mac: "make install" doesn't work when prefix defined. +Solution: Pass different arguments to "make installruntime". (Jjgod Jiang) +Files: src/Makefile + +Patch 7.1.198 +Problem: Hang when using ":s/\n//gn". (Burak Gorkemli) +Solution: Set "skip_match". +Files: src/ex_cmds.c + +Patch 7.1.199 +Problem: Can't do command line completion for a specific file name + extension. +Solution: When the pattern ends in "$" don't add a star for completion and + remove the "$" before matching with file names. +Files: runtime/doc/cmdline.txt, src/ex_getln.c + +Patch 7.1.200 (after 7.1.177 and 7.1.182) +Problem: Compiler warnings for uninitialized variables. +Solution: Init variables. +Files: src/ex_cmds2.c, src/ex_docmd.c + +Patch 7.1.201 +Problem: When reading stdin 'fenc' and 'ff are not set. +Solution: Set the options after reading stdin. (Ben Schmidt) +Files: src/fileio.c + +Patch 7.1.202 +Problem: Incomplete utf-8 byte sequence is not checked for validity. +Solution: Check the bytes that are present for being valid. (Ben Schmidt) +Files: src/mbyte.c + +Patch 7.1.203 +Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|" + doesn't. (Andy Wokula) +Solution: Check for "onemore" flag in check_cursor_col(). +Files: src/misc2.c + +Patch 7.1.204 (extra) +Problem: Win32: Using the example at 'balloonexpr' the balloon disappears + after four seconds and then comes back again. Also moves the + mouse pointer a little bit. (Yongwei Wu) +Solution: Set the autopop time to 30 seconds (the max value). (Sergey + Khorev) Move the mouse two pixels forward and one back to end up + in the same position (really!). +Files: src/gui_w32.c + +Patch 7.1.205 +Problem: Can't get the operator in an ":omap". +Solution: Add the "v:operator" variable. (Ben Schmidt) +Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h + +Patch 7.1.206 +Problem: Compiler warnings when using MODIFIED_BY. +Solution: Add type casts. (Ben Schmidt) +Files: src/version.c + +Patch 7.1.207 +Problem: Netbeans: "remove" cannot delete one line. +Solution: Remove partial lines and whole lines properly. Avoid a memory + leak. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.1.208 +Problem: On Alpha get an unaligned access error. +Solution: Store the dictitem pointer before using it. (Matthew Luckie) +Files: src/eval.c + +Patch 7.1.209 +Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs. +Solution: Stop getting a selection after three seconds. This is a hack. +Files: src/gui_gtk_x11.c + +Patch 7.1.210 +Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony + Mechelynck) +Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte. +Files: src/mbyte.c + +Patch 7.1.211 +Problem: The matchparen plugin may take an unexpected amount of time, so + that it looks like Vim hangs. +Solution: Add a timeout to searchpair(), searchpairpos(), search() and + searchpos(). Use half a second timeout in the plugin. +Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c, + src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c, + src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro, + src/search.c + +Patch 7.1.212 +Problem: Accessing a byte before a line. +Solution: Check that the column is 1 or more. (Dominique Pelle) +Files: src/edit.c + +Patch 7.1.213 +Problem: A ":tabedit" command that results in the "swap file exists" dialog + and selecting "abort" doesn't close the new tab. (Al Budden) +Solution: Pass "old_curwin" to do_exedit(). +Files: src/ex_docmd.c + +Patch 7.1.214 +Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz) +Solution: Start replacing in the line where the match starts. +Files: src/ex_cmds.c + +Patch 7.1.215 +Problem: It is difficult to figure out what syntax items are nested at a + certain position. +Solution: Add the synstack() function. +Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro, + src/syntax.c + +Patch 7.1.216 +Problem: Variants of --remote-tab are not mentioned for "vim --help". +Solution: Display optional -wait and -silent. +Files: src/main.c + +Patch 7.1.217 +Problem: The "help-tags" tag may be missing from runtime/doc/tags when it + was generated during "make install". +Solution: Add the "++t" argument to ":helptags" to force adding the tag. +Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c, + src/ex_cmds.h + +Patch 7.1.218 +Problem: A syntax region without a "keepend", containing a region with + "extend" could be truncated at the end of the containing region. +Solution: Do not call syn_update_ends() when there are no keepend items. +Files: src/syntax.c + +Patch 7.1.219 (after 7.1.215) +Problem: synstack() returns situation after the current character, can't + see the state for a one-character region. +Solution: Don't update ending states in the requested column. +Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c, + src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c + +Patch 7.1.220 +Problem: When a ")" or word movement command moves the cursor back from the + end of the line it may end up on the trail byte of a multi-byte + character. It's also moved back when it isn't needed. +Solution: Add the adjust_cursor() function. +Files: src/normal.c + +Patch 7.1.221 +Problem: When inserting a "(", triggering the matchparen plugin, the + following highlighting may be messed up. +Solution: Before triggering the CursorMovedI autocommands update the display + to update the stored syntax stacks for the change. +Files: src/edit.c + +Patch 7.1.222 (after 7.1.217) +Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel + Svitalsky) +Solution: Expand wildcards in the directory name. +Files: src/ex_cmds.c + +Patch 7.1.223 +Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and + the expanded name contains spaces, '~', single quotes and other + special characters. (Adri Verhoef, Charles Campbell) +Solution: For Posix shells define a vimglob() function to list the matches + instead of using "echo" directly. +Files: src/os_unix.c + +Patch 7.1.224 +Problem: When using "vim -F -o file1 file2" only one window is + right-to-left. Same for "-H". (Ben Schmidt) +Solution: use set_option_value() to set 'rightleft'. +Files: src/main.c + +Patch 7.1.225 +Problem: Using unitialized value when XGetWMNormalHints() fails. +Solution: Check the return value. (Dominique Pelle) +Files: src/os_unix.c + +Patch 7.1.226 +Problem: Command line completion doesn't work when a file name contains a + '&' character. +Solution: Accept all characters in a file name, except ones that end a + command or white space. +Files: src/ex_docmd.c + +Patch 7.1.227 +Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle) +Solution: Avoid storing a syntax state in the wrong position in the list of + remembered states. +Files: src/syntax.c + +Patch 7.1.228 +Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it + can't be closed with "zc". (Daniel Shahaf) +Solution: Reset the "small" flag of a fold when adding a line to it. +Files: src/fold.c + +Patch 7.1.229 +Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent" + and backspacing a non-white character so that the indent increases. +Solution: Keep the fold open after backspacing a character. +Files: src/edit.c + +Patch 7.1.230 +Problem: Memory leak when executing SourceCmd autocommands. +Solution: Free the memory. (Dominique Pelle) +Files: src/ex_cmds2.c + +Patch 7.1.231 +Problem: When shifting lines the change is acted upon multiple times. +Solution: Don't have shift_line() call changed_bytes. +Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro + +Patch 7.1.232 (after 7.1.207 and 7.1.211) +Problem: Compiler warnings with MSVC. +Solution: Add type casts. (Mike Williams) +Files: src/ex_cmds2.c, src/netbeans.c + +Patch 7.1.233 +Problem: Crash when doing Insert mode completion for a user defined + command. (Yegappan Lakshmanan) +Solution: Don't use the non-existing command line. +Files: src/ex_getln.c + +Patch 7.1.234 +Problem: When diff'ing three files the third one isn't displayed correctly. + (Gary Johnson) +Solution: Compute the size of diff blocks correctly when merging blocks. + Compute filler lines correctly when scrolling. +Files: src/diff.c + +Patch 7.1.235 +Problem: Pattern matching is slow when using a lot of simple patterns. +Solution: Avoid allocating memory by not freeing it when it's not so much. + (Alexei Alexandrov) +Files: src/regexp.c + +Patch 7.1.236 +Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may + make Vim hang until CTRL-C is pressed. +Solution: Add the 'redrawtime' option. +Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c, + src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c, + src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro, + src/proto/search.pro, src/search.c, src/screen.c, + src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c, + src/vim.h + +Patch 7.1.237 +Problem: Compiler warning on an Alpha processor in Motif code. +Solution: Change a typecast. (Adri Verhoef) +Files: src/gui_motif.c + +Patch 7.1.238 +Problem: Using the 'c' flag with searchpair() may cause it to fail. Using + the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz) +Solution: Only use the 'c' flag for the first search, not for repeating. + When using 'r' imply 'W'. (Antony Scriven) +Files: src/eval.c + +Patch 7.1.239 (after 7.1.233) +Problem: Compiler warning for sprintf() argument. +Solution: Add a typecast. (Nico Weber) +Files: src/ex_getln.c + +Patch 7.1.240 +Problem: When "gUe" turns a German sharp s into SS the operation stops + before the end of the word. Latin2 has the same sharp s but it's + not changed to SS there. +Solution: Make sure all the characters are operated upon. Detect the sharp + s in latin2. Also fixes that changing case of a multi-byte + character that changes the byte cound doesn't always work. +Files: src/ops.c + +Patch 7.1.241 +Problem: Focus change events not always ignored. (Erik Falor) +Solution: Ignore K_IGNORE in Insert mode in a few more places. +Files: src/edit.c + +Patch 7.1.242 (after 7.1.005) +Problem: "cib" doesn't work properly on "(x)". (Tim Pope) +Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "x". +Files: src/search.c + +Patch 7.1.243 (after 7.1.240) +Problem: "U" doesn't work on all text in Visual mode. (Adri Verhoef) +Solution: Loop over all the lines to be changed. Add tests for this. +Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok + +Patch 7.1.244 +Problem: GUI may have part of the command line cut off. +Solution: Don't round the number of lines up, always round down. + (Tony Houghton, Scott Dillard) +Files: src/gui.c + +Patch 7.1.245 +Problem: Pressing CTRL-\ three times causes Vim to quit. (Ranganath Rao). + Also for f CTRL-\ CTRL-\. +Solution: When going to cooked mode in mch_delay() set a flag to ignore + SIGQUIT. +Files: src/os_unix.c + +Patch 7.1.246 +Problem: Configure hangs when the man pager is something strange. (lorien) +Solution: Set MANPAGER and PAGER to "cat". (Micah Cowan) +Files: src/auto/configure, src/configure.in + +Patch 7.1.247 +Problem: When using Netbeans backspacing in Insert mode skips a character + now and then. (Ankit Jain) +Solution: Avoid calling netbeans_removed(), it frees the line pointer. + (partly by Dominique Pelle). +Files: src/misc1.c + +Patch 7.1.248 +Problem: Can't set the '" mark. Can't know if setpos() was successful. +Solution: Allow setting the '" mark with setpos(). Have setpos() return a + value indicating success/failure. +Files: runtime/doc/eval.txt, src/eval.c, src/mark.c + +Patch 7.1.249 +Problem: After "U" the cursor can be past end of line. (Adri Verhoef) +Solution: Adjust the cursor position in u_undoline(). +Files: src/undo.c + +Patch 7.1.250 +Problem: ":setglobal fenc=anything" gives an error message in a buffer + where 'modifiable' is off. (Ben Schmidt) +Solution: Don't give an error if 'modifiable' doesn't matter. +Files: src/option.c + +Patch 7.1.251 +Problem: Using freed memory when spell checking enabled. +Solution: Obtain the current line again after calling spell_move_to(). + (Dominique Pelle) +Files: src/screen.c + +Patch 7.1.252 (after 7.1.243) +Problem: Test 39 fails when the environment has a utf-8 locale. (Dominique + Pelle) +Solution: Force 'encoding' to be latin1. +Files: src/testdir/test39.in + +Patch 7.1.253 +Problem: ":sort" doesn't work in a one line file. (Patrick Texier) +Solution: Don't sort if there is only one line. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.1.254 +Problem: Tests 49 and 55 fail when the locale is French. +Solution: Using C messages for test 49. Filter the error message in test 55 + such that it works when the number is halfway the message. +Files: src/testdir/test49.in, src/testdir/test55.in + +Patch 7.1.255 +Problem: Vim doesn't support utf-32. (Yongwei Wu) +Solution: Add aliases for utf-32, it's the same as ucs-4. +Files: src/mbyte.c + +Patch 7.1.256 +Problem: findfile() also returns directories. +Solution: Cleanup the code for finding files and directories in a list of + directories. Remove the ugly global ff_search_ctx. +Files: src/eval.c, src/misc2.c, src/vim.h, src/tag.c + +Patch 7.1.257 +Problem: Configure can't always find the Tcl header files. +Solution: Also look in /usr/local/include/tcl$tclver and + /usr/include/tcl$tclver (James Vega) +Files: src/auto/configure, src/configure.in + +Patch 7.1.258 +Problem: Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula) +Solution: Avoid that the column becomes negative. Also fixes other problems + with the end of a pattern match is in column zero. (A.Politz) +Files: src/search.c + +Patch 7.1.259 +Problem: Cursor is in the wrong position when 'rightleft' is set, + 'encoding' is "utf-8" and on an illegal byte. (Dominique Pelle) +Solution: Only put the cursor in the first column when actually on a + double-wide character. (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.1.260 +Problem: Cursor positioning problem after ^@ wrapping halfway when + 'encoding' is utf-8. +Solution: Only count a position for printable characters. (partly by + Yukihiro Nakadaira) +Files: src/charset.c + +Patch 7.1.261 +Problem: When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work + for UTF-16 text. (Tony Mechelynck) +Solution: Default to UTF-16. +Files: src/fileio.c, src/testdir/test42.ok + +Patch 7.1.262 +Problem: Can't get the process ID of Vim. +Solution: Implement getpid(). +Files: src/eval.c, runtime/doc/eval.txt + +Patch 7.1.263 +Problem: The filetype can consist of two dot separated names. This works + for syntax and ftplugin, but not for indent. (Brett Stahlman) +Solution: Use split() and loop over each dot separated name. +Files: runtime/indent.vim + +Patch 7.1.264 +Problem: Crash when indenting lines. (Dominique Pelle) +Solution: Set the cursor column when changing the cursor line. +Files: src/ops.c, src/misc1.c + +Patch 7.1.265 +Problem: When 'isfname' contains a space, cmdline completion can hang. + (James Vega) +Solution: Reset the "len" variable. +Files: src/ex_docmd.c + +Patch 7.1.266 +Problem: When the version string returned by the terminal contains + unexpected characters, it is used as typed input. (James Vega) +Solution: Assume the escape sequence ends in a letter. +Files: src/term.c + +Patch 7.1.267 +Problem: When changing folds cursor may be posioned in the wrong place. +Solution: Call changed_window_setting_win() instead of + changed_window_setting(). +Files: src/fold.c + +Patch 7.1.268 +Problem: Always shows "+" at end of screen line with: ":set + listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson) +Solution: Check for lcs_eol_one instead of lcs_eol. +Files: src/screen.c + +Patch 7.1.269 +Problem: The matchparen plugin has an arbitrary limit for the number of + lines to look for a match. +Solution: Rely on the searchpair() timeout. +Files: runtime/plugin/matchparen.vim + +Patch 7.1.270 +Problem: ":?foo?" matches in current line since patch 7.1.025. (A.Politz) +Solution: Remove the SEARCH_START flag. +Files: src/ex_docmd.c, src/search.c + +Patch 7.1.271 +Problem: In a Vim build without autocommands, checking a file that was + changed externally causes the current buffer to be changed + unexpectedly. (Karsten Hopp) +Solution: Store "curbuf" instead of "buf". +Files: src/fileio.c + +Patch 7.1.272 +Problem: The special buffer name [Location List] is not used for a buffer + displayed in another tab page. +Solution: Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki + Nishihara) +Files: src/buffer.c + +Patch 7.1.273 +Problem: When profiling on Linux Vim exits early. (Liu Yubao) +Solution: When profiling don't exit on SIGPROF. +Files: src/Makefile, src/os_unix.c + +Patch 7.1.274 (after 7.1.272) +Problem: Compiler warning for optimized build. +Solution: Init win to NULL. +Files: src/buffer.c + +Patch 7.1.275 (extra) +Problem: Mac: ATSUI and 'antialias' don't work properly together. +Solution: Fix this and the input method. (Jjgod Jiang) +Files: src/vim.h, src/gui_mac.c + +Patch 7.1.276 +Problem: "gw" uses 'formatexpr', even though the docs say it doesn't. +Solution: Don't use 'formatexpr' for "gw". +Files: src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro + +Patch 7.1.277 +Problem: Default for 'paragraphs' misses some items (Colin Watson) +Solution: Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega) +Files: runtime/doc/options.txt, src/option.c + +Patch 7.1.278 (extra, after 7.1.275) +Problem: Build failure when USE_CARBONKEYHANDLER is not defined. +Solution: Remove #ifdef. +Files: src/gui_mac.c + +Patch 7.1.279 +Problem: When using cscope temporary files are left behind. +Solution: Send the quit command to cscope and give it two seconds to exit + nicely before killing it. (partly by Dominique Pelle) +Files: src/if_cscope.c + +Patch 7.1.280 (after 7.1.275) +Problem: Mac: build problems when not using multibyte feature. (Nicholas + Stallard) +Solution: Don't define USE_IM_CONTROL when not using multibyte. +Files: src/vim.h + +Patch 7.1.281 (after 7.1.279) +Problem: sa.sa_mask is not initialized. Cscope may not exit. +Solution: Use sigemptyset(). Use SIGKILL instead of SIGTERM. (Dominique + Pelle) +Files: src/if_cscope.c + +Patch 7.1.282 (extra) +Problem: Win64: Edit with Vim context menu isn't installed correctly. + Compiler warnings and a few other things. +Solution: Add [ and ] to entry of class name. Use UINT_PTR instead of UINT. + And a fixes for the other things. (George V. Reilly) +Files: src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h, + src/if_ole.idl, src/INSTALLpc.txt, src/Make_mvc.mak, + src/os_win32.c, + +Patch 7.1.283 +Problem: Non-extra part for 7.1.282. +Solution: Various changes. +Files: src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c, + src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h, + src/window.c + +Patch 7.1.284 +Problem: Compiler warnings for functions without prototype. +Solution: Add the function prototypes. (Patrick Texier) +Files: src/eval.c, src/quickfix.c + +Patch 7.1.285 (extra) +Problem: Mac: dialog hotkeys don't work. +Solution: Add hotkey support. (Dan Sandler) +Files: src/gui_mac.c + +Patch 7.1.286 (after 7.1.103) +Problem: "w" at the end of the buffer moves the cursor past the end of the + line. (Markus Heidelberg) +Solution: Move the cursor back from the NUL when it was moved forward. +Files: src/normal.c + +Patch 7.1.287 +Problem: Crash when reversing a list after using it. (Andy Wokula) +Solution: Update the pointer to the last used element. (Dominique Pelle) +Files: src/eval.c + +Patch 7.1.288 (after 7.1.281) +Problem: Cscope still leaves behind temp files when using gvim. +Solution: When getting the ECHILD error loop for a while until cscope exits. + (Dominique Pelle) +Files: if_cscope.c + +Patch 7.1.289 +Problem: When EXITFREE is defined and 'acd' is set freed memory is used. + (Dominique Pelle) +Solution: Reset p_acd before freeing all buffers. +Files: src/misc2.c + +Patch 7.1.290 +Problem: Reading bytes that were not written when spell checking and a line + has a very large indent. +Solution: Don't copy the start of the next line when it only contains + spaces. (Dominique Pelle) +Files: src/spell.c + +Patch 7.1.291 (after 7.1.288) +Problem: Compiler warning. +Solution: Change 50 to 50L. +Files: src/if_cscope.c + +Patch 7.1.292 +Problem: When using a pattern with "\@<=" the submatches can be wrong. + (Brett Stahlman) +Solution: Save the submatches when attempting a look-behind match. +Files: src/regexp.c + +Patch 7.1.293 +Problem: Spell checking considers super- and subscript characters as word + characters. +Solution: Recognize the Unicode super and subscript characters. +Files: src/spell.c + +Patch 7.1.294 +Problem: Leaking memory when executing a shell command. +Solution: Free memory when not able to save for undo. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.1.295 +Problem: Vimtutor only works with vim, not gvim. +Solution: Add the -g flag to vimtutor. (Dominique Pelle) Add gvimtutor. +Files: src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1 + +Patch 7.1.296 +Problem: SELinux is not supported. +Solution: Detect the selinux library and use mch_copy_sec(). (James Vega) +Files: src/auto/configure, src/config.h.in, src/configure.in, + src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro + +Patch 7.1.297 +Problem: When using the search/replace dialog the parenmatch highlighting + can be wrong. (Tim Duncan) +Solution: In the GUI redraw function invoke the CursorMoved autocmd. +Files: src/gui.c + +Patch 7.1.298 (after 7.1.295) +Problem: src/gvimtutor is not distributed. +Solution: Add it to the list of distributed files. +Files: Filelist + +Patch 7.1.299 +Problem: Filetype detection doesn't work properly for file names ending in + a part that is ignored and contain a space or other special + characters. +Solution: Escape the special characters using the new fnameescape function. +Files: runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c, + src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h + +Patch 7.1.300 +Problem: Value of asmsyntax argument isn't checked for valid characters. +Solution: Only accepts letters and digits. +Files: runtime/filetype.vim + +Patch 7.1.301 +Problem: When the "File/Save" menu is used in Insert mode, a tab page label + is not updated to remove the "+". +Solution: Call draw_tabline() from showruler(). (Bjorn Winckler) +Files: src/screen.c + +Patch 7.1.302 (after 7.1.299) +Problem: Compilation error on MS-Windows. +Solution: Don't use xp_shell when it's not defined. +Files: src/ex_getln.c + +Patch 7.1.303 (after 7.1.302) +Problem: Compilation error on MS-Windows, again. +Solution: Declare p. +Files: src/ex_getln.c + +Patch 7.1.304 +Problem: Shortpath_for_invalid_fname() does not work correctly and is + unnecessary complex. +Solution: Clean up shortpath_for_invalid_fname(). (mostly by Yegappan + Lakshmanan) +Files: src/eval.c + +Patch 7.1.305 +Problem: Editing a compressed file with special characters in the name + doesn't work properly. +Solution: Escape special characters. +Files: runtime/autoload/gzip.vim + +Patch 7.1.306 +Problem: Some Unicode characters are handled like word characters while + they are symbols. +Solution: Adjust the table for Unicode classification. +Files: src/mbyte.c + +Patch 7.1.307 +Problem: Many warnings when compiling with Python 2.5. +Solution: Use ssize_t instead of int for some types. (James Vega) +Files: src/if_python.c + +Patch 7.1.308 +Problem: When in readonly mode ":options" produces an error. +Solution: Reset 'readonly'. (Gary Johnson) +Files: runtime/optwin.vim + +Patch 7.1.309 +Problem: Installing and testing with a shadow directory doesn't work. + (James Vega) +Solution: Add "po" to the list of directories to link. Also link the Vim + scripts in testdir. And a few more small fixes. +Files: src/Makefile + +Patch 7.1.310 +Problem: Incomplete utf-8 byte sequence at end of the file is not detected. + Accessing memory that wasn't written. +Solution: Check the last bytes in the buffer for being a valid utf-8 + character. (mostly by Ben Schmidt) + Also fix that the reported line number of the error was wrong. +Files: src/fileio.c + +Patch 7.1.311 +Problem: Compiler warning for missing sentinel in X code. +Solution: Change 0 to NULL. (Markus Heidelberg) +Files: src/mbyte.c + +Patch 7.1.312 +Problem: The .po files have mistakes in error numbers. +Solution: Search for these mistakes in the check script. (Dominique Pelle) +Files: src/po/check.vim + +Patch 7.1.313 +Problem: When the netbeans interface setModified call is used the status + lines and window title are not updated. +Solution: Redraw the status lines and title. (Philippe Fremy) +Files: src/netbeans.c + +Patch 7.1.314 +Problem: The value of 'pastetoggle' is written to the session file without + any escaping. (Randall Hansen) +Solution: Use put_escstr(). (Ben Schmidt) +Files: src/option.c + +Patch 7.1.315 +Problem: Crash with specific search pattern using look-behind match. + (Andreas Politz) +Solution: Also save the value of "need_clear_subexpr". +Files: src/regexp.c + +Patch 7.1.316 +Problem: When 'cscopetag' is set ":tag" gives an error message instead of + going to the next tag in the tag stack. +Solution: Don't call do_cstag() when there is no argument. (Mark Goldman) +Files: src/ex_docmd.c + +Patch 7.1.317 +Problem: Compiler warnings in Motif calls. +Solution: Change zero to NULL. (Dominique Pelle) +Files: src/gui_motif.c + +Patch 7.1.318 +Problem: Memory leak when closing xsmp connection. Crash on exit when + using Lesstif. +Solution: Don't close the X display to work around a Lesstif bug. Free + clientid. Also fix a leak for Motif and Athena. (Dominique Pelle) +Files: src/gui_x11.c, src/os_unix.c + +Patch 7.1.319 +Problem: When a register has an illegal utf-8 sequence, pasting it on the + command line causes an illegal memory access. +Solution: Use mb_cptr2char_adv(). (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.1.320 (extra) +Problem: Win64: Warnings while compiling Python interface. +Solution: Use PyInt in more places. Also update version message for the + console. (George Reilly) +Files: src/if_python.c, src/version.c + +Patch 7.1.321 (extra) +Problem: Win32 / Win64: Install file is outdated. +Solution: Update the text for recent compiler. (George Reilly) +Files: src/INSTALLpc.txt + +Patch 7.1.322 +Problem: Can't get start of Visual area in an mapping. +Solution: Add the 'v' argument to getpos(). +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.1.323 +Problem: Test 19 fails with some termcaps. (Dominque Pelle) +Solution: Set the t_kb and t_kD termcap values. +Files: src/testdir/test19.in, src/testdir/test38.in + +Patch 7.1.324 +Problem: File name path length on Unix is limited to 1024. +Solution: Use PATH_MAX when it's more than 1000. +Files: src/os_unix.h + +Patch 7.1.325 +Problem: When editing a command line that's longer than available space in + the window, the characters at the end are in reverse order. +Solution: Increment the insert position even when the command line doesn't + fit. (Ingo Karkat) +Files: src/ex_getln.c + +Patch 7.1.326 +Problem: ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the + "!" as a flag to to the command. Same for ":snomagic". (Johan + Spetz) +Solution: When checking for a forced command also ignore ":smagic" and + ":snomagic". (Ian Kelling) +Files: src/ex_docmd.c + +Patch 7.1.327 +Problem: The GUI tutor is installed when there is no GUI version. +Solution: Only install gvimtutor when building a GUI version. +Files: src/Makefile + +Patch 7.1.328 +Problem: Crash when using Cygwin and non-posix path name in tags file. +Solution: Use separate buffer for posix path. (Ben Schmidt) +Files: src/os_unix.c + +Patch 7.1.329 +Problem: When the popup menu is removed a column of cells, the right halve + of double-wide characters, may not be redrawn. +Solution: Check if the right halve of a character needs to be redrawn. + (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.1.330 +Problem: Reading uninitialized memory when using Del in replace mode. +Solution: Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle) +Files: src/misc1.c + + +Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle) + +A search offset from the end of a match didn't work properly for multi-byte +characters. (Yukihiro Nakadaira) + +When displaying the value of 'key' don't show "*****" when the value is empty. +(Ben Schmidt) + +Internal error when compiled with EXITFREE and using the nerd_tree plugin. +Set last_msg_hist to NULL when history becomes empty. Call +free_all_functions() after garbage collection. (Dominique Pelle) + +GTK with XIM: does not work. (Yukihiro Nakadaira) + +Some shells do not support "echo -n", which breaks glob(). Use "echo" instead +of "echo -n $1; echo". (Gary Johnson) + +"echo 22,44" printed "22" on top of the command, the error messages caused +the rest not to be cleared. Added the need_clr_eos flag. + +Netbeans events are handled while updating the screen, causing a crash. +Change the moment when events are handled. Rename nb_parse_messages() to +netbeans_parse_messages(). (Xavier de Gaye) + +Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf) +Use shellescape() on the file name. + +IM was turned off in im_preedit_end_cb() for no good reason. (Takuhiro +Nishioka) + +A corrupted spell file could cause Vim to use lots of memory. Better +detection for running into the end of the file. (idea from James Vega) + +Mac: Included a patch to make it build with GTK. Moved language init to +mac_lang_init() function. (Ben Schmidt) + +Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor) + +Fix configure.in to avoid "implicitly declared" warnings when running +configure. + +Fixed a memory leak when redefining a keymap. (Dominique Pelle) + +Setting 'pastetoggle' to "jj" didn't work. + +'ic' and 'smartcase' don't work properly when using \%V in a search pattern. +(Kana Natsuno) vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/vim-fr.1 b/runtime/doc/vim-fr.1 --- a/runtime/doc/vim-fr.1 +++ b/runtime/doc/vim-fr.1 @@ -143,7 +143,7 @@ Place le curseur sur la ligne "num" dans Si "num" est omis, le curseur sera plac sur la dernire ligne. .TP +/{motif} -Place le curseur sur la premire occurence de {motif} dans le premier fichier. +Place le curseur sur la premire occurrence de {motif} dans le premier fichier. Voir ":help search\-pattern" pour connatre les motifs de recherches disponibles. .TP @@ -258,7 +258,7 @@ est mis et quitte. .TP \-h -Donne une aide succinte sur les arguments et les options de la ligne de +Donne une aide succincte sur les arguments et les options de la ligne de commande. Aprs cela, .B Vim quitte. @@ -269,7 +269,7 @@ Si a t compil avec le support de la fonctionnalit RIGHTLEFT pour l'dition de fichiers de droite gauche et les claviers hbreu, cette option lance .B Vim -en mode Hebreu, c.--d. avec les options 'hkmap' et 'rightleft' actives. +en mode Hbreu, c.--d. avec les options 'hkmap' et 'rightleft' actives. Sinon, un message d'erreur est mis et .B Vim quitte. @@ -295,7 +295,7 @@ d'crire le fichier. .TP \-M N'autorise aucune modification. les options 'modifiable' et 'write' sont -desactives, de sorte que les changements ne sont pas autoriss et que les +dsactives, de sorte que les changements ne sont pas autoriss et que les fichiers ne peuvent pas tre crits. Note : ces options peuvent tre actives pour autoriser les modifications. .TP diff --git a/runtime/doc/vim-fr.UTF-8.1 b/runtime/doc/vim-fr.UTF-8.1 --- a/runtime/doc/vim-fr.UTF-8.1 +++ b/runtime/doc/vim-fr.UTF-8.1 @@ -143,7 +143,7 @@ Place le curseur sur la ligne "num" dans Si "num" est omis, le curseur sera placé sur la dernière ligne. .TP +/{motif} -Place le curseur sur la première occurence de {motif} dans le premier fichier. +Place le curseur sur la première occurrence de {motif} dans le premier fichier. Voir ":help search\-pattern" pour connaître les motifs de recherches disponibles. .TP @@ -258,7 +258,7 @@ est émis et quitte. .TP \-h -Donne une aide succinte sur les arguments et les options de la ligne de +Donne une aide succincte sur les arguments et les options de la ligne de commande. Après cela, .B Vim quitte. @@ -269,7 +269,7 @@ Si a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de fichiers de droite à gauche et les claviers hébreu, cette option lance .B Vim -en mode Hebreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées. +en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées. Sinon, un message d'erreur est émis et .B Vim quitte. @@ -295,7 +295,7 @@ d'écrire le fichier. .TP \-M N'autorise aucune modification. les options 'modifiable' et 'write' sont -desactivées, de sorte que les changements ne sont pas autorisés et que les +désactivées, de sorte que les changements ne sont pas autorisés et que les fichiers ne peuvent pas être écrits. Note : ces options peuvent être activées pour autoriser les modifications. .TP diff --git a/runtime/doc/workshop.txt b/runtime/doc/workshop.txt --- a/runtime/doc/workshop.txt +++ b/runtime/doc/workshop.txt @@ -1,4 +1,4 @@ -*workshop.txt* For Vim version 7.1. Last change: 2006 Apr 24 +*workshop.txt* For Vim version 7.2a. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Gordon Prieur diff --git a/runtime/ftplugin/cdrdaoconf.vim b/runtime/ftplugin/cdrdaoconf.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/cdrdaoconf.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" Maintainer: Nikolai Weibull +" Latest Revision: 2007-09-18 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql + +let s:cpo_save = &cpo +set cpo&vim diff --git a/runtime/ftplugin/debcontrol.vim b/runtime/ftplugin/debcontrol.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/debcontrol.vim @@ -0,0 +1,70 @@ +" Vim filetype plugin file (GUI menu and folding) +" Language: Debian control files +" Maintainer: Debian Vim Maintainers +" Former Maintainer: Pierre Habouzit +" Last Change: 2008-03-08 +" URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian + +" Do these settings once per buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin=1 + +" {{{1 Local settings (do on every load) +if exists("g:debcontrol_fold_enable") + setlocal foldmethod=expr + setlocal foldexpr=DebControlFold(v:lnum) + setlocal foldtext=DebControlFoldText() +endif +setlocal textwidth=0 + +" Clean unloading +let b:undo_ftplugin = "setlocal tw< foldmethod< foldexpr< foldtext<" + +" }}}1 + +" {{{1 folding + +function! s:getField(f, lnum) + let line = getline(a:lnum) + let fwdsteps = 0 + while line !~ '^'.a:f.':' + let fwdsteps += 1 + let line = getline(a:lnum + fwdsteps) + if line == '' + return 'unknown' + endif + endwhile + return substitute(line, '^'.a:f.': *', '', '') +endfunction + +function! DebControlFoldText() + if v:folddashes == '-' " debcontrol entry fold + let type = substitute(getline(v:foldstart), ':.*', '', '') + if type == 'Source' + let ftext = substitute(foldtext(), ' *Source: *', ' ', '') + return ftext . ' -- ' . s:getField('Maintainer', v:foldstart) . ' ' + endif + let arch = s:getField('Architecture', v:foldstart) + let ftext = substitute(foldtext(), ' *Package: *', ' [' . arch . '] ', '') + return ftext . ': ' . s:getField('Description', v:foldstart) . ' ' + endif + return foldtext() +endfunction + +function! DebControlFold(l) + + " This is for not merging blank lines around folds to them + if getline(a:l) =~ '^Source:' + return '>1' + endif + + if getline(a:l) =~ '^Package:' + return '>1' + endif + + return '=' +endfunction + +" }}}1 diff --git a/runtime/ftplugin/dosini.vim b/runtime/ftplugin/dosini.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/dosini.vim @@ -0,0 +1,13 @@ +" Vim filetype plugin file +" Language: Configuration File (ini file) for MSDOS/MS Windows +" Maintainer: Nikolai Weibull +" Latest Revision: 2007-08-23 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql diff --git a/runtime/ftplugin/gitconfig.vim b/runtime/ftplugin/gitconfig.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/gitconfig.vim @@ -0,0 +1,15 @@ +" Vim filetype plugin +" Language: git config file +" Maintainer: Tim Pope +" Last Change: 2007 Dec 16 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif +let b:did_ftplugin = 1 + +setlocal formatoptions-=t formatoptions+=croql +setlocal comments=:#,:; commentstring=;\ %s + +let b:undo_ftplugin = "setl fo< com< cms<" diff --git a/runtime/ftplugin/gitrebase.vim b/runtime/ftplugin/gitrebase.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/gitrebase.vim @@ -0,0 +1,41 @@ +" Vim filetype plugin +" Language: git rebase --interactive +" Maintainer: Tim Pope +" Last Change: 2008 Apr 16 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif + +runtime! ftplugin/git.vim +let b:did_ftplugin = 1 + +setlocal comments=:# commentstring=#\ %s formatoptions-=t +if !exists("b:undo_ftplugin") + let b:undo_ftplugin = "" +endif +let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<" + +function! s:choose(word) + s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e +endfunction + +function! s:cycle() + call s:choose(get({'s':'edit','p':'squash'},getline('.')[0],'pick')) +endfunction + +command! -buffer -bar Pick :call s:choose('pick') +command! -buffer -bar Squash :call s:choose('squash') +command! -buffer -bar Edit :call s:choose('edit') +command! -buffer -bar Cycle :call s:cycle() +" The above are more useful when they are mapped; for example: +"nnoremap S :Cycle + +if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps") + finish +endif + +nnoremap K col('.') < 7 && expand('cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K' + +let b:undo_ftplugin = b:undo_ftplugin . "|nunmap K" diff --git a/runtime/indent/tcsh.vim b/runtime/indent/tcsh.vim --- a/runtime/indent/tcsh.vim +++ b/runtime/indent/tcsh.vim @@ -1,7 +1,7 @@ " Vim indent file " Language: C-shell (tcsh) " Maintainer: Gautam Iyer -" Last Modified: Wed 04 Feb 2004 04:36:07 PM CST +" Last Modified: Sat 16 Jun 2007 04:27:45 PM PDT " Only load this indent file when no other was loaded. if exists("b:did_indent") @@ -11,7 +11,7 @@ endif let b:did_indent = 1 setlocal indentexpr=TcshGetIndent() -setlocal indentkeys+=e,0=end,0=endsw,* indentkeys-=0{,0},0),:,0# +setlocal indentkeys+=e,0=end,0=endsw indentkeys-=0{,0},0),:,0# " Only define the function once. if exists("*TcshGetIndent") diff --git a/runtime/indent/tf.vim b/runtime/indent/tf.vim new file mode 100644 --- /dev/null +++ b/runtime/indent/tf.vim @@ -0,0 +1,72 @@ +" Vim indent file +" Language: tf (TinyFugue) +" Maintainer: Christian J. Robinson +" URL: http://www.infynity.spodzone.com/vim/indent/tf.vim +" Last Change: 2002 May 29 + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetTFIndent() +setlocal indentkeys-=0{,0} indentkeys-=0# indentkeys-=: +setlocal indentkeys+==/endif,=/then,=/else,=/done,0; + +" Only define the function once: +if exists("*GetTFIndent") + finish +endif + +function GetTFIndent() + " Find a non-blank line above the current line: + let lnum = prevnonblank(v:lnum - 1) + + " No indent for the start of the file: + if lnum == 0 + return 0 + endif + + let ind = indent(lnum) + let line = getline(lnum) + + " No indentation if the previous line didn't end with "\": + " (Could be annoying, but it lets you know if you made a mistake.) + if line !~ '\\$' + return 0 + endif + + if line =~ '\(/def.*\\\|/for.*\(%;\s*\)\@\:p:h/croatian_utf-8.vim +elseif s:encoding == 'cp1250' + source :p:h/croatian_cp1250.vim +else + source :p:h/croatian_iso-8859-2.vim +endif diff --git a/runtime/keymap/croatian_cp1250.vim b/runtime/keymap/croatian_cp1250.vim new file mode 100644 --- /dev/null +++ b/runtime/keymap/croatian_cp1250.vim @@ -0,0 +1,65 @@ +" Vim Keymap file for Croatian characters, classical variant, cp1250 encoding +" +" Maintainer: Paul B. Mahol +" Last Changed: 2007 Oct 15 + +scriptencoding cp1250 + +let b:keymap_name = "croatian-cp1250" +" Uncomment line below if you prefer short name +"let b:keymap_name = "hr-cp1250" + +loadkeymap +z y +Z Y +y z +Y Z +[ +{ +] +} +; +: +' +" +\ +| +/ - +? _ +> : +< ; + < + > + { + } + [ + ] + \ + | += + ++ * +- ' +_ ? +@ " +^ & +& / +* ( +( ) +) = + ~ + @ + ^ + + + + + + + + + ` + + + + + diff --git a/runtime/lang/menu_ca_es.latin1.vim b/runtime/lang/menu_ca_es.latin1.vim --- a/runtime/lang/menu_ca_es.latin1.vim +++ b/runtime/lang/menu_ca_es.latin1.vim @@ -1,7 +1,7 @@ " Menu translations for Catalan " " Maintainer: Ernest Adrogu -" Last Change: 18 Jan 2004 +" Last Change: 6 Jun 2008 " " Quit when menu translations have already been done. @@ -16,7 +16,6 @@ if &enc != "cp1252" && &enc != "iso-8859 scriptencoding latin1 endif - " men Ajuda menutrans &Help &Ajuda menutrans &Overview &Introducci @@ -25,17 +24,18 @@ menutrans &How-to\ links Com\ &fer\.\.\ menutrans &Find\.\.\. &Cerca\.\.\. menutrans &Credits &Autors menutrans Co&pying Con&dicions +menutrans &Sponsor/Register &Patrocini/Registre menutrans O&rphans &Orfes menutrans &Version &Versi menutrans &About &Quant\ a\.\.\. " text del dileg Ajuda/Cerca... let g:menutrans_help_dialog = "Introduu el terme sobre el qual necessiteu ajuda.\n\nUseu el prefix i_ per ordres d'entrada (p.ex.: i_CTRL-X)\nUseu el prefix c_ per ordres de la lnia d'ordres (p.ex.: c_)\nUseu el prefix ' per noms d'opcions (p.ex.: 'shiftwidth')" - " men Fitxer menutrans &File &Fitxer menutrans &Open\.\.\.:e &Obre\.\.\.:e menutrans Sp&lit-Open\.\.\.:sp Obre\ en\ una\ &finestra\ nova\.\.\.:sp +menutrans Open\ Tab\.\.\.:tabnew Obre\ pestanya\.\.\.:tabnew menutrans &New:enew &Nou:enew menutrans &Close:close &Tanca:close menutrans &Save:w &Desa:w @@ -46,7 +46,6 @@ menutrans &Print &Imprimeix menutrans Sa&ve-Exit:wqa Desa\ i\ s&urt:wqa menutrans E&xit:qa &Surt:qa - " men Edita menutrans &Edit &Edita menutrans &Undou &Desfsu @@ -58,14 +57,15 @@ menutrans &Paste"+gP Engan&xa menutrans Put\ &Before[p Posa\ &abans[p menutrans Put\ &After]p P&osa\ desprs]p menutrans &Deletex Suprimeixx -menutrans &Select\ allggVG &Selecciona-ho\ totggVG +menutrans &Select\ AllggVG &Selecciona-ho\ totggVG menutrans &Find\.\.\. &Cerca\.\.\. menutrans &Find/ &Cerca/ menutrans Find\ and\ Rep&lace Cerca\ i\ s&ubstitueix menutrans Find\ and\ Rep&lace\.\.\. Cerca\ i\ s&ubstitueix\.\.\. menutrans Find\ and\ Rep&lace:%s Cerca\ i\ s&ubstitueix:%s menutrans Find\ and\ Rep&lace:s Cerca\ i\ s&ubstitueix:s -menutrans Settings\ &Window &Finestra\ d'opcions +menutrans Settings\ &Window Fin&estra\ d'opcions +menutrans Startup\ &Settings Opcions\ i&nicials menutrans &Global\ Settings Opcions\ &globals " submen Edita/Opcions Globals menutrans Toggle\ Pattern\ &Highlight:set\ hls! Ressalt\ de\ &patrons:set\ hls! @@ -100,7 +100,7 @@ menutrans F&ile\ Settings Opcions\ de menutrans Soft\ &Tabstop Amplada\ de\ &tabulaci menutrans Te&xt\ Width\.\.\. &Amplada\ del\ text\.\.\. menutrans &File\ Format\.\.\. &Format\ del\ fitxer\.\.\. -menutrans Select\ Fo&nt\.\.\. Tipus\ de\ &lletra\.\.\. +menutrans Select\ Fo&nt\.\.\. &Fosa\.\.\. menutrans C&olor\ Scheme Es&quema\ de\ colors " submen Edita/Esquema de colors menutrans blue blau @@ -144,6 +144,25 @@ menutrans &Tools Ei&nes menutrans &Jump\ to\ this\ tagg^] &Salta\ a\ aquesta\ etiquetag^] menutrans Jump\ &back^T Salta\ en&rere^T menutrans Build\ &Tags\ File Crea\ un\ fitxer\ d'eti&quetes +menutrans &Spelling &Ortografia +" submen Eines/Ortografia + menutrans &Spell\ Check\ On Activa\ la\ &revisi\ ortogrfica + menutrans Spell\ Check\ &Off &Desactiva\ la\ revisi\ ortogrfica + menutrans To\ &Next\ error]s Error\ &segent]s + menutrans To\ &Previous\ error[s Error\ &anterior[s + menutrans Suggest\ &Correctionsz= Su&ggerimentsz= + menutrans &Repeat\ correction:spellrepall Re&peteix\ la\ correcci:spellrepall + menutrans Set\ language\ to\ "en" Selecciona\ l'idioma\ "en" + menutrans Set\ language\ to\ "en_au" Selecciona\ l'idioma\ "en_au" + menutrans Set\ language\ to\ "en_ca" Selecciona\ l'idioma\ "en_ca" + menutrans Set\ language\ to\ "en_gb" Selecciona\ l'idioma\ "en_gb" + menutrans Set\ language\ to\ "en_nz" Selecciona\ l'idioma\ "en_nz" + menutrans Set\ language\ to\ "en_us" Selecciona\ l'idioma\ "en_us" + menutrans Set\ language\ to\ "ca" Selecciona\ l'idioma\ "ca" + menutrans Set\ language\ to\ "es" Selecciona\ l'idioma\ "es" + menutrans Set\ language\ to\ "fr" Selecciona\ l'idioma\ "fr" + menutrans Set\ language\ to\ "it" Selecciona\ l'idioma\ "it" + menutrans &Find\ More\ Languages &Cerca\ altres\ idiomes menutrans &Folding &Plecs " submen Eines/Plecs menutrans &Enable/Disable\ foldszi &Habilita/Deshabilita\ els\ plecszi @@ -183,6 +202,7 @@ menutrans Error\ &Window F&inestra\ d'e menutrans &Open:copen &Obre:copen menutrans &Close:cclose &Tanca:cclose menutrans &Set\ Compiler &Compilador +menutrans &SeT\ Compiler &Compilador menutrans &Convert\ to\ HEX:%!xxd Converteix\ a\ &HEX:%!xxd menutrans Conve&rt\ back:%!xxd\ -r Torna\ al\ format\ &original:%!xxd\ -r diff --git a/runtime/lang/menu_fi.latin1.vim b/runtime/lang/menu_fi.latin1.vim new file mode 100644 --- /dev/null +++ b/runtime/lang/menu_fi.latin1.vim @@ -0,0 +1,3 @@ +" Menu Translations: Finnish for latin 1 encoding + +source :p:h/menu_fi_fi.latin1.vim diff --git a/runtime/lang/menu_fi_fi.latin1.vim b/runtime/lang/menu_fi_fi.latin1.vim new file mode 100644 --- /dev/null +++ b/runtime/lang/menu_fi_fi.latin1.vim @@ -0,0 +1,473 @@ +" Menu Translations: Finnish +" Maintainer: Flammie Pirinen +" Last Change: 2007 Sep 04 + +" Quit when menu translations have already been done. +if exists("did_menu_trans") + finish +endif +let did_menu_trans = 1 + +" Translations should be in latin1, if it requires latin9 or even unicode, +" change this: +if &enc != "cp1252" && &enc != "iso-8859-15" && &enc != "iso-8859-1" + scriptencoding latin1 +endif + +" Accels: TMYSPIO +menutrans &File &Tiedosto +" Accels: AJTUSNIDPOE +menutrans &Open\.\.\.:e &Avaa\.\.\.:e +menutrans Sp&lit-Open\.\.\.:sp Avaa\ &jaettuna\.\.\.:sp +menutrans Open\ Tab\.\.\.:tabnew Avaa\ &tabissa\.\.\.:tabnew +menutrans &New:enew &Uusi:enew +menutrans &Close:close &Sulje:close +" -SEP1- +menutrans &Save:w Talle&nna:w +menutrans Save\ &As\.\.\.:sav Tallenna\ n&imell\.\.\.:sav +" -SEP2- +menutrans Split\ &Diff\ with\.\.\. Jaa\ &diffill\.\.\. +menutrans Split\ Patched\ &By\.\.\. Jaa\ &patchilla\.\.\. +" -SEP3- +menutrans &Print Tul&osta +" -SEP4- +menutrans Sa&ve-Exit:wqa Tall&enna\ ja\ lopeta:wqa +menutrans E&xit:qa &Lopeta:qa + + +menutrans &Edit &Muokkaa +" Accels: KPTLOIEJSAHRUYKVNF +menutrans &Undou &Kumoau +menutrans &Redo^R &Palauta^R +menutrans Rep&eat\. &Toista\. +" -SEP1- +menutrans Cu&t"+x &Leikkaa"+x +menutrans &Copy"+y K&opioi"+y +menutrans &Paste"+gP L&iit"+gP +menutrans Put\ &Before[p Lis\ &ennen[p +menutrans Put\ &After]p Lis\ &jlkeen]p +menutrans &Deletex Poi&stax +menutrans &Select\ AllggVG V&alitse\ kaikkiggVG +" -SEP2- +menutrans &Find\.\.\. &Hae\.\.\. +menutrans Find\ and\ Rep&lace\.\.\. Hae\ ja\ ko&rvaa\.\.\. +menutrans &Find/ &Hae/ +menutrans Find\ and\ Rep&lace:%s Hae\ ja\ ko&rvaa:%s +menutrans Find\ and\ Rep&lace:s Hae\ ja\ ko&rvaa:s +" -SEP3- +menutrans Settings\ &Window Aset&usikkuna +menutrans Startup\ &Settings &Kynnistysasetukset +menutrans &Global\ Settings &Yleiset\ asetukset +" Submenu: +" Accels: KOSHVYIATLEPR +menutrans Toggle\ Pattern\ &Highlight:set\ hls! &Korostus:set\ hls! +menutrans Toggle\ &Ignore-case:set\ ic! &Ohita\ kirjaintaso:set\ ic! +menutrans Toggle\ &Showmatch:set\ sm! &Suljekorostus:set\ sm! + +menutrans &Context\ lines &Huomioitavat\ kontekstirivit +" Subsubmenu: +" Accels: ELSOA +menutrans &Virtual\ Edit &Virtuaalimuokkaus +menutrans Never &Ei koskaan +menutrans Block\ Selection &Lohkovalinta +menutrans Insert\ mode &Sytttila +menutrans Block\ and\ Insert L&ohkosytttila +menutrans Always &Aina + +menutrans Toggle\ Insert\ &Mode:set\ im! S&ytttila:set\ im! +menutrans Toggle\ Vi\ C&ompatible:set\ cp! V&i-tila:set\ cp! +menutrans Search\ &Path\.\.\. H&akupolku\.\.\. +menutrans Ta&g\ Files\.\.\. &Tgitiedostot\.\.\. +" -SEP1- +menutrans Toggle\ &Toolbar Tyka&lupalkki +menutrans Toggle\ &Bottom\ Scrollbar Vaakavi&erityspalkki +menutrans Toggle\ &Left\ Scrollbar Vasen\ &pystyvierityspalkki +menutrans Toggle\ &Right\ Scrollbar Oikea\ pystyvie&rityspalkki + +let g:menutrans_path_dialog = "Anna tiedostojen hakupolku.\nErota hakemistot pilkuin." +let g:menutrans_tags_dialog = "Anna tgitiedostojen nimet.\nErota tidostot pilkuin." + +menutrans F&ile\ Settings Tiedostoasetu&kset +" Submenu: +" Accels: NLRSTACIBEM +menutrans Toggle\ Line\ &Numbering:set\ nu! Rivi&numerointi:set\ nu! +menutrans Toggle\ &List\ Mode:set\ list! &Listaustila:set\ list! +menutrans Toggle\ Line\ &Wrap:set\ wrap! &Rivitys:set\ wrap! +menutrans Toggle\ W&rap\ at\ word:set\ lbr! &Sanoittainen rivitys:set\ lbr! +menutrans Toggle\ &expand-tab:set\ et! Muuta\ &tabit\ vleiksi:set\ et! +menutrans Toggle\ &auto-indent:set\ ai! &Automaattinen\ sisennys:set\ ai! +menutrans Toggle\ &C-indenting:set\ cin! &C-kielen\ sisennys:set\ cin! +" -SEP2- +menutrans &Shiftwidth S&isennysleveys +menutrans Soft\ &Tabstop Nennista&bulointi +menutrans Te&xt\ Width\.\.\. Tekstinl&eveys\.\.\. +menutrans &File\ Format\.\.\. Tiedosto&muoto\.\.\. + +let g:menutrans_textwidth_dialog = "Anna uusi tekstin leveys\n(0 poistaa kytst)" +let g:menutrans_fileformat_dialog = "Anaa tiedoston kirjoitusmuoto." +let g:menutrans_fileformat_choices = " &Unix \n &Dos \n &Mac \n &Peru " + +menutrans C&olor\ Scheme &Vriteema +menutrans &Keymap &Nppinkartta +menutrans None Ei mikn +menutrans Select\ Fo&nt\.\.\. Valitse\ &fontti\.\.\. + + +menutrans &Tools T&ykalut +" Accels: ___OTDM__ +menutrans &Jump\ to\ this\ tagg^] Siirry\ tgiing^] +menutrans Jump\ &back^T Siirry\ takaisin^T +menutrans Build\ &Tags\ File Luo\ tgitiedosto + +" -SEP1- +menutrans &Spelling &Oikeinkirjoitus +" Submenu: +" Accels: OSEKT +menutrans &Spell\ Check\ On &Oikaisuluku\ plle +menutrans Spell\ Check\ &Off &Oikaisuluku\ pois\ plt +menutrans To\ &Next\ error]s &Seuraavaan\ virheeseen]s +menutrans To\ &Previous\ error[s &Edelliseen\ virheeseen[s +menutrans Suggest\ &Correctionsz= Ehdota\ &korjaustaz= +menutrans &Repeat\ correction:spellrepall &Toista\ korjaus:spellrepall + +menutrans Set\ language\ to\ "en" Aseta\ kieleksi\ en +menutrans Set\ language\ to\ "en_au" Aseta\ kieleksi\ en_au +menutrans Set\ language\ to\ "en_ca" Aseta\ kieleksi\ en_ca +menutrans Set\ language\ to\ "en_gb" Aseta\ kieleksi\ en_gb +menutrans Set\ language\ to\ "en_nz" Aseta\ kieleksi\ en_nz +menutrans Set\ language\ to\ "en_us" Aseta\ kieleksi\ en_us + +menutrans &Find\ More\ Languages Hae\ lis\ kieli + + + +menutrans &Folding &Taitokset +" Accels: TNVSAPEOKL +menutrans &Enable/Disable\ foldszi &Taitoksetzi +menutrans &View\ Cursor\ Linezv &Nyt\ kursorin\ rivizv +menutrans Vie&w\ Cursor\ Line\ onlyzMzx Nyt\ &vain\ kursorin\ rivizMzx +menutrans C&lose\ more\ foldszm &Sulje\ lis\ taitoksiazm +menutrans &Close\ all\ foldszM &Sulje\ kaikki\ taitoksetzM +menutrans O&pen\ more\ foldszr &Avaa\ lis\ taitoksiazr +menutrans &Open\ all\ foldszR &Avaa\ kaikki\ taitoksetzR +" -SEP1- +menutrans Fold\ Met&hod Taitteluta&pa +" Submenu: +" Accels: MILSDM +menutrans M&anual &Manuaalinen +menutrans I&ndent S&isennys +menutrans E&xpression I&lmaus +menutrans S&yntax &Syntaksi +menutrans &Diff &Diff +menutrans Ma&rker &Merkit + +menutrans Create\ &Foldzf T&ee\ taitoszf +menutrans &Delete\ Foldzd P&oista\ taitoszd +menutrans Delete\ &All\ FoldszD Poista\ &kaikki\ taitoksetzD +" -SEP2- +menutrans Fold\ col&umn\ width Taitossarakkeen\ &leveys + +menutrans &Diff &Diffit +" Submenu: +" Accels: PHL +menutrans &Update &Pivit +menutrans &Get\ Block &Hae\ lohko +menutrans &Put\ Block &Lis\ lohko + +" -SEP2- +menutrans &Make:make &Make:make +menutrans &List\ Errors:cl Virheluettelo:cl +menutrans L&ist\ Messages:cl! Virheviestit:cl! +menutrans &Next\ Error:cn Seuraava\ virhe:cn +menutrans &Previous\ Error:cp Edellinen\ virhe:cp +menutrans &Older\ List:cold Edellinen\ lista:cold +menutrans N&ewer\ List:cnew Seuraava\ lista:cnew + +menutrans Error\ &Window Virheikkuna +" Submenu: +" Accels: PAS +menutrans &Update:cwin &Pivit:cwin +menutrans &Open:copen &Avaa:copen +menutrans &Close:cclose &Sulje:cclose + +menutrans Se&T\ Compiler Ase&ta\ kntj +" -SEP3- +menutrans &Convert\ to\ HEX:%!xxd Muunna\ heksoiksi:%!xxd +menutrans Conve&rt\ back:%!xxd\ -r Muunna\ takaisin:%!xxd\ -r + + +menutrans &Syntax &Syntaksi +" Accels: NSFPMAT +menutrans &Show\ filetypes\ in\ menu &Nyt\ tiedostotyypit\ valikossa +" -SEP1- +menutrans Set\ '&syntax'\ only Aseta\ vain\ &syntax +menutrans Set\ '&filetype'\ too Aseta\ mys\ &filetype +menutrans &Off &Pois\ plt +" -SEP3- +menutrans Co&lor\ test Testaa\ vrit +menutrans &Highlight\ test Testaa\ korostukset +menutrans &Convert\ to\ HTML Muunna\ HTML:ksi +" -SEP2- +menutrans &Off &Pois\ plt +menutrans &Manual &Manuaalinen +menutrans A&utomatic &Automaattinen +menutrans on/off\ for\ &This\ file Kytke\ &tlle\ tiedostolle + +" The Start Of The Syntax Menu +menutrans ABC\ music\ notation ABC\ (notation\ musicale) +menutrans AceDB\ model Modle\ AceDB +menutrans Apache\ config Config\.\ Apache +menutrans Apache-style\ config Config\.\ style\ Apache +menutrans ASP\ with\ VBScript ASP\ avec\ VBScript +menutrans ASP\ with\ Perl ASP\ avec\ Perl +menutrans Assembly Assembleur +menutrans BC\ calculator Calculateur\ BC +menutrans BDF\ font Fonte\ BDF +menutrans BIND\ config Config\.\ BIND +menutrans BIND\ zone Zone\ BIND +menutrans Cascading\ Style\ Sheets Feuilles\ de\ style\ en\ cascade +menutrans Cfg\ Config\ file Fichier\ de\ config\.\ \.cfg +menutrans Cheetah\ template Patron\ Cheetah +menutrans commit\ file Fichier\ commit +menutrans Generic\ Config\ file Fichier\ de\ config\.\ gnrique +menutrans Digital\ Command\ Lang DCL +menutrans DNS/BIND\ zone Zone\ BIND/DNS +menutrans Dylan\ interface Interface +menutrans Dylan\ lid LID +menutrans Elm\ filter\ rules Rgles\ de\ filtrage\ Elm +menutrans ERicsson\ LANGuage Erlang\ (langage\ Ericsson) +menutrans Essbase\ script Script\ Essbase +menutrans Eterm\ config Config\.\ Eterm +menutrans Exim\ conf Config\.\ Exim +menutrans Fvwm\ configuration Config\.\ Fvwm +menutrans Fvwm2\ configuration Config\.\ Fvwm2 +menutrans Fvwm2\ configuration\ with\ M4 Config\.\ Fvwm2\ avec\ M4 +menutrans GDB\ command\ file Fichier\ de\ commandes\ GDB +menutrans HTML\ with\ M4 HTML\ avec\ M4 +menutrans Cheetah\ HTML\ template Patron\ Cheetah\ pour\ HTML +menutrans IDL\Generic\ IDL IDL\IDL\ gnrique +menutrans IDL\Microsoft\ IDL IDL\IDL\ Microsoft +menutrans Indent\ profile Profil\ Indent +menutrans Inno\ setup Config\.\ Inno +menutrans InstallShield\ script Script\ InstallShield +menutrans KDE\ script Script\ KDE +menutrans LFTP\ config Config\.\ LFTP +menutrans LifeLines\ script Script\ LifeLines +menutrans Lynx\ Style Style\ Lynx +menutrans Lynx\ config Config\.\ Lynx +menutrans Man\ page Page\ Man +menutrans MEL\ (for\ Maya) MEL\ (pour\ Maya) +menutrans 4DOS\ \.bat\ file Fichier\ \.bat\ 4DOS +menutrans \.bat\/\.cmd\ file Fichier\ \.bat\ /\ \.cmd +menutrans \.ini\ file Fichier\ \.ini +menutrans Module\ Definition Dfinition\ de\ module +menutrans Registry Extrait\ du\ registre +menutrans Resource\ file Fichier\ de\ ressources +menutrans Novell\ NCF\ batch Batch\ Novell\ NCF +menutrans NSIS\ script Script\ NSIS +menutrans Oracle\ config Config\.\ Oracle +menutrans Palm\ resource\ compiler Compil\.\ de\ resources\ Palm +menutrans PHP\ 3-4 PHP\ 3\ et\ 4 +menutrans Postfix\ main\ config Config\.\ Postfix +menutrans Povray\ scene\ descr Scne\ Povray +menutrans Povray\ configuration Config\.\ Povray +menutrans Purify\ log Log\ Purify +menutrans Readline\ config Config\.\ Readline +menutrans RCS\ log\ output Log\ RCS +menutrans RCS\ file Fichier\ RCS +menutrans RockLinux\ package\ desc\. Desc\.\ pkg\.\ RockLinux +menutrans Samba\ config Config\.\ Samba +menutrans SGML\ catalog Catalogue\ SGML +menutrans SGML\ DTD DTD\ SGML +menutrans SGML\ Declaration Dclaration\ SGML +menutrans Shell\ script Script\ shell +menutrans sh\ and\ ksh sh\ et\ ksh +menutrans Sinda\ compare Comparaison\ Sinda +menutrans Sinda\ input Entre\ Sinda +menutrans Sinda\ output Sortie\ Sinda +menutrans SKILL\ for\ Diva SKILL\ pour\ Diva +menutrans Smarty\ Templates Patrons\ Smarty +menutrans SNNS\ network Rseau\ SNNS +menutrans SNNS\ pattern Motif\ SNNS +menutrans SNNS\ result Rsultat\ SNNS +menutrans Snort\ Configuration Config\.\ Snort +menutrans Squid\ config Config\.\ Squid +menutrans Subversion\ commit Commit\ Subversion +menutrans TAK\ compare Comparaison\ TAK +menutrans TAK\ input Entre\ TAK +menutrans TAK\ output Sortie\ TAK +menutrans TeX\ configuration Config\.\ TeX +menutrans TF\ mud\ client TF\ (client\ MUD) +menutrans Tidy\ configuration Config\.\ Tidy +menutrans Trasys\ input Entre\ Trasys +menutrans Command\ Line Ligne\ de\ commande +menutrans Geometry Gomtrie +menutrans Optics Optiques +menutrans Vim\ help\ file Fichier\ d'aide\ Vim +menutrans Vim\ script Script\ Vim +menutrans Viminfo\ file Fichier\ Viminfo +menutrans Virata\ config Config\.\ Virata +menutrans Wget\ config Config\.\ wget +menutrans Whitespace\ (add) Espaces\ et\ tabulations +menutrans WildPackets\ EtherPeek\ Decoder Dcodeur\ WildPackets\ EtherPeek +menutrans X\ resources Resources\ X +menutrans XXD\ hex\ dump Sortie\ hexa\.\ de\ xxd +menutrans XFree86\ Config Config\.\ XFree86 + +menutrans &Buffers &Puskurit +" Accels: VPASE +menutrans Dummy Dummy +menutrans &Refresh\ menu Pivit\ &valikko +menutrans &Delete &Poista +menutrans &Alternate V&aihda +menutrans &Next &Seuraava +menutrans &Previous &Edellinen +" -SEP- +" (Alphabet menus) +menutrans &others &muut +let g:menutrans_no_file = "[Ei tiedostoja]" + + +menutrans &Window &Ikkuna +" Accels: UJPTSMIYAKOL +menutrans &New^Wn &Uusi\ ikkuna^Wn +menutrans S&plit^Ws &Jaa^Ws +menutrans Sp&lit\ To\ #^W^^ &Jaa\ #^W^^ +menutrans Split\ &Vertically^Wv Jaa\ &pystysuunnassa^Wv +menutrans Split\ File\ E&xplorer Jaa\ &tiedostonhallinnalle +" -SEP1- +menutrans &Close^Wc &Sulje^Wc +menutrans Close\ &Other(s)^Wo Sulje\ &muut^Wo +" -SEP2- +menutrans Move\ &To S&iirr +" Submenu: +" Accels: YAOV +menutrans &Top^WK &Yls^WK +menutrans &Bottom^WJ &Alas^WJ +menutrans &Left\ side^WH &Oikealle^WH +menutrans &Right\ side^WL &Vasemmalle^WL + +menutrans Rotate\ &Up^WR Vaihda\ &ylemms^WR +menutrans Rotate\ &Down^Wr Vaihda\ &alemmas^Wr +" -SEP3- +menutrans &Equal\ Size^W= Saman\ &kokoisiksi^W= +menutrans &Max\ Height^W_ Enimmisk&orkeuteen^W_ +menutrans M&in\ Height^W1_ Vhimmisk&orkeuteen^W1_ +menutrans Max\ &Width^W\| Enimmis&leveyteen^W\| +menutrans Min\ Widt&h^W1\| Vhimmis&leveyteen^W1\| + +" (Plugin menus here) +menutrans Plugin Liitnniset + +menutrans &Help &Ohje +" Accels: YKUHTLROVI +menutrans &Overview &Yleiskatsaus +menutrans &User\ Manual &Kyttohje +menutrans &How-to\ links K&UINKA-linkkej +menutrans &Find\.\.\. &Hae\.\.\. +" -sep1- +menutrans &Credits &Tekijt +menutrans Co&pying &Lisenssi +menutrans &Sponsor/Register Sponsoroi/&Rekisteri +menutrans O&rphans &Orvoista +" -sep2- +menutrans &Version &Versio +menutrans &About T&ietoja + +let g:menutrans_help_dialog = "Anna komento tai sana, jota haetaan ohjeesta.\n\nAloita i_:ll sytttilan komentoja varten (esim. i_CTRL-X)\nAloita c_:ll komentorivi varten (esim. c_)\nKirjoita asetukset puolilainausmerkkeijin (esim. 'shiftwidth')" + + +" PopUp + +menutrans &Undo &Kumoa +" -SEP1- +menutrans Cu&t &Leikkaa +menutrans &Copy &Kopioi +menutrans &Paste L&iit +" &Buffers.&Delete overwrites this one +menutrans &Delete &Poista +" -SEP2- +menutrans Select\ Blockwise Valitse\ lohkoittain +menutrans Select\ &Word Valitse\ &sana +menutrans Select\ &Line Valitse\ &rivi +menutrans Select\ &Block Valitse\ &lohko +menutrans Select\ &All Valitse\ &kaikki + + +" ToolBar + +menutrans Open Avaa +menutrans Save Tallenna +menutrans SaveAll TallennaKaikki +menutrans Print Tulosta +" -sep1- +menutrans Undo Kumoa +menutrans Redo Palauta +" -sep2- +menutrans Cut Leikkaa +menutrans Copy Kopioi +menutrans Paste Liit +" -sep3- +menutrans Find Etsi +menutrans FindNext EtsiSeur +menutrans FindPrev EtsiEd +menutrans Replace Korvaa +" -sep4- +menutrans New Uusi +menutrans WinSplit JaaIkk +menutrans WinMax IkkMax +menutrans WinMin IkkMin +menutrans WinVSplit JaaIkkV +menutrans WinMaxWidth IkkMaxLev +menutrans WinMinWidth IkkMinLev +menutrans WinClose SuljeIkk +" -sep5- +menutrans LoadSesn AvaaSess +menutrans SaveSesn TallSess +menutrans RunScript AjaSkripti +" -sep6- +menutrans Make Make +menutrans RunCtags AjaCTags +menutrans TagJump TagHypp +" -sep7- +menutrans Help Ohje +menutrans FindHelp OhjeHaku + +fun! Do_toolbar_tmenu() + let did_toolbar_tmenu = 1 + tmenu ToolBar.Open Avaa tiedosto + tmenu ToolBar.Save Tallenna nykyinen tiedosto + tmenu ToolBar.SaveAll Tallenna kaikki tiedostot + tmenu ToolBar.Print Tulosta + tmenu ToolBar.Undo Kumoa + tmenu ToolBar.Redo Palauta + tmenu ToolBar.Cut Leikkaa + tmenu ToolBar.Copy Kopioi + tmenu ToolBar.Paste Liit + if !has("gui_athena") + tmenu ToolBar.Find Hae + tmenu ToolBar.FindNext Hae seuraava + tmenu ToolBar.FindPrev Hae edellinen + tmenu ToolBar.Replace Korvaa + endif + if 0 " disabled; These are in the Windows menu + tmenu ToolBar.New Uusi ikkuna + tmenu ToolBar.WinSplit Jaa ikkuna + tmenu ToolBar.WinMax Maximiser fentre + tmenu ToolBar.WinMin Minimiser fentre + tmenu ToolBar.WinVSplit Fractionner verticalement + tmenu ToolBar.WinMaxWidth Maximiser largeur fentre + tmenu ToolBar.WinMinWidth Minimiser largeur fentre + tmenu ToolBar.WinClose Fermer fentre + endif + tmenu ToolBar.LoadSesn Avaa sessio + tmenu ToolBar.SaveSesn Tallenna nykyinen sessio + tmenu ToolBar.RunScript Lataa vim-skripti + tmenu ToolBar.Make Suorita make + tmenu ToolBar.RunCtags Suorita CTags + tmenu ToolBar.TagJump Hypp tgiin + tmenu ToolBar.Help Vimin ohje + tmenu ToolBar.FindHelp Etsi ohjeesta +endfun + +" vim: set fileencoding=latin1 diff --git a/runtime/plugin/getscriptPlugin.vim b/runtime/plugin/getscriptPlugin.vim --- a/runtime/plugin/getscriptPlugin.vim +++ b/runtime/plugin/getscriptPlugin.vim @@ -1,7 +1,7 @@ " --------------------------------------------------------------------- " getscriptPlugin.vim " Author: Charles E. Campbell, Jr. -" Date: Jul 18, 2006 +" Date: Jan 07, 2008 " Installing: :help glvs-install " Usage: :help glvs " @@ -19,8 +19,7 @@ if &cp || exists("g:loaded_getscriptPlug endif finish endif -let g:loaded_getscriptPlugin = 1 -let s:keepfo = &fo +let g:loaded_getscriptPlugin = "v30" let s:keepcpo = &cpo set cpo&vim @@ -30,9 +29,10 @@ com! -nargs=0 GetLatestVimScripts com! -nargs=0 GetScripts call getscript#GetLatestVimScripts() silent! com -nargs=0 GLVS call getscript#GetLatestVimScripts() +" --------------------------------------------------------------------- " Restore Options: {{{1 -let &fo = s:keepfo let &cpo= s:keepcpo +unlet s:keepcpo " --------------------------------------------------------------------- " vim: ts=8 sts=2 fdm=marker nowrap diff --git a/runtime/plugin/tarPlugin.vim b/runtime/plugin/tarPlugin.vim --- a/runtime/plugin/tarPlugin.vim +++ b/runtime/plugin/tarPlugin.vim @@ -14,7 +14,7 @@ if &cp || exists("g:loaded_tarPlugin") finish endif -let g:loaded_tarPlugin = 1 +let g:loaded_tarPlugin = "v16" let s:keepcpo = &cpo set cpo&vim @@ -22,20 +22,21 @@ set cpo&vim " Public Interface: {{{1 augroup tar au! - au BufReadCmd tarfile:* call tar#Read(expand(""), 1) - au FileReadCmd tarfile:* call tar#Read(expand(""), 0) - au BufWriteCmd tarfile:* call tar#Write(expand("")) - au FileWriteCmd tarfile:* call tar#Write(expand("")) + au BufReadCmd tarfile::* call tar#Read(expand(""), 1) + au FileReadCmd tarfile::* call tar#Read(expand(""), 0) + au BufWriteCmd tarfile::* call tar#Write(expand("")) + au FileWriteCmd tarfile::* call tar#Write(expand("")) if has("unix") - au BufReadCmd tarfile:*/* call tar#Read(expand(""), 1) - au FileReadCmd tarfile:*/* call tar#Read(expand(""), 0) - au BufWriteCmd tarfile:*/* call tar#Write(expand("")) - au FileWriteCmd tarfile:*/* call tar#Write(expand("")) + au BufReadCmd tarfile::*/* call tar#Read(expand(""), 1) + au FileReadCmd tarfile::*/* call tar#Read(expand(""), 0) + au BufWriteCmd tarfile::*/* call tar#Write(expand("")) + au FileWriteCmd tarfile::*/* call tar#Write(expand("")) endif + au BufReadCmd *.tar.gz call tar#Browse(expand("")) au BufReadCmd *.tar call tar#Browse(expand("")) - au BufReadCmd *.tar.gz call tar#Browse(expand("")) + au BufReadCmd *.lrp call tar#Browse(expand("")) au BufReadCmd *.tar.bz2 call tar#Browse(expand("")) au BufReadCmd *.tar.Z call tar#Browse(expand("")) au BufReadCmd *.tgz call tar#Browse(expand("")) diff --git a/runtime/spell/fr/fr_FR.diff b/runtime/spell/fr/fr_FR.diff --- a/runtime/spell/fr/fr_FR.diff +++ b/runtime/spell/fr/fr_FR.diff @@ -1,122 +1,176 @@ -*** fr_FR.orig.aff Sun Oct 2 12:36:49 2005 ---- fr_FR.aff Sun Oct 2 12:36:49 2005 +*** fr_FR.orig.aff Wed Feb 13 14:53:22 2008 +--- fr_FR.aff Wed Feb 13 15:03:20 2008 *************** -*** 3,4 **** ---- 3,21 ---- +*** 3,19 **** + +! MAP 12 +! MAP a +! MAP e +! MAP iy +! MAP o +! MAP u + MAP c +- MAP A +- MAP E +- MAP IY +- MAP O +- MAP U + MAP C + +! REP 44 + REP f ph +--- 3,31 ---- -+ FOL -+ LOW -+ UPP -+ -+ MIDWORD ' -+ -+ MAP 9 -+ MAP a -+ MAP e -+ MAP i -+ MAP o -+ MAP u -+ MAP n -+ MAP c +! FOL +! LOW +! UPP +! +! MIDWORD '- +! +! MAP 17 +! MAP a +! MAP A +! MAP e +! MAP E +! MAP i +! MAP I +! MAP o +! MAP O +! MAP u +! MAP U +! MAP n +! MAP N + MAP c + MAP C + MAP y ++ MAP Y + MAP s -+ - PFX A Y 10 -*************** -*** 692,694 **** ! -! ---- 709,800 ---- - -! # sound folding from Aspell -! # Copyright (C) 2000 Rmi Vanicat, distributed under LGPL -! # version francais 0.000000001 -! -! #EMME ~ AME -! SAL AIX$ E -! SAL AI E -! SAL AN(AEUIO)- AM -! SAL AN A -! SAL AMM AM -! SAL AM(AEUIO)- AM -! SAL AM A -! SAL AUD$ O -! SAL AUX$ O -! SAL AU O -! SAL A A -! SAL A -! SAL A -! SAL BB P -! SAL B P -! SAL S -! SAL C(EI)- S -! SAL CU(EI)- K -! SAL CC(EI)- X -! SAL CC K -! SAL CH CH -! SAL C K -! SAL DD T -! SAL D T -! SAL EMMENTAL EMATAL -! SAL EMMENTHAL EMATAL -! SAL EM(AEIOU)- EM -! SAL EM A -! SAL ET$ E -! SAL EUX$ E -! SAL EU E -! SAL EN(AEUIO)- EM -! SAL EN A -! SAL ER$ E -! SAL EO O -! SAL EAUX$ O -! SAL EAU O -! SAL E E -! SAL E -! SAL E -! SAL E -! SAL F F -! SAL G(EIY)- J -! SAL GU(EIY)- G -! SAL G G -! SAL H _ -! SAL I I -! SAL I -! SAL J J -! SAL KS X -! SAL K K -! SAL LL L -! SAL L L -! SAL MM M -! SAL M M -! SAL NN M -! SAL N M -! SAL OEU E -! SAL OUX$ U -! SAL OU U -! SAL O U -! SAL O O -! SAL O -! SAL PP P -! SAL PH F -! SAL P P -! SAL QU K -! SAL Q K -! SAL RIX$ RI -! SAL RR R -! SAL R R -! SAL S$ _ -! SAL SS S -! SAL S S -! SAL TT T -! SAL T T -! SAL U U -! SAL U -! SAL U -! SAL V V -! SAL W W -! SAL X X -! SAL Y(AEOU)- IL -! SAL Y I -! SAL ZZ S -! SAL Z S +! REP 24 + REP f ph +*************** +*** 22,45 **** + REP qu c +- REP bb b +- REP b bb +- REP cc c +- REP c cc +- REP ff f +- REP f ff +- REP ll l +- REP l ll +- REP mm m +- REP m mm +- REP nn n +- REP n nn +- REP pp p +- REP p pp +- REP rr r +- REP r rr +- REP ss s +- REP s ss + REP ss c + REP c ss +- REP tt t +- REP t tt + REP oe +--- 34,37 ---- +*************** +*** 687 **** +--- 679,773 ---- + SFX q ssait raient ssait ++ ++ ++ # sound folding from Aspell ++ # Copyright (C) 2000 Rmi Vanicat, distributed under LGPL ++ # version francais 0.000000001 ++ ++ #EMME ~ AME ++ ++ SAL AIX$ E ++ SAL AI E ++ SAL AN(AEUIO)- AM ++ SAL AN A ++ SAL AMM AM ++ SAL AM(AEUIO)- AM ++ SAL AM A ++ SAL AUD$ O ++ SAL AUX$ O ++ SAL AU O ++ SAL A A ++ SAL A ++ SAL A ++ SAL BB P ++ SAL B P ++ SAL S ++ SAL C(EI)- S ++ SAL CU(EI)- K ++ SAL CC(EI)- X ++ SAL CC K ++ SAL CH CH ++ SAL C K ++ SAL DD T ++ SAL D T ++ SAL EMMENTAL EMATAL ++ SAL EMMENTHAL EMATAL ++ SAL EM(AEIOU)- EM ++ SAL EM A ++ SAL ET$ E ++ SAL EUX$ E ++ SAL EU E ++ SAL EN(AEUIO)- EM ++ SAL EN A ++ SAL ER$ E ++ SAL EO O ++ SAL EAUX$ O ++ SAL EAU O ++ SAL E E ++ SAL E ++ SAL E ++ SAL E ++ SAL F F ++ SAL G(EIY)- J ++ SAL GU(EIY)- G ++ SAL G G ++ SAL H _ ++ SAL I I ++ SAL I ++ SAL J J ++ SAL KS X ++ SAL K K ++ SAL LL L ++ SAL L L ++ SAL MM M ++ SAL M M ++ SAL NN M ++ SAL N M ++ SAL OEU E ++ SAL OUX$ U ++ SAL OU U ++ SAL O U ++ SAL O O ++ SAL O ++ SAL PP P ++ SAL PH F ++ SAL P P ++ SAL QU K ++ SAL Q K ++ SAL RIX$ RI ++ SAL RR R ++ SAL R R ++ SAL S$ _ ++ SAL SS S ++ SAL S S ++ SAL TT T ++ SAL T T ++ SAL U U ++ SAL U ++ SAL U ++ SAL V V ++ SAL W W ++ SAL X X ++ SAL Y(AEOU)- IL ++ SAL Y I ++ SAL ZZ S ++ SAL Z S diff --git a/runtime/spell/pt/pt_BR.diff b/runtime/spell/pt/pt_BR.diff --- a/runtime/spell/pt/pt_BR.diff +++ b/runtime/spell/pt/pt_BR.diff @@ -1,12 +1,34 @@ -*** pt_BR.orig.aff Mon Apr 16 15:38:54 2007 ---- pt_BR.aff Mon Apr 16 15:49:01 2007 +*** pt_BR.orig.aff 2008-02-21 19:41:04.000000000 -0300 +--- pt_BR.aff 2008-02-24 11:08:15.000000000 -0300 +*************** +*** 1,3 **** + SET ISO8859-1 +! TRY esianrtolcdugmphbyfvkwjqxz + +--- 1,3 ---- + SET ISO8859-1 +! + *************** -*** 3,4 **** ---- 3,9 ---- +*** 13,14 **** +--- 13,32 ---- ++ NAME Brazilian Portuguese ++ VERSION 20080221V ++ HOME http://www.broffice.org/verortografico ++ AUTHOR Raimundo Santos Moura ++ EMAIL raimundomoura AT openoffice DOT org ++ AUTHOR Leonardo Ferreira Fontenelle ++ EMAIL leo DOT fontenelle AT gmail DOT org ++ COPYRIGHT LGPL ++ ++ + FOL + LOW + UPP + ++ + MIDWORD '-. - ++ ++ + MAP 6 diff --git a/runtime/syntax/cdrdaoconf.vim b/runtime/syntax/cdrdaoconf.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/cdrdaoconf.vim @@ -0,0 +1,139 @@ +" Vim syntax file +" Language: cdrdao(1) configuration file +" Maintainer: Nikolai Weibull +" Latest Revision: 2007-09-02 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword cdrdaoconfTodo + \ TODO FIXME XXX NOTE + +syn match cdrdaoconfBegin + \ display + \ nextgroup=@cdrdaoconfKeyword,cdrdaoconfComment + \ '^' + +syn cluster cdrdaoconfKeyword + \ contains=cdrdaoconfIntegerKeyword, + \ cdrdaoconfDriverKeyword, + \ cdrdaoconfDeviceKeyword, + \ cdrdaoconfPathKeyword + +syn keyword cdrdaoconfIntegerKeyword + \ contained + \ nextgroup=cdrdaoconfIntegerDelimiter + \ write_speed + \ write_buffers + \ user_capacity + \ full_burn + \ read_speed + \ cddb_timeout + +syn keyword cdrdaoconfIntegerKeyword + \ contained + \ nextgroup=cdrdaoconfParanoiaModeDelimiter + \ read_paranoia_mode + +syn keyword cdrdaoconfDriverKeyword + \ contained + \ nextgroup=cdrdaoconfDriverDelimiter + \ write_driver + \ read_driver + +syn keyword cdrdaoconfDeviceKeyword + \ contained + \ nextgroup=cdrdaoconfDeviceDelimiter + \ write_device + \ read_device + +syn keyword cdrdaoconfPathKeyword + \ contained + \ nextgroup=cdrdaoconfPathDelimiter + \ cddb_directory + \ tmp_file_dir + +syn match cdrdaoconfIntegerDelimiter + \ contained + \ nextgroup=cdrdaoconfInteger + \ skipwhite + \ ':' + +syn match cdrdaoconfParanoiaModeDelimiter + \ contained + \ nextgroup=cdrdaoconfParanoiaMode + \ skipwhite + \ ':' + +syn match cdrdaoconfDriverDelimiter + \ contained + \ nextgroup=cdrdaoconfDriver + \ skipwhite + \ ':' + +syn match cdrdaoconfDeviceDelimiter + \ contained + \ nextgroup=cdrdaoconfDevice + \ skipwhite + \ ':' + +syn match cdrdaoconfPathDelimiter + \ contained + \ nextgroup=cdrdaoconfPath + \ skipwhite + \ ':' + +syn match cdrdaoconfInteger + \ contained + \ '\<\d\+\>' + +syn match cdrdaoParanoiaMode + \ contained + \ '[0123]' + +syn match cdrdaoconfDriver + \ contained + \ '\<\(cdd2600\|generic-mmc\%(-raw\)\=\|plextor\%(-scan\)\|ricoh-mp6200\|sony-cdu9\%(20\|48\)\|taiyo-yuden\|teac-cdr55\|toshiba\|yamaha-cdr10x\)\>' + +syn region cdrdaoconfDevice + \ contained + \ matchgroup=cdrdaoconfDevice + \ start=+"+ + \ end=+"+ + +syn region cdrdaoconfPath + \ contained + \ matchgroup=cdrdaoconfPath + \ start=+"+ + \ end=+"+ + +syn match cdrdaoconfComment + \ contains=cdrdaoconfTodo,@Spell + \ '^.*#.*$' + +hi def link cdrdaoconfTodo Todo +hi def link cdrdaoconfComment Comment +hi def link cdrdaoconfKeyword Keyword +hi def link cdrdaoconfIntegerKeyword cdrdaoconfKeyword +hi def link cdrdaoconfDriverKeyword cdrdaoconfKeyword +hi def link cdrdaoconfDeviceKeyword cdrdaoconfKeyword +hi def link cdrdaoconfPathKeyword cdrdaoconfKeyword +hi def link cdrdaoconfDelimiter Delimiter +hi def link cdrdaoconfIntegerDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfDriverDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfDeviceDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfPathDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfInteger Number +hi def link cdrdaoconfParanoiaMode Number +hi def link cdrdaoconfDriver Identifier +hi def link cdrdaoconfDevice cdrdaoconfPath +hi def link cdrdaoconfPath String + +let b:current_syntax = "cdrdaoconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim --- a/runtime/syntax/cmake.vim +++ b/runtime/syntax/cmake.vim @@ -49,7 +49,7 @@ syn region cmakeArguments start=/\s*(/ e syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES \ nextgroup=cmakeArgument syn keyword cmakeStatement - \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO + \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO \ nextgroup=cmakeArgumnts "syn match cmakeMacro /^\s*[A-Z_]\+/ nextgroup=cmakeArgumnts diff --git a/runtime/syntax/coco.vim b/runtime/syntax/coco.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/coco.vim @@ -0,0 +1,33 @@ +" Vim syntax file +" Language: Coco/R +" Maintainer: Ashish Shukla +" Last Change: 2007 Aug 10 +" Remark: Coco/R syntax partially implemented. +" License: Vim license + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn keyword cocoKeywords ANY CHARACTERS COMMENTS COMPILER CONTEXT END FROM IF IGNORE IGNORECASE NESTED PRAGMAS PRODUCTIONS SYNC TO TOKENS WEAK +syn match cocoUnilineComment #//.*$# +syn match cocoIdentifier /[[:alpha:]][[:alnum:]]*/ +syn region cocoMultilineComment start=#/[*]# end=#[*]/# +syn region cocoString start=/"/ skip=/\\"\|\\\\/ end=/"/ +syn region cocoCharacter start=/'/ skip=/\\'\|\\\\/ end=/'/ +syn match cocoOperator /+\||\|\.\.\|-\|(\|)\|{\|}\|\[\|\]\|=\|<\|>/ +syn region cocoProductionCode start=/([.]/ end=/[.])/ +syn match cocoPragma /[$][[:alnum:]]*/ + +hi def link cocoKeywords Keyword +hi def link cocoUnilineComment Comment +hi def link cocoMultilineComment Comment +hi def link cocoIdentifier Identifier +hi def link cocoString String +hi def link cocoCharacter Character +hi def link cocoOperator Operator +hi def link cocoProductionCode Statement +hi def link cocoPragma Special + diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim --- a/runtime/syntax/css.vim +++ b/runtime/syntax/css.vim @@ -2,7 +2,7 @@ " Language: Cascading Style Sheets " Maintainer: Claudio Fleiner " URL: http://www.fleiner.com/vim/syntax/css.vim -" Last Change: 2006 Jun 19 +" Last Change: 2007 Nov 06 " CSS2 by Nikolai Weibull " Full CSS2, HTML4 support by Yeti @@ -194,7 +194,7 @@ syn match cssSpecialCharQQ +\\"+ contain syn match cssSpecialCharQ +\\'+ contained syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ -syn match cssClassName "\.[A-Za-z][A-Za-z0-9-]\+" +syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+" if main_syntax == "css" syn sync minlines=10 diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim --- a/runtime/syntax/debcontrol.vim +++ b/runtime/syntax/debcontrol.vim @@ -3,8 +3,8 @@ " Maintainer: Debian Vim Maintainers " Former Maintainers: Gerfried Fuchs " Wichert Akkerman -" Last Change: $LastChangedDate: 2006-04-16 21:50:31 -0400 (Sun, 16 Apr 2006) $ -" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/debcontrol.vim?op=file&rev=0&sc=0 +" Last Change: 2008-02-23 +" URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian " Comments are very welcome - but please make sure that you are commenting on " the latest version of this file. @@ -17,6 +17,9 @@ elseif exists("b:current_syntax") finish endif +" Should match case except for the keys of each field +syn case match + " Everything that is not explicitly matched by the rules below syn match debcontrolElse "^.*$" @@ -25,28 +28,47 @@ syn match debControlComma ", *" syn match debControlSpace " " " Define some common expressions we can use later on -syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(eb\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390\|sheb\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)" -syn match debcontrolName contained "[a-z][a-z0-9+-]*" +syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)" +syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+" syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)" -syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)" +syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)" +syn match debcontrolPackageType contained "u\?deb" syn match debcontrolVariable contained "\${.\{-}}" +" A URL (using the domain name definitions from RFC 1034 and 1738), right now +" only enforce protocol and some sanity on the server/path part; +syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" +syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" +syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$" +syn match debcontrolVcsGit contained "\vgit://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" + " An email address syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+" syn match debcontrolEmail "<.\{-}>" +" #-Comments +syn match debcontrolComment "^#.*$" + +syn case ignore + " List of all legal keys -syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\): *" +syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\): *" " Fields for which we do strict syntax checking syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline +syn region debcontrolStrictField start="^XC-Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline +syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend +syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend " Catch-all for the other legal fields -syn region debcontrolField start="^\(Maintainer\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Bugs\|Origin\|Enhances\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline -syn region debcontrolMultiField start="^\(Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable +syn region debcontrolField start="^\(Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X\(S\|B\)-Python-Version\|XSBC-Original-Maintainer\|\(XS-\)\?Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline +syn region debcontrolMultiField start="^\(Build-\(Conflicts\|Depends\)\(-Indep\)\=\|\(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable " Associate our matches and regions with pretty colours if version >= 508 || !exists("did_debcontrol_syn_inits") @@ -65,8 +87,14 @@ if version >= 508 || !exists("did_debcon HiLink debcontrolName Normal HiLink debcontrolPriority Normal HiLink debcontrolSection Normal + HiLink debcontrolPackageType Normal HiLink debcontrolVariable Identifier HiLink debcontrolEmail Identifier + HiLink debcontrolVcsSvn Identifier + HiLink debcontrolVcsCvs Identifier + HiLink debcontrolVcsGit Identifier + HiLink debcontrolHTTPUrl Identifier + HiLink debcontrolComment Comment HiLink debcontrolElse Special delcommand HiLink diff --git a/runtime/syntax/denyhosts.vim b/runtime/syntax/denyhosts.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/denyhosts.vim @@ -0,0 +1,289 @@ +" Vim syntax file +" Language: denyhosts configuration file +" Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-25 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword denyhostsTodo + \ contained + \ TODO + \ FIXME + \ XXX + \ NOTE + +syn case ignore + +syn match denyhostsComment + \ contained + \ display + \ '#.*' + \ contains=denyhostsTodo, + \ @Spell + +syn match denyhostsBegin + \ display + \ '^' + \ nextgroup=@denyhostsSetting, + \ denyhostsComment + \ skipwhite + +syn cluster denyhostsSetting + \ contains=denyhostsStringSetting, + \ denyhostsBooleanSetting, + \ denyhostsPathSetting, + \ denyhostsNumericSetting, + \ denyhostsTimespecSetting, + \ denyhostsFormatSetting, + \ denyhostsRegexSetting + +syn keyword denyhostsStringSetting + \ contained + \ ADMIN_EMAIL + \ SMTP_HOST + \ SMTP_USERNAME + \ SMTP_PASSWORD + \ SMTP_FROM + \ SMTP_SUBJECT + \ BLOCK_SERVICE + \ nextgroup=denyhostsStringDelimiter + \ skipwhite + +syn keyword denyhostsBooleanSetting + \ contained + \ SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS + \ HOSTNAME_LOOKUP + \ SYSLOG_REPORT + \ RESET_ON_SUCCESS + \ SYNC_UPLOAD + \ SYNC_DOWNLOAD + \ ALLOWED_HOSTS_HOSTNAME_LOOKUP + \ nextgroup=denyhostsBooleanDelimiter + \ skipwhite + +syn keyword denyhostsPathSetting + \ contained + \ DAEMON_LOG + \ PLUGIN_DENY + \ PLUGIN_PURGE + \ SECURE_LOG + \ LOCK_FILE + \ HOSTS_DENY + \ WORK_DIR + \ nextgroup=denyhostsPathDelimiter + \ skipwhite + +syn keyword denyhostsNumericSetting + \ contained + \ SYNC_DOWNLOAD_THRESHOLD + \ SMTP_PORT + \ PURGE_THRESHOLD + \ DENY_THRESHOLD_INVALID + \ DENY_THRESHOLD_VALID + \ DENY_THRESHOLD_ROOT + \ DENY_THRESHOLD_RESTRICTED + \ nextgroup=denyhostsNumericDelimiter + \ skipwhite + +syn keyword denyhostsTimespecSetting + \ contained + \ DAEMON_SLEEP + \ DAEMON_PURGE + \ AGE_RESET_INVALID + \ AGE_RESET_VALID + \ AGE_RESET_ROOT + \ AGE_RESET_RESTRICTED + \ SYNC_INTERVAL + \ SYNC_DOWNLOAD_RESILIENCY + \ PURGE_DENY + \ nextgroup=denyhostsTimespecDelimiter + \ skipwhite + +syn keyword denyhostsFormatSetting + \ contained + \ DAEMON_LOG_TIME_FORMAT + \ DAEMON_LOG_MESSAGE_FORMAT + \ SMTP_DATE_FORMAT + \ nextgroup=denyhostsFormatDelimiter + \ skipwhite + +syn keyword denyhostsRegexSetting + \ contained + \ SSHD_FORMAT_REGEX + \ FAILED_ENTRY_REGEX + \ FAILED_ENTRY_REGEX2 + \ FAILED_ENTRY_REGEX3 + \ FAILED_ENTRY_REGEX4 + \ FAILED_ENTRY_REGEX5 + \ FAILED_ENTRY_REGEX6 + \ FAILED_ENTRY_REGEX7 + \ USERDEF_FAILED_ENTRY_REGEX + \ SUCCESSFUL_ENTRY_REGEX + \ nextgroup=denyhostsRegexDelimiter + \ skipwhite + +syn keyword denyhostURLSetting + \ contained + \ SYNC_SERVER + \ nextgroup=denyhostsURLDelimiter + \ skipwhite + +syn match denyhostsStringDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsString + \ skipwhite + +syn match denyhostsBooleanDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=@denyhostsBoolean + \ skipwhite + +syn match denyhostsPathDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsPath + \ skipwhite + +syn match denyhostsNumericDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsNumber + \ skipwhite + +syn match denyhostsTimespecDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsTimespec + \ skipwhite + +syn match denyhostsFormatDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsFormat + \ skipwhite + +syn match denyhostsRegexDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsRegex + \ skipwhite + +syn match denyhostsURLDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsURL + \ skipwhite + +syn match denyhostsString + \ contained + \ display + \ '.\+' + +syn cluster denyhostsBoolean + \ contains=denyhostsBooleanTrue, + \ denyhostsBooleanFalse + +syn match denyhostsBooleanFalse + \ contained + \ display + \ '.\+' + +syn match denyhostsBooleanTrue + \ contained + \ display + \ '\s*\%(1\|t\%(rue\)\=\|y\%(es\)\=\)\>\s*$' + +syn match denyhostsPath + \ contained + \ display + \ '.\+' + +syn match denyhostsNumber + \ contained + \ display + \ '\d\+\>' + +syn match denyhostsTimespec + \ contained + \ display + \ '\d\+[mhdwy]\>' + +syn match denyhostsFormat + \ contained + \ display + \ '.\+' + \ contains=denyhostsFormattingExpandos + +syn match denyhostsFormattingExpandos + \ contained + \ display + \ '%.' + +syn match denyhostsRegex + \ contained + \ display + \ '.\+' + +" TODO: Perhaps come up with a better regex here? There should really be a +" library for these kinds of generic regexes, that is, URLs, mail addresses, … +syn match denyhostsURL + \ contained + \ display + \ '.\+' + +hi def link denyhostsTodo Todo +hi def link denyhostsComment Comment +hi def link denyhostsSetting Keyword +hi def link denyhostsStringSetting denyhostsSetting +hi def link denyhostsBooleanSetting denyhostsSetting +hi def link denyhostsPathSetting denyhostsSetting +hi def link denyhostsNumericSetting denyhostsSetting +hi def link denyhostsTimespecSetting denyhostsSetting +hi def link denyhostsFormatSetting denyhostsSetting +hi def link denyhostsRegexSetting denyhostsSetting +hi def link denyhostURLSetting denyhostsSetting +hi def link denyhostsDelimiter Normal +hi def link denyhostsStringDelimiter denyhostsDelimiter +hi def link denyhostsBooleanDelimiter denyhostsDelimiter +hi def link denyhostsPathDelimiter denyhostsDelimiter +hi def link denyhostsNumericDelimiter denyhostsDelimiter +hi def link denyhostsTimespecDelimiter denyhostsDelimiter +hi def link denyhostsFormatDelimiter denyhostsDelimiter +hi def link denyhostsRegexDelimiter denyhostsDelimiter +hi def link denyhostsURLDelimiter denyhostsDelimiter +hi def link denyhostsString String +if exists('g:syntax_booleans_simple') || exists('b:syntax_booleans_simple') + hi def link denyhostsBoolean Boolean + hi def link denyhostsBooleanFalse denyhostsBoolean + hi def link denyhostsBooleanTrue denyhostsBoolean +else + hi def denyhostsBooleanTrue term=bold ctermfg=Green guifg=Green + hi def denyhostsBooleanFalse ctermfg=Red guifg=Red +endif +hi def link denyhostsPath String +hi def link denyhostsNumber Number +hi def link denyhostsTimespec Number +hi def link denyhostsFormat String +hi def link denyhostsFormattingExpandos Special +hi def link denyhostsRegex String +hi def link denyhostsURL String + +let b:current_syntax = "denyhosts" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/git.vim b/runtime/syntax/git.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/git.vim @@ -0,0 +1,67 @@ +" Vim syntax file +" Language: generic git output +" Maintainer: Tim Pope +" Last Change: 2008 Mar 21 + +if exists("b:current_syntax") + finish +endif + +syn case match +syn sync minlines=50 + +syn include @gitDiff syntax/diff.vim + +syn region gitHead start=/\%^/ end=/^$/ +syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/ + +" For git reflog and git show ...^{tree}, avoid sync issues +syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/ +syn match gitHead /^\x\{40\} \x\{40}\t.*/ + +syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold +syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff + +syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite +syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite +syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite +syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite +syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite +syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite +syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite +syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite +syn region gitEmail matchgroup=gitEmailDelimiter start=// keepend oneline contained containedin=gitIdentity + +syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite +syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite +syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity + +syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained +syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained +syn match gitDate /\<\d\+ \l\+ ago\>/ contained +syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite +syn match gitStage /\<\d\t\@=/ contained +syn match gitReference /\S\+\S\@!/ contained +syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage skipwhite +syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite +syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite +syn match gitHashAbbrev /\<\x\{40\}\>/ contained nextgroup=gitHashAbbrev skipwhite + +hi def link gitDateHeader gitIdentityHeader +hi def link gitIdentityHeader gitIdentityKeyword +hi def link gitIdentityKeyword Label +hi def link gitReflogHeader gitKeyword +hi def link gitKeyword Keyword +hi def link gitIdentity String +hi def link gitEmailDelimiter Delimiter +hi def link gitEmail Special +hi def link gitDate Number +hi def link gitMode Number +hi def link gitHashAbbrev gitHash +hi def link gitHash Identifier +hi def link gitReflogMiddle gitReference +hi def link gitReference Function +hi def link gitStage gitType +hi def link gitType Type + +let b:current_syntax = "git" diff --git a/runtime/syntax/gitcommit.vim b/runtime/syntax/gitcommit.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/gitcommit.vim @@ -0,0 +1,65 @@ +" Vim syntax file +" Language: git commit file +" Maintainer: Tim Pope +" Filenames: *.git/COMMIT_EDITMSG +" Last Change: 2008 Apr 09 + +if exists("b:current_syntax") + finish +endif + +syn case match +syn sync minlines=50 + +if has("spell") + syn spell toplevel +endif + +syn include @gitcommitDiff syntax/diff.vim +syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff + +syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl +syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell +syn match gitcommitOverflow ".*" contained contains=@Spell +syn match gitcommitBlank "^[^#].*" contained contains=@Spell +syn match gitcommitComment "^#.*" +syn region gitcommitHead start=/^# / end=/^#$/ contained transparent +syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite +syn match gitcommitBranch "\S\+" contained +syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment + +syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold +syn match gitcommitUntrackedFile "\t\@<=.*" contained + +syn region gitcommitDiscarded start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold +syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold + +syn match gitcommitDiscardedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite +syn match gitcommitSelectedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite +syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow +syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow +syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile +syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile + +hi def link gitcommitSummary Keyword +hi def link gitcommitComment Comment +hi def link gitcommitUntracked gitcommitComment +hi def link gitcommitDiscarded gitcommitComment +hi def link gitcommitSelected gitcommitComment +hi def link gitcommitOnBranch Comment +hi def link gitcommitBranch Special +hi def link gitcommitDiscardedType gitcommitType +hi def link gitcommitSelectedType gitcommitType +hi def link gitcommitType Type +hi def link gitcommitHeader PreProc +hi def link gitcommitUntrackedFile gitcommitFile +hi def link gitcommitDiscardedFile gitcommitFile +hi def link gitcommitSelectedFile gitcommitFile +hi def link gitcommitFile Constant +hi def link gitcommitDiscardedArrow gitcommitArrow +hi def link gitcommitSelectedArrow gitcommitArrow +hi def link gitcommitArrow gitcommitComment +"hi def link gitcommitOverflow Error +hi def link gitcommitBlank Error + +let b:current_syntax = "gitcommit" diff --git a/runtime/syntax/hostconf.vim b/runtime/syntax/hostconf.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/hostconf.vim @@ -0,0 +1,147 @@ +" Vim syntax file +" Language: host.conf(5) configuration file +" Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-25 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword hostconfTodo + \ contained + \ TODO + \ FIXME + \ XXX + \ NOTE + +syn match hostconfComment + \ display + \ contained + \ '\s*#.*' + \ contains=hostconfTodo, + \ @Spell + +syn match hostconfBegin + \ display + \ '^' + \ nextgroup=hostconfComment,hostconfKeyword + \ skipwhite + +syn keyword hostconfKeyword + \ contained + \ order + \ nextgroup=hostconfLookupOrder + \ skipwhite + +let s:orders = ['bind', 'hosts', 'nis'] + +function s:permute_suffixes(list) + if empty(a:list) + return [] + elseif len(a:list) == 1 + return a:list[0] + else + let i = 0 + let n = len(a:list) + let sub_permutations = [] + while i < n + let list_copy = copy(a:list) + let removed = list_copy[i] + call remove(list_copy, i) + call add(sub_permutations, [removed, s:permute_suffixes(list_copy)]) + let i += 1 + endwhile + return sub_permutations + endif +endfunction + +function s:generate_suffix_groups(list_of_order_of_orders, context, trailing_context) + for order_of_orders in a:list_of_order_of_orders + let order = order_of_orders[0] + let trailing_context = a:trailing_context . toupper(order[0]) . order[1:] + let nextgroup = 'hostconfLookupOrder' . trailing_context + let nextgroup_delimiter = nextgroup . 'Delimiter' + let group = 'hostconfLookupOrder' . a:context + execute 'syn keyword' group 'contained' order 'nextgroup=' . nextgroup_delimiter 'skipwhite' + execute 'syn match' nextgroup_delimiter 'contained display "," nextgroup=' . nextgroup 'skipwhite' + if a:context != "" + execute 'hi def link' group 'hostconfLookupOrder' + endif + execute 'hi def link' nextgroup_delimiter 'hostconfLookupOrderDelimiter' + let context = trailing_context + if type(order_of_orders[1]) == type([]) + call s:generate_suffix_groups(order_of_orders[1], context, trailing_context) + else + execute 'syn keyword hostconfLookupOrder' . context 'contained' order_of_orders[-1] + execute 'hi def link hostconfLookupOrder' . context 'hostconfLookupOrder' + endif + endfor +endfunction + +call s:generate_suffix_groups(s:permute_suffixes(s:orders), "", "") + +delfunction s:generate_suffix_groups +delfunction s:permute_suffixes + +syn keyword hostconfKeyword + \ contained + \ trim + \ nextgroup=hostconfDomain + \ skipwhite + +syn match hostconfDomain + \ contained + \ '\.[^:;,[:space:]]\+' + \ nextgroup=hostconfDomainDelimiter + \ skipwhite + +syn match hostconfDomainDelimiter + \ contained + \ display + \ '[:;,]' + \ nextgroup=hostconfDomain + \ skipwhite + +syn keyword hostconfKeyword + \ contained + \ multi + \ nospoof + \ spoofalert + \ reorder + \ nextgroup=hostconfBoolean + \ skipwhite + +syn keyword hostconfBoolean + \ contained + \ on + \ off + +syn keyword hostconfKeyword + \ contained + \ spoof + \ nextgroup=hostconfSpoofValue + \ skipwhite + +syn keyword hostconfSpoofValue + \ contained + \ off + \ nowarn + \ warn + +hi def link hostconfTodo Todo +hi def link hostconfComment Comment +hi def link hostconfKeyword Keyword +hi def link hostconfLookupOrder Identifier +hi def link hostconfLookupOrderDelimiter Delimiter +hi def link hostconfDomain String +hi def link hostconfDomainDelimiter Delimiter +hi def link hostconfBoolean Boolean +hi def link hostconfSpoofValue hostconfBoolean + +let b:current_syntax = "hostconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim --- a/runtime/syntax/lisp.vim +++ b/runtime/syntax/lisp.vim @@ -1,12 +1,13 @@ " Vim syntax file " Language: Lisp " Maintainer: Dr. Charles E. Campbell, Jr. -" Last Change: Apr 12, 2007 -" Version: 19 +" Last Change: Oct 19, 2007 +" Version: 20 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols " taken from the HyperSpec +" Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim " --------------------------------------------------------------------- " Load Once: {{{1 @@ -19,462 +20,542 @@ elseif exists("b:current_syntax") endif if version >= 600 - setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_ + setlocal iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_ else - set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_ + set iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_ +endif + +if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp") + set ignorecase endif " --------------------------------------------------------------------- " Clusters: {{{1 -syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite -syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite +syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite +syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite if exists("g:lisp_instring") - syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString + syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString else - syn cluster lispListCluster contains=@lispBaseListCluster,lispString + syn cluster lispListCluster contains=@lispBaseListCluster,lispString endif syn case ignore " --------------------------------------------------------------------- " Lists: {{{1 -syn match lispSymbol contained ![^()'`,"; \t]\+! -syn match lispBarSymbol contained !|..\{-}|! +syn match lispSymbol contained ![^()'`,"; \t]\+! +syn match lispBarSymbol contained !|..\{-}|! if exists("g:lisp_rainbow") && g:lisp_rainbow != 0 - syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1 - syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2 - syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3 - syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4 - syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5 - syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6 - syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7 - syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8 - syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9 + syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1 + syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2 + syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3 + syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4 + syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5 + syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6 + syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7 + syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8 + syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9 syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0 else - syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster - syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster + syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster + syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster endif " --------------------------------------------------------------------- " Atoms: {{{1 -syn match lispAtomMark "'" -syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList -syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark -syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark -syn region lispAtom start=+'"+ skip=+\\"+ end=+"+ -syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString -syn match lispAtomNmbr contained "\<\d\+" -syn match lispLeadWhite contained "^\s\+" +syn match lispAtomMark "'" +syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList +syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark +syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark +syn region lispAtom start=+'"+ skip=+\\"+ end=+"+ +syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispSpecial +syn match lispAtomNmbr contained "\<\d\+" +syn match lispLeadWhite contained "^\s\+" " --------------------------------------------------------------------- " Standard Lisp Functions and Macros: {{{1 -syn keyword lispFunc * find-method pprint-indent -syn keyword lispFunc ** find-package pprint-linear -syn keyword lispFunc *** find-restart pprint-logical-block -syn keyword lispFunc + find-symbol pprint-newline -syn keyword lispFunc ++ finish-output pprint-pop -syn keyword lispFunc +++ first pprint-tab -syn keyword lispFunc - fixnum pprint-tabular -syn keyword lispFunc / flet prin1 -syn keyword lispFunc // float prin1-to-string -syn keyword lispFunc /// float-digits princ -syn keyword lispFunc /= float-precision princ-to-string -syn keyword lispFunc 1+ float-radix print -syn keyword lispFunc 1- float-sign print-not-readable -syn keyword lispFunc < floating-point-inexact print-not-readable-object -syn keyword lispFunc <= floating-point-invalid-operation print-object -syn keyword lispFunc = floating-point-overflow print-unreadable-object -syn keyword lispFunc > floating-point-underflow probe-file -syn keyword lispFunc >= floatp proclaim -syn keyword lispFunc abort floor prog -syn keyword lispFunc abs fmakunbound prog* -syn keyword lispFunc access force-output prog1 -syn keyword lispFunc acons format prog2 -syn keyword lispFunc acos formatter progn -syn keyword lispFunc acosh fourth program-error -syn keyword lispFunc add-method fresh-line progv -syn keyword lispFunc adjoin fround provide -syn keyword lispFunc adjust-array ftruncate psetf -syn keyword lispFunc adjustable-array-p ftype psetq -syn keyword lispFunc allocate-instance funcall push -syn keyword lispFunc alpha-char-p function pushnew -syn keyword lispFunc alphanumericp function-keywords putprop -syn keyword lispFunc and function-lambda-expression quote -syn keyword lispFunc append functionp random -syn keyword lispFunc apply gbitp random-state -syn keyword lispFunc applyhook gcd random-state-p -syn keyword lispFunc apropos generic-function rassoc -syn keyword lispFunc apropos-list gensym rassoc-if -syn keyword lispFunc aref gentemp rassoc-if-not -syn keyword lispFunc arithmetic-error get ratio -syn keyword lispFunc arithmetic-error-operands get-decoded-time rational -syn keyword lispFunc arithmetic-error-operation get-dispatch-macro-character rationalize -syn keyword lispFunc array get-internal-real-time rationalp -syn keyword lispFunc array-dimension get-internal-run-time read -syn keyword lispFunc array-dimension-limit get-macro-character read-byte -syn keyword lispFunc array-dimensions get-output-stream-string read-char -syn keyword lispFunc array-displacement get-properties read-char-no-hang -syn keyword lispFunc array-element-type get-setf-expansion read-delimited-list -syn keyword lispFunc array-has-fill-pointer-p get-setf-method read-eval-print -syn keyword lispFunc array-in-bounds-p get-universal-time read-from-string -syn keyword lispFunc array-rank getf read-line -syn keyword lispFunc array-rank-limit gethash read-preserving-whitespace -syn keyword lispFunc array-row-major-index go read-sequence -syn keyword lispFunc array-total-size graphic-char-p reader-error -syn keyword lispFunc array-total-size-limit handler-bind readtable -syn keyword lispFunc arrayp handler-case readtable-case -syn keyword lispFunc ash hash-table readtablep -syn keyword lispFunc asin hash-table-count real -syn keyword lispFunc asinh hash-table-p realp -syn keyword lispFunc assert hash-table-rehash-size realpart -syn keyword lispFunc assoc hash-table-rehash-threshold reduce -syn keyword lispFunc assoc-if hash-table-size reinitialize-instance -syn keyword lispFunc assoc-if-not hash-table-test rem -syn keyword lispFunc atan host-namestring remf -syn keyword lispFunc atanh identity remhash -syn keyword lispFunc atom if remove -syn keyword lispFunc base-char if-exists remove-duplicates -syn keyword lispFunc base-string ignorable remove-if -syn keyword lispFunc bignum ignore remove-if-not -syn keyword lispFunc bit ignore-errors remove-method -syn keyword lispFunc bit-and imagpart remprop -syn keyword lispFunc bit-andc1 import rename-file -syn keyword lispFunc bit-andc2 in-package rename-package -syn keyword lispFunc bit-eqv in-package replace -syn keyword lispFunc bit-ior incf require -syn keyword lispFunc bit-nand initialize-instance rest -syn keyword lispFunc bit-nor inline restart -syn keyword lispFunc bit-not input-stream-p restart-bind -syn keyword lispFunc bit-orc1 inspect restart-case -syn keyword lispFunc bit-orc2 int-char restart-name -syn keyword lispFunc bit-vector integer return -syn keyword lispFunc bit-vector-p integer-decode-float return-from -syn keyword lispFunc bit-xor integer-length revappend -syn keyword lispFunc block integerp reverse -syn keyword lispFunc boole interactive-stream-p room -syn keyword lispFunc boole-1 intern rotatef -syn keyword lispFunc boole-2 internal-time-units-per-second round -syn keyword lispFunc boole-and intersection row-major-aref -syn keyword lispFunc boole-andc1 invalid-method-error rplaca -syn keyword lispFunc boole-andc2 invoke-debugger rplacd -syn keyword lispFunc boole-c1 invoke-restart safety -syn keyword lispFunc boole-c2 invoke-restart-interactively satisfies -syn keyword lispFunc boole-clr isqrt sbit -syn keyword lispFunc boole-eqv keyword scale-float -syn keyword lispFunc boole-ior keywordp schar -syn keyword lispFunc boole-nand labels search -syn keyword lispFunc boole-nor lambda second -syn keyword lispFunc boole-orc1 lambda-list-keywords sequence -syn keyword lispFunc boole-orc2 lambda-parameters-limit serious-condition -syn keyword lispFunc boole-set last set -syn keyword lispFunc boole-xor lcm set-char-bit -syn keyword lispFunc boolean ldb set-difference -syn keyword lispFunc both-case-p ldb-test set-dispatch-macro-character -syn keyword lispFunc boundp ldiff set-exclusive-or -syn keyword lispFunc break least-negative-double-float set-macro-character -syn keyword lispFunc broadcast-stream least-negative-long-float set-pprint-dispatch -syn keyword lispFunc broadcast-stream-streams least-negative-normalized-double-float set-syntax-from-char -syn keyword lispFunc built-in-class least-negative-normalized-long-float setf -syn keyword lispFunc butlast least-negative-normalized-short-float setq -syn keyword lispFunc byte least-negative-normalized-single-float seventh -syn keyword lispFunc byte-position least-negative-short-float shadow -syn keyword lispFunc byte-size least-negative-single-float shadowing-import -syn keyword lispFunc call-arguments-limit least-positive-double-float shared-initialize -syn keyword lispFunc call-method least-positive-long-float shiftf -syn keyword lispFunc call-next-method least-positive-normalized-double-float short-float -syn keyword lispFunc capitalize least-positive-normalized-long-float short-float-epsilon -syn keyword lispFunc car least-positive-normalized-short-float short-float-negative-epsilon -syn keyword lispFunc case least-positive-normalized-single-float short-site-name -syn keyword lispFunc catch least-positive-short-float signal -syn keyword lispFunc ccase least-positive-single-float signed-byte -syn keyword lispFunc cdr length signum -syn keyword lispFunc ceiling let simle-condition -syn keyword lispFunc cell-error let* simple-array -syn keyword lispFunc cell-error-name lisp simple-base-string -syn keyword lispFunc cerror lisp-implementation-type simple-bit-vector -syn keyword lispFunc change-class lisp-implementation-version simple-bit-vector-p -syn keyword lispFunc char list simple-condition-format-arguments -syn keyword lispFunc char-bit list* simple-condition-format-control -syn keyword lispFunc char-bits list-all-packages simple-error -syn keyword lispFunc char-bits-limit list-length simple-string -syn keyword lispFunc char-code listen simple-string-p -syn keyword lispFunc char-code-limit listp simple-type-error -syn keyword lispFunc char-control-bit load simple-vector -syn keyword lispFunc char-downcase load-logical-pathname-translations simple-vector-p -syn keyword lispFunc char-equal load-time-value simple-warning -syn keyword lispFunc char-font locally sin -syn keyword lispFunc char-font-limit log single-flaot-epsilon -syn keyword lispFunc char-greaterp logand single-float -syn keyword lispFunc char-hyper-bit logandc1 single-float-epsilon -syn keyword lispFunc char-int logandc2 single-float-negative-epsilon -syn keyword lispFunc char-lessp logbitp sinh -syn keyword lispFunc char-meta-bit logcount sixth -syn keyword lispFunc char-name logeqv sleep -syn keyword lispFunc char-not-equal logical-pathname slot-boundp -syn keyword lispFunc char-not-greaterp logical-pathname-translations slot-exists-p -syn keyword lispFunc char-not-lessp logior slot-makunbound -syn keyword lispFunc char-super-bit lognand slot-missing -syn keyword lispFunc char-upcase lognor slot-unbound -syn keyword lispFunc char/= lognot slot-value -syn keyword lispFunc char< logorc1 software-type -syn keyword lispFunc char<= logorc2 software-version -syn keyword lispFunc char= logtest some -syn keyword lispFunc char> logxor sort -syn keyword lispFunc char>= long-float space -syn keyword lispFunc character long-float-epsilon special -syn keyword lispFunc characterp long-float-negative-epsilon special-form-p -syn keyword lispFunc check-type long-site-name special-operator-p -syn keyword lispFunc cis loop speed -syn keyword lispFunc class loop-finish sqrt -syn keyword lispFunc class-name lower-case-p stable-sort -syn keyword lispFunc class-of machine-instance standard -syn keyword lispFunc clear-input machine-type standard-char -syn keyword lispFunc clear-output machine-version standard-char-p -syn keyword lispFunc close macro-function standard-class -syn keyword lispFunc clrhash macroexpand standard-generic-function -syn keyword lispFunc code-char macroexpand-1 standard-method -syn keyword lispFunc coerce macroexpand-l standard-object -syn keyword lispFunc commonp macrolet step -syn keyword lispFunc compilation-speed make-array storage-condition -syn keyword lispFunc compile make-array store-value -syn keyword lispFunc compile-file make-broadcast-stream stream -syn keyword lispFunc compile-file-pathname make-char stream-element-type -syn keyword lispFunc compiled-function make-concatenated-stream stream-error -syn keyword lispFunc compiled-function-p make-condition stream-error-stream -syn keyword lispFunc compiler-let make-dispatch-macro-character stream-external-format -syn keyword lispFunc compiler-macro make-echo-stream streamp -syn keyword lispFunc compiler-macro-function make-hash-table streamup -syn keyword lispFunc complement make-instance string -syn keyword lispFunc complex make-instances-obsolete string-capitalize -syn keyword lispFunc complexp make-list string-char -syn keyword lispFunc compute-applicable-methods make-load-form string-char-p -syn keyword lispFunc compute-restarts make-load-form-saving-slots string-downcase -syn keyword lispFunc concatenate make-method string-equal -syn keyword lispFunc concatenated-stream make-package string-greaterp -syn keyword lispFunc concatenated-stream-streams make-pathname string-left-trim -syn keyword lispFunc cond make-random-state string-lessp -syn keyword lispFunc condition make-sequence string-not-equal -syn keyword lispFunc conjugate make-string string-not-greaterp -syn keyword lispFunc cons make-string-input-stream string-not-lessp -syn keyword lispFunc consp make-string-output-stream string-right-strim -syn keyword lispFunc constantly make-symbol string-right-trim -syn keyword lispFunc constantp make-synonym-stream string-stream -syn keyword lispFunc continue make-two-way-stream string-trim -syn keyword lispFunc control-error makunbound string-upcase -syn keyword lispFunc copy-alist map string/= -syn keyword lispFunc copy-list map-into string< -syn keyword lispFunc copy-pprint-dispatch mapc string<= -syn keyword lispFunc copy-readtable mapcan string= -syn keyword lispFunc copy-seq mapcar string> -syn keyword lispFunc copy-structure mapcon string>= -syn keyword lispFunc copy-symbol maphash stringp -syn keyword lispFunc copy-tree mapl structure -syn keyword lispFunc cos maplist structure-class -syn keyword lispFunc cosh mask-field structure-object -syn keyword lispFunc count max style-warning -syn keyword lispFunc count-if member sublim -syn keyword lispFunc count-if-not member-if sublis -syn keyword lispFunc ctypecase member-if-not subseq -syn keyword lispFunc debug merge subsetp -syn keyword lispFunc decf merge-pathname subst -syn keyword lispFunc declaim merge-pathnames subst-if -syn keyword lispFunc declaration method subst-if-not -syn keyword lispFunc declare method-combination substitute -syn keyword lispFunc decode-float method-combination-error substitute-if -syn keyword lispFunc decode-universal-time method-qualifiers substitute-if-not -syn keyword lispFunc defclass min subtypep -syn keyword lispFunc defconstant minusp svref -syn keyword lispFunc defgeneric mismatch sxhash -syn keyword lispFunc define-compiler-macro mod symbol -syn keyword lispFunc define-condition most-negative-double-float symbol-function -syn keyword lispFunc define-method-combination most-negative-fixnum symbol-macrolet -syn keyword lispFunc define-modify-macro most-negative-long-float symbol-name -syn keyword lispFunc define-setf-expander most-negative-short-float symbol-package -syn keyword lispFunc define-setf-method most-negative-single-float symbol-plist -syn keyword lispFunc define-symbol-macro most-positive-double-float symbol-value -syn keyword lispFunc defmacro most-positive-fixnum symbolp -syn keyword lispFunc defmethod most-positive-long-float synonym-stream -syn keyword lispFunc defpackage most-positive-short-float synonym-stream-symbol -syn keyword lispFunc defparameter most-positive-single-float sys -syn keyword lispFunc defsetf muffle-warning system -syn keyword lispFunc defstruct multiple-value-bind t -syn keyword lispFunc deftype multiple-value-call tagbody -syn keyword lispFunc defun multiple-value-list tailp -syn keyword lispFunc defvar multiple-value-prog1 tan -syn keyword lispFunc delete multiple-value-seteq tanh -syn keyword lispFunc delete-duplicates multiple-value-setq tenth -syn keyword lispFunc delete-file multiple-values-limit terpri -syn keyword lispFunc delete-if name-char the -syn keyword lispFunc delete-if-not namestring third -syn keyword lispFunc delete-package nbutlast throw -syn keyword lispFunc denominator nconc time -syn keyword lispFunc deposit-field next-method-p trace -syn keyword lispFunc describe nil translate-logical-pathname -syn keyword lispFunc describe-object nintersection translate-pathname -syn keyword lispFunc destructuring-bind ninth tree-equal -syn keyword lispFunc digit-char no-applicable-method truename -syn keyword lispFunc digit-char-p no-next-method truncase -syn keyword lispFunc directory not truncate -syn keyword lispFunc directory-namestring notany two-way-stream -syn keyword lispFunc disassemble notevery two-way-stream-input-stream -syn keyword lispFunc division-by-zero notinline two-way-stream-output-stream -syn keyword lispFunc do nreconc type -syn keyword lispFunc do* nreverse type-error -syn keyword lispFunc do-all-symbols nset-difference type-error-datum -syn keyword lispFunc do-exeternal-symbols nset-exclusive-or type-error-expected-type -syn keyword lispFunc do-external-symbols nstring type-of -syn keyword lispFunc do-symbols nstring-capitalize typecase -syn keyword lispFunc documentation nstring-downcase typep -syn keyword lispFunc dolist nstring-upcase unbound-slot -syn keyword lispFunc dotimes nsublis unbound-slot-instance -syn keyword lispFunc double-float nsubst unbound-variable -syn keyword lispFunc double-float-epsilon nsubst-if undefined-function -syn keyword lispFunc double-float-negative-epsilon nsubst-if-not unexport -syn keyword lispFunc dpb nsubstitute unintern -syn keyword lispFunc dribble nsubstitute-if union -syn keyword lispFunc dynamic-extent nsubstitute-if-not unless -syn keyword lispFunc ecase nth unread -syn keyword lispFunc echo-stream nth-value unread-char -syn keyword lispFunc echo-stream-input-stream nthcdr unsigned-byte -syn keyword lispFunc echo-stream-output-stream null untrace -syn keyword lispFunc ed number unuse-package -syn keyword lispFunc eighth numberp unwind-protect -syn keyword lispFunc elt numerator update-instance-for-different-class -syn keyword lispFunc encode-universal-time nunion update-instance-for-redefined-class -syn keyword lispFunc end-of-file oddp upgraded-array-element-type -syn keyword lispFunc endp open upgraded-complex-part-type -syn keyword lispFunc enough-namestring open-stream-p upper-case-p -syn keyword lispFunc ensure-directories-exist optimize use-package -syn keyword lispFunc ensure-generic-function or use-value -syn keyword lispFunc eq otherwise user -syn keyword lispFunc eql output-stream-p user-homedir-pathname -syn keyword lispFunc equal package values -syn keyword lispFunc equalp package-error values-list -syn keyword lispFunc error package-error-package vector -syn keyword lispFunc etypecase package-name vector-pop -syn keyword lispFunc eval package-nicknames vector-push -syn keyword lispFunc eval-when package-shadowing-symbols vector-push-extend -syn keyword lispFunc evalhook package-use-list vectorp -syn keyword lispFunc evenp package-used-by-list warn -syn keyword lispFunc every packagep warning -syn keyword lispFunc exp pairlis when -syn keyword lispFunc export parse-error wild-pathname-p -syn keyword lispFunc expt parse-integer with-accessors -syn keyword lispFunc extended-char parse-namestring with-compilation-unit -syn keyword lispFunc fboundp pathname with-condition-restarts -syn keyword lispFunc fceiling pathname-device with-hash-table-iterator -syn keyword lispFunc fdefinition pathname-directory with-input-from-string -syn keyword lispFunc ffloor pathname-host with-open-file -syn keyword lispFunc fifth pathname-match-p with-open-stream -syn keyword lispFunc file-author pathname-name with-output-to-string -syn keyword lispFunc file-error pathname-type with-package-iterator -syn keyword lispFunc file-error-pathname pathname-version with-simple-restart -syn keyword lispFunc file-length pathnamep with-slots -syn keyword lispFunc file-namestring peek-char with-standard-io-syntax -syn keyword lispFunc file-position phase write -syn keyword lispFunc file-stream pi write-byte -syn keyword lispFunc file-string-length plusp write-char -syn keyword lispFunc file-write-date pop write-line -syn keyword lispFunc fill position write-sequence -syn keyword lispFunc fill-pointer position-if write-string -syn keyword lispFunc find position-if-not write-to-string -syn keyword lispFunc find-all-symbols pprint y-or-n-p -syn keyword lispFunc find-class pprint-dispatch yes-or-no-p -syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop -syn keyword lispFunc find-if-not pprint-fill +syn keyword lispFunc * find-method pprint-indent +syn keyword lispFunc ** find-package pprint-linear +syn keyword lispFunc *** find-restart pprint-logical-block +syn keyword lispFunc + find-symbol pprint-newline +syn keyword lispFunc ++ finish-output pprint-pop +syn keyword lispFunc +++ first pprint-tab +syn keyword lispFunc - fixnum pprint-tabular +syn keyword lispFunc / flet prin1 +syn keyword lispFunc // float prin1-to-string +syn keyword lispFunc /// float-digits princ +syn keyword lispFunc /= float-precision princ-to-string +syn keyword lispFunc 1+ float-radix print +syn keyword lispFunc 1- float-sign print-not-readable +syn keyword lispFunc < floating-point-inexact print-not-readable-object +syn keyword lispFunc <= floating-point-invalid-operation print-object +syn keyword lispFunc = floating-point-overflow print-unreadable-object +syn keyword lispFunc > floating-point-underflow probe-file +syn keyword lispFunc >= floatp proclaim +syn keyword lispFunc abort floor prog +syn keyword lispFunc abs fmakunbound prog* +syn keyword lispFunc access force-output prog1 +syn keyword lispFunc acons format prog2 +syn keyword lispFunc acos formatter progn +syn keyword lispFunc acosh fourth program-error +syn keyword lispFunc add-method fresh-line progv +syn keyword lispFunc adjoin fround provide +syn keyword lispFunc adjust-array ftruncate psetf +syn keyword lispFunc adjustable-array-p ftype psetq +syn keyword lispFunc allocate-instance funcall push +syn keyword lispFunc alpha-char-p function pushnew +syn keyword lispFunc alphanumericp function-keywords putprop +syn keyword lispFunc and function-lambda-expression quote +syn keyword lispFunc append functionp random +syn keyword lispFunc apply gbitp random-state +syn keyword lispFunc applyhook gcd random-state-p +syn keyword lispFunc apropos generic-function rassoc +syn keyword lispFunc apropos-list gensym rassoc-if +syn keyword lispFunc aref gentemp rassoc-if-not +syn keyword lispFunc arithmetic-error get ratio +syn keyword lispFunc arithmetic-error-operands get-decoded-time rational +syn keyword lispFunc arithmetic-error-operation get-dispatch-macro-character rationalize +syn keyword lispFunc array get-internal-real-time rationalp +syn keyword lispFunc array-dimension get-internal-run-time read +syn keyword lispFunc array-dimension-limit get-macro-character read-byte +syn keyword lispFunc array-dimensions get-output-stream-string read-char +syn keyword lispFunc array-displacement get-properties read-char-no-hang +syn keyword lispFunc array-element-type get-setf-expansion read-delimited-list +syn keyword lispFunc array-has-fill-pointer-p get-setf-method read-eval-print +syn keyword lispFunc array-in-bounds-p get-universal-time read-from-string +syn keyword lispFunc array-rank getf read-line +syn keyword lispFunc array-rank-limit gethash read-preserving-whitespace +syn keyword lispFunc array-row-major-index go read-sequence +syn keyword lispFunc array-total-size graphic-char-p reader-error +syn keyword lispFunc array-total-size-limit handler-bind readtable +syn keyword lispFunc arrayp handler-case readtable-case +syn keyword lispFunc ash hash-table readtablep +syn keyword lispFunc asin hash-table-count real +syn keyword lispFunc asinh hash-table-p realp +syn keyword lispFunc assert hash-table-rehash-size realpart +syn keyword lispFunc assoc hash-table-rehash-threshold reduce +syn keyword lispFunc assoc-if hash-table-size reinitialize-instance +syn keyword lispFunc assoc-if-not hash-table-test rem +syn keyword lispFunc atan host-namestring remf +syn keyword lispFunc atanh identity remhash +syn keyword lispFunc atom if remove +syn keyword lispFunc base-char if-exists remove-duplicates +syn keyword lispFunc base-string ignorable remove-if +syn keyword lispFunc bignum ignore remove-if-not +syn keyword lispFunc bit ignore-errors remove-method +syn keyword lispFunc bit-and imagpart remprop +syn keyword lispFunc bit-andc1 import rename-file +syn keyword lispFunc bit-andc2 in-package rename-package +syn keyword lispFunc bit-eqv in-package replace +syn keyword lispFunc bit-ior incf require +syn keyword lispFunc bit-nand initialize-instance rest +syn keyword lispFunc bit-nor inline restart +syn keyword lispFunc bit-not input-stream-p restart-bind +syn keyword lispFunc bit-orc1 inspect restart-case +syn keyword lispFunc bit-orc2 int-char restart-name +syn keyword lispFunc bit-vector integer return +syn keyword lispFunc bit-vector-p integer-decode-float return-from +syn keyword lispFunc bit-xor integer-length revappend +syn keyword lispFunc block integerp reverse +syn keyword lispFunc boole interactive-stream-p room +syn keyword lispFunc boole-1 intern rotatef +syn keyword lispFunc boole-2 internal-time-units-per-second round +syn keyword lispFunc boole-and intersection row-major-aref +syn keyword lispFunc boole-andc1 invalid-method-error rplaca +syn keyword lispFunc boole-andc2 invoke-debugger rplacd +syn keyword lispFunc boole-c1 invoke-restart safety +syn keyword lispFunc boole-c2 invoke-restart-interactively satisfies +syn keyword lispFunc boole-clr isqrt sbit +syn keyword lispFunc boole-eqv keyword scale-float +syn keyword lispFunc boole-ior keywordp schar +syn keyword lispFunc boole-nand labels search +syn keyword lispFunc boole-nor lambda second +syn keyword lispFunc boole-orc1 lambda-list-keywords sequence +syn keyword lispFunc boole-orc2 lambda-parameters-limit serious-condition +syn keyword lispFunc boole-set last set +syn keyword lispFunc boole-xor lcm set-char-bit +syn keyword lispFunc boolean ldb set-difference +syn keyword lispFunc both-case-p ldb-test set-dispatch-macro-character +syn keyword lispFunc boundp ldiff set-exclusive-or +syn keyword lispFunc break least-negative-double-float set-macro-character +syn keyword lispFunc broadcast-stream least-negative-long-float set-pprint-dispatch +syn keyword lispFunc broadcast-stream-streams least-negative-normalized-double-float set-syntax-from-char +syn keyword lispFunc built-in-class least-negative-normalized-long-float setf +syn keyword lispFunc butlast least-negative-normalized-short-float setq +syn keyword lispFunc byte least-negative-normalized-single-float seventh +syn keyword lispFunc byte-position least-negative-short-float shadow +syn keyword lispFunc byte-size least-negative-single-float shadowing-import +syn keyword lispFunc call-arguments-limit least-positive-double-float shared-initialize +syn keyword lispFunc call-method least-positive-long-float shiftf +syn keyword lispFunc call-next-method least-positive-normalized-double-float short-float +syn keyword lispFunc capitalize least-positive-normalized-long-float short-float-epsilon +syn keyword lispFunc car least-positive-normalized-short-float short-float-negative-epsilon +syn keyword lispFunc case least-positive-normalized-single-float short-site-name +syn keyword lispFunc catch least-positive-short-float signal +syn keyword lispFunc ccase least-positive-single-float signed-byte +syn keyword lispFunc cdr length signum +syn keyword lispFunc ceiling let simple-condition +syn keyword lispFunc cell-error let* simple-array +syn keyword lispFunc cell-error-name lisp simple-base-string +syn keyword lispFunc cerror lisp-implementation-type simple-bit-vector +syn keyword lispFunc change-class lisp-implementation-version simple-bit-vector-p +syn keyword lispFunc char list simple-condition-format-arguments +syn keyword lispFunc char-bit list* simple-condition-format-control +syn keyword lispFunc char-bits list-all-packages simple-error +syn keyword lispFunc char-bits-limit list-length simple-string +syn keyword lispFunc char-code listen simple-string-p +syn keyword lispFunc char-code-limit listp simple-type-error +syn keyword lispFunc char-control-bit load simple-vector +syn keyword lispFunc char-downcase load-logical-pathname-translations simple-vector-p +syn keyword lispFunc char-equal load-time-value simple-warning +syn keyword lispFunc char-font locally sin +syn keyword lispFunc char-font-limit log single-flaot-epsilon +syn keyword lispFunc char-greaterp logand single-float +syn keyword lispFunc char-hyper-bit logandc1 single-float-epsilon +syn keyword lispFunc char-int logandc2 single-float-negative-epsilon +syn keyword lispFunc char-lessp logbitp sinh +syn keyword lispFunc char-meta-bit logcount sixth +syn keyword lispFunc char-name logeqv sleep +syn keyword lispFunc char-not-equal logical-pathname slot-boundp +syn keyword lispFunc char-not-greaterp logical-pathname-translations slot-exists-p +syn keyword lispFunc char-not-lessp logior slot-makunbound +syn keyword lispFunc char-super-bit lognand slot-missing +syn keyword lispFunc char-upcase lognor slot-unbound +syn keyword lispFunc char/= lognot slot-value +syn keyword lispFunc char< logorc1 software-type +syn keyword lispFunc char<= logorc2 software-version +syn keyword lispFunc char= logtest some +syn keyword lispFunc char> logxor sort +syn keyword lispFunc char>= long-float space +syn keyword lispFunc character long-float-epsilon special +syn keyword lispFunc characterp long-float-negative-epsilon special-form-p +syn keyword lispFunc check-type long-site-name special-operator-p +syn keyword lispFunc cis loop speed +syn keyword lispFunc class loop-finish sqrt +syn keyword lispFunc class-name lower-case-p stable-sort +syn keyword lispFunc class-of machine-instance standard +syn keyword lispFunc clear-input machine-type standard-char +syn keyword lispFunc clear-output machine-version standard-char-p +syn keyword lispFunc close macro-function standard-class +syn keyword lispFunc clrhash macroexpand standard-generic-function +syn keyword lispFunc code-char macroexpand-1 standard-method +syn keyword lispFunc coerce macroexpand-l standard-object +syn keyword lispFunc commonp macrolet step +syn keyword lispFunc compilation-speed make-array storage-condition +syn keyword lispFunc compile make-array store-value +syn keyword lispFunc compile-file make-broadcast-stream stream +syn keyword lispFunc compile-file-pathname make-char stream-element-type +syn keyword lispFunc compiled-function make-concatenated-stream stream-error +syn keyword lispFunc compiled-function-p make-condition stream-error-stream +syn keyword lispFunc compiler-let make-dispatch-macro-character stream-external-format +syn keyword lispFunc compiler-macro make-echo-stream streamp +syn keyword lispFunc compiler-macro-function make-hash-table streamup +syn keyword lispFunc complement make-instance string +syn keyword lispFunc complex make-instances-obsolete string-capitalize +syn keyword lispFunc complexp make-list string-char +syn keyword lispFunc compute-applicable-methods make-load-form string-char-p +syn keyword lispFunc compute-restarts make-load-form-saving-slots string-downcase +syn keyword lispFunc concatenate make-method string-equal +syn keyword lispFunc concatenated-stream make-package string-greaterp +syn keyword lispFunc concatenated-stream-streams make-pathname string-left-trim +syn keyword lispFunc cond make-random-state string-lessp +syn keyword lispFunc condition make-sequence string-not-equal +syn keyword lispFunc conjugate make-string string-not-greaterp +syn keyword lispFunc cons make-string-input-stream string-not-lessp +syn keyword lispFunc consp make-string-output-stream string-right-strim +syn keyword lispFunc constantly make-symbol string-right-trim +syn keyword lispFunc constantp make-synonym-stream string-stream +syn keyword lispFunc continue make-two-way-stream string-trim +syn keyword lispFunc control-error makunbound string-upcase +syn keyword lispFunc copy-alist map string/= +syn keyword lispFunc copy-list map-into string< +syn keyword lispFunc copy-pprint-dispatch mapc string<= +syn keyword lispFunc copy-readtable mapcan string= +syn keyword lispFunc copy-seq mapcar string> +syn keyword lispFunc copy-structure mapcon string>= +syn keyword lispFunc copy-symbol maphash stringp +syn keyword lispFunc copy-tree mapl structure +syn keyword lispFunc cos maplist structure-class +syn keyword lispFunc cosh mask-field structure-object +syn keyword lispFunc count max style-warning +syn keyword lispFunc count-if member sublim +syn keyword lispFunc count-if-not member-if sublis +syn keyword lispFunc ctypecase member-if-not subseq +syn keyword lispFunc debug merge subsetp +syn keyword lispFunc decf merge-pathname subst +syn keyword lispFunc declaim merge-pathnames subst-if +syn keyword lispFunc declaration method subst-if-not +syn keyword lispFunc declare method-combination substitute +syn keyword lispFunc decode-float method-combination-error substitute-if +syn keyword lispFunc decode-universal-time method-qualifiers substitute-if-not +syn keyword lispFunc defclass min subtypep +syn keyword lispFunc defconstant minusp svref +syn keyword lispFunc defgeneric mismatch sxhash +syn keyword lispFunc define-compiler-macro mod symbol +syn keyword lispFunc define-condition most-negative-double-float symbol-function +syn keyword lispFunc define-method-combination most-negative-fixnum symbol-macrolet +syn keyword lispFunc define-modify-macro most-negative-long-float symbol-name +syn keyword lispFunc define-setf-expander most-negative-short-float symbol-package +syn keyword lispFunc define-setf-method most-negative-single-float symbol-plist +syn keyword lispFunc define-symbol-macro most-positive-double-float symbol-value +syn keyword lispFunc defmacro most-positive-fixnum symbolp +syn keyword lispFunc defmethod most-positive-long-float synonym-stream +syn keyword lispFunc defpackage most-positive-short-float synonym-stream-symbol +syn keyword lispFunc defparameter most-positive-single-float sys +syn keyword lispFunc defsetf muffle-warning system +syn keyword lispFunc defstruct multiple-value-bind t +syn keyword lispFunc deftype multiple-value-call tagbody +syn keyword lispFunc defun multiple-value-list tailp +syn keyword lispFunc defvar multiple-value-prog1 tan +syn keyword lispFunc delete multiple-value-seteq tanh +syn keyword lispFunc delete-duplicates multiple-value-setq tenth +syn keyword lispFunc delete-file multiple-values-limit terpri +syn keyword lispFunc delete-if name-char the +syn keyword lispFunc delete-if-not namestring third +syn keyword lispFunc delete-package nbutlast throw +syn keyword lispFunc denominator nconc time +syn keyword lispFunc deposit-field next-method-p trace +syn keyword lispFunc describe nil translate-logical-pathname +syn keyword lispFunc describe-object nintersection translate-pathname +syn keyword lispFunc destructuring-bind ninth tree-equal +syn keyword lispFunc digit-char no-applicable-method truename +syn keyword lispFunc digit-char-p no-next-method truncase +syn keyword lispFunc directory not truncate +syn keyword lispFunc directory-namestring notany two-way-stream +syn keyword lispFunc disassemble notevery two-way-stream-input-stream +syn keyword lispFunc division-by-zero notinline two-way-stream-output-stream +syn keyword lispFunc do nreconc type +syn keyword lispFunc do* nreverse type-error +syn keyword lispFunc do-all-symbols nset-difference type-error-datum +syn keyword lispFunc do-exeternal-symbols nset-exclusive-or type-error-expected-type +syn keyword lispFunc do-external-symbols nstring type-of +syn keyword lispFunc do-symbols nstring-capitalize typecase +syn keyword lispFunc documentation nstring-downcase typep +syn keyword lispFunc dolist nstring-upcase unbound-slot +syn keyword lispFunc dotimes nsublis unbound-slot-instance +syn keyword lispFunc double-float nsubst unbound-variable +syn keyword lispFunc double-float-epsilon nsubst-if undefined-function +syn keyword lispFunc double-float-negative-epsilon nsubst-if-not unexport +syn keyword lispFunc dpb nsubstitute unintern +syn keyword lispFunc dribble nsubstitute-if union +syn keyword lispFunc dynamic-extent nsubstitute-if-not unless +syn keyword lispFunc ecase nth unread +syn keyword lispFunc echo-stream nth-value unread-char +syn keyword lispFunc echo-stream-input-stream nthcdr unsigned-byte +syn keyword lispFunc echo-stream-output-stream null untrace +syn keyword lispFunc ed number unuse-package +syn keyword lispFunc eighth numberp unwind-protect +syn keyword lispFunc elt numerator update-instance-for-different-class +syn keyword lispFunc encode-universal-time nunion update-instance-for-redefined-class +syn keyword lispFunc end-of-file oddp upgraded-array-element-type +syn keyword lispFunc endp open upgraded-complex-part-type +syn keyword lispFunc enough-namestring open-stream-p upper-case-p +syn keyword lispFunc ensure-directories-exist optimize use-package +syn keyword lispFunc ensure-generic-function or use-value +syn keyword lispFunc eq otherwise user +syn keyword lispFunc eql output-stream-p user-homedir-pathname +syn keyword lispFunc equal package values +syn keyword lispFunc equalp package-error values-list +syn keyword lispFunc error package-error-package vector +syn keyword lispFunc etypecase package-name vector-pop +syn keyword lispFunc eval package-nicknames vector-push +syn keyword lispFunc eval-when package-shadowing-symbols vector-push-extend +syn keyword lispFunc evalhook package-use-list vectorp +syn keyword lispFunc evenp package-used-by-list warn +syn keyword lispFunc every packagep warning +syn keyword lispFunc exp pairlis when +syn keyword lispFunc export parse-error wild-pathname-p +syn keyword lispFunc expt parse-integer with-accessors +syn keyword lispFunc extended-char parse-namestring with-compilation-unit +syn keyword lispFunc fboundp pathname with-condition-restarts +syn keyword lispFunc fceiling pathname-device with-hash-table-iterator +syn keyword lispFunc fdefinition pathname-directory with-input-from-string +syn keyword lispFunc ffloor pathname-host with-open-file +syn keyword lispFunc fifth pathname-match-p with-open-stream +syn keyword lispFunc file-author pathname-name with-output-to-string +syn keyword lispFunc file-error pathname-type with-package-iterator +syn keyword lispFunc file-error-pathname pathname-version with-simple-restart +syn keyword lispFunc file-length pathnamep with-slots +syn keyword lispFunc file-namestring peek-char with-standard-io-syntax +syn keyword lispFunc file-position phase write +syn keyword lispFunc file-stream pi write-byte +syn keyword lispFunc file-string-length plusp write-char +syn keyword lispFunc file-write-date pop write-line +syn keyword lispFunc fill position write-sequence +syn keyword lispFunc fill-pointer position-if write-string +syn keyword lispFunc find position-if-not write-to-string +syn keyword lispFunc find-all-symbols pprint y-or-n-p +syn keyword lispFunc find-class pprint-dispatch yes-or-no-p +syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop +syn keyword lispFunc find-if-not pprint-fill -syn match lispFunc "\" +syn match lispFunc "\" +if exists("g:lispsyntax_clisp") + " CLISP FFI: + syn match lispFunc "\<\(ffi:\)\?with-c-\(place\|var\)\>" + syn match lispFunc "\<\(ffi:\)\?with-foreign-\(object\|string\)\>" + syn match lispFunc "\<\(ffi:\)\?default-foreign-\(language\|library\)\>" + syn match lispFunc "\<\([us]_\?\)\?\(element\|deref\|cast\|slot\|validp\)\>" + syn match lispFunc "\<\(ffi:\)\?set-foreign-pointer\>" + syn match lispFunc "\<\(ffi:\)\?allocate-\(deep\|shallow\)\>" + syn match lispFunc "\<\(ffi:\)\?c-lines\>" + syn match lispFunc "\<\(ffi:\)\?foreign-\(value\|free\|variable\|function\|object\)\>" + syn match lispFunc "\<\(ffi:\)\?foreign-address\(-null\|unsigned\)\?\>" + syn match lispFunc "\<\(ffi:\)\?undigned-foreign-address\>" + syn match lispFunc "\<\(ffi:\)\?c-var-\(address\|object\)\>" + syn match lispFunc "\<\(ffi:\)\?typeof\>" + syn match lispFunc "\<\(ffi:\)\?\(bit\)\?sizeof\>" +" CLISP Macros, functions et al: + syn match lispFunc "\<\(ext:\)\?with-collect\>" + syn match lispFunc "\<\(ext:\)\?letf\*\?\>" + syn match lispFunc "\<\(ext:\)\?finalize\>\>" + syn match lispFunc "\<\(ext:\)\?memoized\>" + syn match lispFunc "\<\(ext:\)\?getenv\>" + syn match lispFunc "\<\(ext:\)\?convert-string-\(to\|from\)-bytes\>" + syn match lispFunc "\<\(ext:\)\?ethe\>" + syn match lispFunc "\<\(ext:\)\?with-gensyms\>" + syn match lispFunc "\<\(ext:\)\?open-http\>" + syn match lispFunc "\<\(ext:\)\?string-concat\>" + syn match lispFunc "\<\(ext:\)\?with-http-\(in\|out\)put\>" + syn match lispFunc "\<\(ext:\)\?with-html-output\>" + syn match lispFunc "\<\(ext:\)\?expand-form\>" + syn match lispFunc "\<\(ext:\)\?\(without-\)\?package-lock\>" + syn match lispFunc "\<\(ext:\)\?re-export\>" + syn match lispFunc "\<\(ext:\)\?saveinitmem\>" + syn match lispFunc "\<\(ext:\)\?\(read\|write\)-\(integer\|float\)\>" + syn match lispFunc "\<\(ext:\)\?\(read\|write\)-\(char\|byte\)-sequence\>" + syn match lispFunc "\<\(custom:\)\?\*system-package-list\*\>" + syn match lispFunc "\<\(custom:\)\?\*ansi\*\>" +endif " --------------------------------------------------------------------- " Lisp Keywords (modifiers): {{{1 -syn keyword lispKey :abort :from-end :overwrite -syn keyword lispKey :adjustable :gensym :predicate -syn keyword lispKey :append :host :preserve-whitespace -syn keyword lispKey :array :if-does-not-exist :pretty -syn keyword lispKey :base :if-exists :print -syn keyword lispKey :case :include :print-function -syn keyword lispKey :circle :index :probe -syn keyword lispKey :conc-name :inherited :radix -syn keyword lispKey :constructor :initial-contents :read-only -syn keyword lispKey :copier :initial-element :rehash-size -syn keyword lispKey :count :initial-offset :rehash-threshold -syn keyword lispKey :create :initial-value :rename -syn keyword lispKey :default :input :rename-and-delete -syn keyword lispKey :defaults :internal :size -syn keyword lispKey :device :io :start -syn keyword lispKey :direction :junk-allowed :start1 -syn keyword lispKey :directory :key :start2 -syn keyword lispKey :displaced-index-offset :length :stream -syn keyword lispKey :displaced-to :level :supersede -syn keyword lispKey :element-type :name :test -syn keyword lispKey :end :named :test-not -syn keyword lispKey :end1 :new-version :type -syn keyword lispKey :end2 :nicknames :use -syn keyword lispKey :error :output :verbose -syn keyword lispKey :escape :output-file :version -syn keyword lispKey :external +syn keyword lispKey :abort :from-end :overwrite +syn keyword lispKey :adjustable :gensym :predicate +syn keyword lispKey :append :host :preserve-whitespace +syn keyword lispKey :array :if-does-not-exist :pretty +syn keyword lispKey :base :if-exists :print +syn keyword lispKey :case :include :print-function +syn keyword lispKey :circle :index :probe +syn keyword lispKey :conc-name :inherited :radix +syn keyword lispKey :constructor :initial-contents :read-only +syn keyword lispKey :copier :initial-element :rehash-size +syn keyword lispKey :count :initial-offset :rehash-threshold +syn keyword lispKey :create :initial-value :rename +syn keyword lispKey :default :input :rename-and-delete +syn keyword lispKey :defaults :internal :size +syn keyword lispKey :device :io :start +syn keyword lispKey :direction :junk-allowed :start1 +syn keyword lispKey :directory :key :start2 +syn keyword lispKey :displaced-index-offset :length :stream +syn keyword lispKey :displaced-to :level :supersede +syn keyword lispKey :element-type :name :test +syn keyword lispKey :end :named :test-not +syn keyword lispKey :end1 :new-version :type +syn keyword lispKey :end2 :nicknames :use +syn keyword lispKey :error :output :verbose +syn keyword lispKey :escape :output-file :version +syn keyword lispKey :external +" defpackage arguments +syn keyword lispKey :documentation :shadowing-import-from :modern :export +syn keyword lispKey :case-sensitive :case-inverted :shadow :import-from :intern +" lambda list keywords +syn keyword lispKey &allow-other-keys &aux &body +syn keyword lispKey &environment &key &optional &rest &whole +" make-array argument +syn keyword lispKey :fill-pointer +" readtable-case values +syn keyword lispKey :upcase :downcase :preserve :invert +" eval-when situations +syn keyword lispKey :load-toplevel :compile-toplevel :execute +" ANSI Extended LOOP: +syn keyword lispKey :while :until :for :do :if :then :else :when :unless :in +syn keyword lispKey :across :finally :collect :nconc :maximize :minimize :sum +syn keyword lispKey :and :with :initially :append :into :count :end :repeat +syn keyword lispKey :always :never :thereis :from :to :upto :downto :below +syn keyword lispKey :above :by :on :being :each :the :hash-key :hash-keys +syn keyword lispKey :hash-value :hash-values :using :of-type :upfrom :downfrom +if exists("g:lispsyntax_clisp") + " CLISP FFI: + syn keyword lispKey :arguments :return-type :library :full :malloc-free + syn keyword lispKey :none :alloca :in :out :in-out :stdc-stdcall :stdc :c + syn keyword lispKey :language :built-in :typedef :external + syn keyword lispKey :fini :init-once :init-always +endif " --------------------------------------------------------------------- " Standard Lisp Variables: {{{1 -syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch* -syn keyword lispVar *break-on-signals* *load-print* *print-pprint-dispatch* -syn keyword lispVar *break-on-signals* *load-truename* *print-pretty* -syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix* -syn keyword lispVar *compile-file-pathname* *macroexpand-hook* *print-readably* -syn keyword lispVar *compile-file-pathname* *modules* *print-right-margin* -syn keyword lispVar *compile-file-truename* *package* *print-right-margin* -syn keyword lispVar *compile-file-truename* *print-array* *query-io* -syn keyword lispVar *compile-print* *print-base* *random-state* -syn keyword lispVar *compile-verbose* *print-case* *read-base* -syn keyword lispVar *compile-verbose* *print-circle* *read-default-float-format* -syn keyword lispVar *debug-io* *print-escape* *read-eval* -syn keyword lispVar *debugger-hook* *print-gensym* *read-suppress* -syn keyword lispVar *default-pathname-defaults* *print-length* *readtable* -syn keyword lispVar *error-output* *print-level* *standard-input* -syn keyword lispVar *evalhook* *print-lines* *standard-output* -syn keyword lispVar *features* *print-miser-width* *terminal-io* -syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output* +syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch* +syn keyword lispVar *break-on-signals* *load-print* *print-pprint-dispatch* +syn keyword lispVar *break-on-signals* *load-truename* *print-pretty* +syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix* +syn keyword lispVar *compile-file-pathname* *macroexpand-hook* *print-readably* +syn keyword lispVar *compile-file-pathname* *modules* *print-right-margin* +syn keyword lispVar *compile-file-truename* *package* *print-right-margin* +syn keyword lispVar *compile-file-truename* *print-array* *query-io* +syn keyword lispVar *compile-print* *print-base* *random-state* +syn keyword lispVar *compile-verbose* *print-case* *read-base* +syn keyword lispVar *compile-verbose* *print-circle* *read-default-float-format* +syn keyword lispVar *debug-io* *print-escape* *read-eval* +syn keyword lispVar *debugger-hook* *print-gensym* *read-suppress* +syn keyword lispVar *default-pathname-defaults* *print-length* *readtable* +syn keyword lispVar *error-output* *print-level* *standard-input* +syn keyword lispVar *evalhook* *print-lines* *standard-output* +syn keyword lispVar *features* *print-miser-width* *terminal-io* +syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output* " --------------------------------------------------------------------- " Strings: {{{1 -syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell +syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell if exists("g:lisp_instring") - syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString - syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained + syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString + syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained endif " --------------------------------------------------------------------- " Shared with Xlisp, Declarations, Macros, Functions: {{{1 -syn keyword lispDecl defmacro do-all-symbols labels -syn keyword lispDecl defsetf do-external-symbols let -syn keyword lispDecl deftype do-symbols locally -syn keyword lispDecl defun dotimes macrolet -syn keyword lispDecl do* flet multiple-value-bind +syn keyword lispDecl defmacro do-all-symbols labels +syn keyword lispDecl defsetf do-external-symbols let +syn keyword lispDecl deftype do-symbols locally +syn keyword lispDecl defun dotimes macrolet +syn keyword lispDecl do* flet multiple-value-bind +if exists("g:lispsyntax_clisp") + " CLISP FFI: + syn match lispDecl "\<\(ffi:\)\?def-c-\(var\|const\|enum\|type\|struct\)\>" + syn match lispDecl "\<\(ffi:\)\?def-call-\(out\|in\)\>" + syn match lispDecl "\<\(ffi:\)\?c-\(function\|struct\|pointer\|string\)\>" + syn match lispDecl "\<\(ffi:\)\?c-ptr\(-null\)\?\>" + syn match lispDecl "\<\(ffi:\)\?c-array\(-ptr\|-max\)\?\>" + syn match lispDecl "\<\(ffi:\)\?[us]\?\(char\|short\|int\|long\)\>" + syn match lispDecl "\<\(win32:\|w32\)\?d\?word\>" + syn match lispDecl "\<\([us]_\?\)\?int\(8\|16\|32\|64\)\(_t\)\?\>" + syn keyword lispDecl size_t off_t time_t handle +endif " --------------------------------------------------------------------- " Numbers: supporting integers and floating point numbers {{{1 -syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\=" +syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\=" -syn match lispSpecial "\*\w[a-z_0-9-]*\*" -syn match lispSpecial !#|[^()'`,"; \t]\+|#! -syn match lispSpecial !#x\x\+! -syn match lispSpecial !#o\o\+! -syn match lispSpecial !#b[01]\+! -syn match lispSpecial !#\\[ -}\~]! -syn match lispSpecial !#[':][^()'`,"; \t]\+! -syn match lispSpecial !#([^()'`,"; \t]\+)! -syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)! +syn match lispSpecial "\*\w[a-z_0-9-]*\*" +syn match lispSpecial !#|[^()'`,"; \t]\+|#! +syn match lispSpecial !#x\x\+! +syn match lispSpecial !#o\o\+! +syn match lispSpecial !#b[01]\+! +syn match lispSpecial !#\\[ -}\~]! +syn match lispSpecial !#[':][^()'`,"; \t]\+! +syn match lispSpecial !#([^()'`,"; \t]\+)! +syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)! +syn match lispSpecial "\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>" -syn match lispConcat "\s\.\s" -syn match lispParenError ")" +syn match lispConcat "\s\.\s" +syn match lispParenError ")" " --------------------------------------------------------------------- " Comments: {{{1 -syn cluster lispCommentGroup contains=lispTodo,@Spell -syn match lispComment ";.*$" contains=@lispCommentGroup -syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup -syn keyword lispTodo contained combak combak: todo todo: +syn cluster lispCommentGroup contains=lispTodo,@Spell +syn match lispComment ";.*$" contains=@lispCommentGroup +syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup +syn keyword lispTodo contained combak combak: todo todo: " --------------------------------------------------------------------- " Synchronization: {{{1 @@ -487,38 +568,38 @@ syn sync lines=100 if version >= 508 command -nargs=+ HiLink hi def link - HiLink lispCommentRegion lispComment - HiLink lispAtomNmbr lispNumber - HiLink lispAtomMark lispMark - HiLink lispInStringString lispString + HiLink lispCommentRegion lispComment + HiLink lispAtomNmbr lispNumber + HiLink lispAtomMark lispMark + HiLink lispInStringString lispString - HiLink lispAtom Identifier - HiLink lispAtomBarSymbol Special - HiLink lispBarSymbol Special - HiLink lispComment Comment - HiLink lispConcat Statement - HiLink lispDecl Statement - HiLink lispFunc Statement - HiLink lispKey Type - HiLink lispMark Delimiter - HiLink lispNumber Number - HiLink lispParenError Error - HiLink lispSpecial Type - HiLink lispString String - HiLink lispTodo Todo - HiLink lispVar Statement + HiLink lispAtom Identifier + HiLink lispAtomBarSymbol Special + HiLink lispBarSymbol Special + HiLink lispComment Comment + HiLink lispConcat Statement + HiLink lispDecl Statement + HiLink lispFunc Statement + HiLink lispKey Type + HiLink lispMark Delimiter + HiLink lispNumber Number + HiLink lispParenError Error + HiLink lispSpecial Type + HiLink lispString String + HiLink lispTodo Todo + HiLink lispVar Statement if exists("g:lisp_rainbow") && g:lisp_rainbow != 0 if &bg == "dark" hi def hlLevel0 ctermfg=red guifg=red1 - hi def hlLevel1 ctermfg=yellow guifg=orange1 - hi def hlLevel2 ctermfg=green guifg=yellow1 - hi def hlLevel3 ctermfg=cyan guifg=greenyellow - hi def hlLevel4 ctermfg=magenta guifg=green1 - hi def hlLevel5 ctermfg=red guifg=springgreen1 - hi def hlLevel6 ctermfg=yellow guifg=cyan1 - hi def hlLevel7 ctermfg=green guifg=slateblue1 - hi def hlLevel8 ctermfg=cyan guifg=magenta1 + hi def hlLevel1 ctermfg=yellow guifg=orange1 + hi def hlLevel2 ctermfg=green guifg=yellow1 + hi def hlLevel3 ctermfg=cyan guifg=greenyellow + hi def hlLevel4 ctermfg=magenta guifg=green1 + hi def hlLevel5 ctermfg=red guifg=springgreen1 + hi def hlLevel6 ctermfg=yellow guifg=cyan1 + hi def hlLevel7 ctermfg=green guifg=slateblue1 + hi def hlLevel8 ctermfg=cyan guifg=magenta1 hi def hlLevel9 ctermfg=magenta guifg=purple1 else hi def hlLevel0 ctermfg=red guifg=red3 diff --git a/runtime/syntax/lsl.vim b/runtime/syntax/lsl.vim new file mode 100644 --- /dev/null +++ b/runtime/syntax/lsl.vim @@ -0,0 +1,272 @@ +" Vim syntax file +" Language: Linden Scripting Language +" Maintainer: Timo Frenay +" Last Change: 2008 Mar 29 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Initializations +syn case match + +" Keywords +syn keyword lslKeyword default do else for if jump return state while + +" Types +syn keyword lslType float integer key list quaternion rotation string vector + +" Labels +syn match lslLabel +@\h\w*+ display + +" Constants +syn keyword lslConstant +\ ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY +\ AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT +\ AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON +\ ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_HEAD +\ ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT +\ ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER +\ ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LFOOT +\ ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LPEC +\ ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE +\ ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP +\ ATTACH_RLARM ATTACH_RLLEG ATTACH_RPEC ATTACH_RSHOULDER ATTACH_RUARM +\ ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG +\ CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED +\ CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION +\ CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD +\ CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK +\ CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT +\ CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN +\ CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT +\ CLICK_ACTION_TOUCH CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON +\ CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT +\ CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO +\ DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL +\ DEG_TO_RAD EOF FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD +\ HTTP_MIMETYPE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION +\ INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK +\ INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT +\ INVENTORY_SOUND INVENTORY_TEXTURE LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER +\ LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH +\ LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS +\ LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN +\ LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV +\ LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP MASK_BASE MASK_EVERYONE MASK_GROUP +\ MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP +\ OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL +\ OBJECT_VELOCITY PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER +\ PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA +\ PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_NAME +\ PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY +\ PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS +\ PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY +\ PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS +\ PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS +\ PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY +\ PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP +\ PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST +\ PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT +\ PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC +\ PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET +\ PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE +\ PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE +\ PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE +\ PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE +\ PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERM_ALL PERM_COPY +\ PERM_MODIFY PERM_MOVE PERM_TRANSFER PERMISSION_ATTACH PERMISSION_CHANGE_LINKS +\ PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_TAKE_CONTROLS +\ PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PI PI_BY_TWO PING_PONG +\ PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT +\ PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS +\ PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY +\ PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION +\ PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_CAST_SHADOWS PRIM_COLOR +\ PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT +\ PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_MATERIAL PRIM_MATERIAL_FLESH +\ PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL +\ PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE +\ PRIM_MATERIAL_WOOD PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION +\ PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_PLANE +\ PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW +\ PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN +\ PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX +\ PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_CYLINDER PRIM_TYPE_LEGACY +\ PRIM_TYPE_PRISM PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT +\ PRIM_TYPE_SPHERE PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TORUS +\ PRIM_TYPE_TUBE PRIM_TYPE_TUBE PSYS_PART_BEAM_MASK PSYS_PART_BOUNCE_MASK +\ PSYS_PART_DEAD_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA +\ PSYS_PART_END_COLOR PSYS_PART_END_SCALE PSYS_PART_FLAGS +\ PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK +\ PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE +\ PSYS_PART_RANDOM_ACCEL_MASK PSYS_PART_RANDOM_VEL_MASK PSYS_PART_START_ALPHA +\ PSYS_PART_START_COLOR PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK +\ PSYS_PART_TARGET_POS_MASK PSYS_PART_TRAIL_MASK PSYS_PART_WIND_MASK +\ PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END +\ PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE +\ PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE +\ PSYS_SRC_MAX_AGE PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN +\ PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE +\ PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP +\ PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL +\ RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT +\ REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM +\ REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS +\ REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX +\ REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE +\ SCRIPTED SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE +\ STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X +\ STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STRING_TRIM STRING_TRIM_HEAD +\ STRING_TRIM_TAIL TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY +\ TYPE_ROTATION TYPE_STRING TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY +\ VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE +\ VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION +\ VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX +\ VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED +\ VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY +\ VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY +\ VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY +\ VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER +\ VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT +\ VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY +\ VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE +\ VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_TIMESCALE +\ VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET +\ VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON +\ VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED +\ VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE +\ ZERO_ROTATION ZERO_VECTOR + +" Events +syn keyword lslEvent +\ attach at_rot_target at_target changed collision collision_end collision_start +\ control dataserver email http_response land_collision land_collision_end +\ land_collision_start link_message listen money moving_end moving_start +\ not_at_rot_target no_sensor object_rez on_rez remote_data run_time_permissions +\ sensor state_entry state_exit timer touch touch_end touch_start not_at_target + +" Functions +syn keyword lslFunction +\ llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume +\ llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse +\ llAsin llAtan2 llAttachToAvatar llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot +\ llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCSV2List +\ llCeil llClearCameraParams llCloseRemoteDataChannel llCloud llCollisionFilter +\ llCollisionSound llCollisionSprite llCos llCreateLink llDeleteSubList +\ llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup +\ llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner +\ llDetectedPos llDetectedRot llDetectedType llDetectedVel llDialog llDie +\ llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL +\ llEuler2Rot llFabs llFloor llForceMouselook llFrand llGetAccel llGetAgentInfo +\ llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList +\ llGetAttached llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass +\ llGetColor llGetCreator llGetDate llGetEnergy llGetForce llGetFreeMemory +\ llGetGMTclock llGetGeometricCenter llGetInventoryCreator llGetInventoryKey +\ llGetInventoryName llGetInventoryNumber llGetInventoryPermMask +\ llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkName +\ llGetLinkNumber llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot +\ llGetMass llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines +\ llGetNumberOfPrims llGetNumberOfSides llGetObjectDesc llGetObjectDetails +\ llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount +\ llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags +\ llGetParcelMaxPrims llGetParcelPrimCount llGetParcelPrimOwners +\ llGetPermissions llGetPermissionsKey llGetPos llGetPrimitiveParams +\ llGetRegionCorner llGetRegionFPS llGetRegionFlags llGetRegionName +\ llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot +\ llGetScale llGetScriptName llGetScriptState llGetSimulatorHostname +\ llGetStartParameter llGetStatus llGetSubString llGetSunDirection llGetTexture +\ llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay +\ llGetTimestamp llGetTorque llGetUnixTime llGetVel llGetWallclock +\ llGiveInventory llGiveInventoryList llGiveMoney llGodLikeRezObject llGround +\ llGroundContour llGroundNormal llGroundRepel llGroundSlope llHTTPRequest +\ llInsertString llInstantMessage llIntegerToBase64 llKey2Name llList2CSV +\ llList2Float llList2Integer llList2Key llList2List llList2ListStrided +\ llList2Rot llList2String llList2Vector llListFindList llListInsertList +\ llListRandomize llListReplaceList llListSort llListStatistics llListen +\ llListenControl llListenRemove llLoadURL llLog llLog10 llLookAt llLoopSound +\ llLoopSoundMaster llLoopSoundSlave llMD5String llMakeExplosion llMakeFire +\ llMakeFountain llMakeSmoke llMapDestination llMessageLinked llMinEventDelay +\ llModPow llModifyLand llMoveToTarget llOffsetTexture llOpenRemoteDataChannel +\ llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery +\ llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions +\ llPassTouches llPlaySound llPlaySoundSlave llPointAt llPow llPreloadSound +\ llPushObject llRefreshPrimURL llRegionSay llReleaseCamera llReleaseControls +\ llRemoteDataReply llRemoteDataSetRegion llRemoteLoadScript +\ llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList +\ llRemoveInventory llRemoveVehicleFlags llRequestAgentData +\ llRequestInventoryData llRequestPermissions llRequestSimulatorData +\ llResetLandBanList llResetLandPassList llResetOtherScript llResetScript +\ llResetTime llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler +\ llRot2Fwd llRot2Left llRot2Up llRotBetween llRotLookAt llRotTarget +\ llRotTargetRemove llRotateTexture llRound llSameGroup llSay llScaleTexture +\ llScriptDanger llSendRemoteData llSensor llSensorRemove llSensorRepeat +\ llSetAlpha llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset +\ llSetCameraParams llSetClickAction llSetColor llSetDamage llSetForce +\ llSetForceAndTorque llSetHoverHeight llSetInventoryPermMask llSetLinkAlpha +\ llSetLinkColor llSetLinkPrimitiveParams llSetLinkTexture llSetLocalRot +\ llSetObjectDesc llSetObjectName llSetObjectPermMask llSetParcelMusicURL +\ llSetPayPrice llSetPos llSetPrimURL llSetPrimitiveParams +\ llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText +\ llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture +\ llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags +\ llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType +\ llSetVehicleVectorParam llShout llSin llSitTarget llSleep llSound +\ llSoundPreload llSqrt llStartAnimation llStopAnimation llStopHover +\ llStopLookAt llStopMoveToTarget llStopPointAt llStopSound llStringLength +\ llStringToBase64 llStringTrim llSubStringIndex llTakeCamera llTakeControls +\ llTan llTarget llTargetOmega llTargetRemove llTeleportAgentHome llToLower +\ llToUpper llTriggerSound llTriggerSoundLimited llUnSit llUnescapeURL llVecDist +\ llVecMag llVecNorm llVolumeDetect llWater llWhisper llWind llXorBase64Strings +\ llXorBase64StringsCorrect + +" Operators +syn match lslOperator +[-!%&*+/<=>^|~]+ display + +" Numbers +syn match lslNumber +-\=\%(\<\d\+\|\%(\<\d\+\)\=\.\d\+\)\%([Ee][-+]\=\d\+\)\=\>\|\<0x\x\+\>+ display + +" Vectors and rotations +syn match lslVectorRot +<[-\t +.0-9A-Za-z_]\+\%(,[-\t +.0-9A-Za-z_]\+\)\{2,3}>+ contains=lslNumber display + +" Vector and rotation properties +syn match lslProperty +\.\@<=[sxyz]\>+ display + +" Strings +syn region lslString start=+"+ skip=+\\.+ end=+"+ contains=lslSpecialChar,@Spell +syn match lslSpecialChar +\\.+ contained display + +" Keys +syn match lslKey +"\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}"+ display + +" Parentheses, braces and brackets +syn match lslBlock +[][(){}]+ display + +" Typecast operators +syn match lslTypecast +(\%(float\|integer\|key\|list\|quaternion\|rotation\|string\|vector\))+ contains=lslType display + +" Comments +syn match lslComment +//.*+ contains=@Spell + +" Define the default highlighting. +hi def link lslKeyword Keyword +hi def link lslType Type +hi def link lslLabel Label +hi def link lslConstant Constant +hi def link lslEvent PreProc +hi def link lslFunction Function +hi def link lslOperator Operator +hi def link lslNumber Number +hi def link lslVectorRot Special +hi def link lslProperty Identifier +hi def link lslString String +hi def link lslSpecialChar SpecialChar +hi def link lslKey Special +hi def link lslBlock Special +hi def link lslTypecast Operator +hi def link lslComment Comment + +let b:current_syntax = "lsl" + +" vim: ts=8 diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim --- a/runtime/syntax/modconf.vim +++ b/runtime/syntax/modconf.vim @@ -1,13 +1,13 @@ " Vim syntax file " Language: modules.conf(5) configuration file " Maintainer: Nikolai Weibull -" Latest Revision: 2006-04-19 +" Latest Revision: 2007-06-17 if exists("b:current_syntax") finish endif -setlocal iskeyword=@,48-57,- +setlocal iskeyword+=- let s:cpo_save = &cpo set cpo&vim diff --git a/runtime/syntax/mrxvtrc.vim b/runtime/syntax/mrxvtrc.vim --- a/runtime/syntax/mrxvtrc.vim +++ b/runtime/syntax/mrxvtrc.vim @@ -1,5 +1,5 @@ " Created : Wed 26 Apr 2006 01:20:53 AM CDT -" Modified : Mon 20 Nov 2006 12:14:16 AM PST +" Modified : Mon 27 Aug 2007 12:10:37 PM PDT " Author : Gautam Iyer " Description : Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up) @@ -31,19 +31,19 @@ syn keyword mrxvtrcOptions contained nex \ fullscreen reverseVideo loginShell \ jumpScroll scrollBar scrollbarRight \ scrollbarFloating scrollTtyOutputInhibit - \ scrollTtyKeypress scrollWithBuffer - \ transparentForce transparentScrollbar - \ transparentMenubar transparentTabbar - \ tabUsePixmap utmpInhibit visualBell mapAlert - \ meta8 mouseWheelScrollPage multibyte_cursor + \ scrollTtyKeypress transparentForce + \ transparentScrollbar transparentMenubar + \ transparentTabbar tabUsePixmap utmpInhibit + \ visualBell mapAlert meta8 + \ mouseWheelScrollPage multibyte_cursor \ tripleclickwords showMenu xft xftNomFont \ xftSlowOutput xftAntialias xftHinting \ xftAutoHint xftGlobalAdvance cmdAllTabs \ protectSecondary thai borderLess - \ overrideRedirect broadcast - \ smartResize smoothResize pointerBlank - \ cursorBlink noSysConfig disableMacros - \ linuxHomeEndKey sessionMgt + \ overrideRedirect broadcast smartResize + \ pointerBlank cursorBlink noSysConfig + \ disableMacros linuxHomeEndKey sessionMgt + \ boldColors smoothResize useFifo veryBright syn match mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError \ '\v' syn match mrxvtrcBColon contained skipwhite @@ -74,8 +74,7 @@ syn keyword mrxvtrcOptions contained nex \ externalBorder internalBorder lineSpace \ pointerBlankDelay cursorBlinkInterval \ shading backgroundFade bgRefreshInterval - \ fading focusDelay opacity opacityDegree - \ xftPSize + \ fading opacity opacityDegree xftPSize syn match mrxvtrcNColon contained skipwhite \ nextgroup=mrxvtrcNumVal,mrxvtrcError ':' syn match mrxvtrcNumVal contained skipwhite nextgroup=mrxvtrcError @@ -91,7 +90,6 @@ syn keyword mrxvtrcOptions contained nex \ greektoggle_key menu menubarPixmap \ scrollbarPixmap tabbarPixmap appIcon \ multichar_encoding initProfileList - \ winTitleFormat syn match mrxvtrcOptions contained nextgroup=mrxvtrcSColon,mrxvtrcError \ '\v' syn match mrxvtrcSColon contained skipwhite nextgroup=mrxvtrcStrVal ':' @@ -104,6 +102,7 @@ syn match mrxvtrcProfile contained nextg syn keyword mrxvtrcPSOpts contained nextgroup=mrxvtrcSColon,mrxvtrcError \ tabTitle command holdExitText holdExitTitle \ Pixmap workingDirectory titleFormat + \ winTitleFormat syn keyword mrxvtrcPCOpts contained nextgroup=mrxvtrcCColon,mrxvtrcError \ background foreground syn keyword mrxvtrcPNOpts contained nextgroup=mrxvtrcNColon,mrxvtrcError @@ -205,7 +204,7 @@ syn keyword mrxvtrcMacro contained skipw \ Dummy Copy Paste ToggleVeryBold \ ToggleTransparency ToggleBroadcast \ ToggleHold SetTitle ToggleMacros - \ ToggleFullscreen + \ ToggleFullscreen Raise " Macros with a string argument syn keyword mrxvtrcMacro contained skipwhite nextgroup=mrxvtrcStrVal @@ -214,7 +213,7 @@ syn keyword mrxvtrcMacro contained skipw " Macros with a numeric argument syn keyword mrxvtrcMacro contained skipwhite \ nextgroup=mrxvtrcNumVal,mrxvtrcError - \ Close GotoTab MoveTab ResizeFont + \ Close GotoTab MoveTab ResizeFont UseFifo " NewTab macro syn keyword mrxvtrcMacro contained skipwhite diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim --- a/runtime/syntax/mysql.vim +++ b/runtime/syntax/mysql.vim @@ -1,10 +1,10 @@ " Vim syntax file " Language: mysql " Maintainer: Kenneth J. Pronovici -" Last Change: $Date$ +" Last Change: $LastChangedDate: 2007-12-19 10:59:39 -0600 (Wed, 19 Dec 2007) $ " Filenames: *.mysql -" URL: ftp://cedar-solutions.com/software/mysql.vim -" Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23 +" URL: ftp://cedar-solutions.com/software/mysql.vim +" Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -18,56 +18,56 @@ endif syn case ignore " General keywords which don't fall into other categories -syn keyword mysqlKeyword action add after aggregate all alter as asc auto_increment avg avg_row_length -syn keyword mysqlKeyword both by -syn keyword mysqlKeyword cascade change character check checksum column columns comment constraint create cross -syn keyword mysqlKeyword current_date current_time current_timestamp -syn keyword mysqlKeyword data database databases day day_hour day_minute day_second -syn keyword mysqlKeyword default delayed delay_key_write delete desc describe distinct distinctrow drop -syn keyword mysqlKeyword enclosed escape escaped explain -syn keyword mysqlKeyword fields file first flush for foreign from full function -syn keyword mysqlKeyword global grant grants group -syn keyword mysqlKeyword having heap high_priority hosts hour hour_minute hour_second -syn keyword mysqlKeyword identified ignore index infile inner insert insert_id into isam -syn keyword mysqlKeyword join -syn keyword mysqlKeyword key keys kill last_insert_id leading left limit lines load local lock logs long -syn keyword mysqlKeyword low_priority -syn keyword mysqlKeyword match max_rows middleint min_rows minute minute_second modify month myisam -syn keyword mysqlKeyword natural no -syn keyword mysqlKeyword on optimize option optionally order outer outfile -syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist -syn keyword mysqlKeyword read references reload rename replace restrict returns revoke row rows -syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off -syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting -syn keyword mysqlKeyword status straight_join string -syn keyword mysqlKeyword table tables temporary terminated to trailing type -syn keyword mysqlKeyword unique unlock unsigned update usage use using -syn keyword mysqlKeyword values varbinary variables varying -syn keyword mysqlKeyword where with write -syn keyword mysqlKeyword year_month -syn keyword mysqlKeyword zerofill +syn keyword mysqlKeyword action add after aggregate all alter as asc auto_increment avg avg_row_length +syn keyword mysqlKeyword both by +syn keyword mysqlKeyword cascade change character check checksum column columns comment constraint create cross +syn keyword mysqlKeyword current_date current_time current_timestamp +syn keyword mysqlKeyword data database databases day day_hour day_minute day_second +syn keyword mysqlKeyword default delayed delay_key_write delete desc describe distinct distinctrow drop +syn keyword mysqlKeyword enclosed escape escaped explain +syn keyword mysqlKeyword fields file first flush for foreign from full function +syn keyword mysqlKeyword global grant grants group +syn keyword mysqlKeyword having heap high_priority hosts hour hour_minute hour_second +syn keyword mysqlKeyword identified ignore index infile inner insert insert_id into isam +syn keyword mysqlKeyword join +syn keyword mysqlKeyword key keys kill last_insert_id leading left limit lines load local lock logs long +syn keyword mysqlKeyword low_priority +syn keyword mysqlKeyword match max_rows middleint min_rows minute minute_second modify month myisam +syn keyword mysqlKeyword natural no +syn keyword mysqlKeyword on optimize option optionally order outer outfile +syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist +syn keyword mysqlKeyword read references reload rename replace restrict returns revoke row rows +syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off +syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting +syn keyword mysqlKeyword status straight_join string +syn keyword mysqlKeyword table tables temporary terminated to trailing type +syn keyword mysqlKeyword unique unlock unsigned update usage use using +syn keyword mysqlKeyword values varbinary variables varying +syn keyword mysqlKeyword where with write +syn keyword mysqlKeyword year_month +syn keyword mysqlKeyword zerofill " Special values -syn keyword mysqlSpecial false null true +syn keyword mysqlSpecial false null true " Strings (single- and double-quote) -syn region mysqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ -syn region mysqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ +syn region mysqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region mysqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ " Numbers and hexidecimal values -syn match mysqlNumber "-\=\<[0-9]*\>" -syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>" -syn match mysqlNumber "-\=\<[0-9]*e[+-]\=[0-9]*\>" -syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>" -syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>" +syn match mysqlNumber "-\=\<[0-9]*\>" +syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>" +syn match mysqlNumber "-\=\<[0-9]*e[+-]\=[0-9]*\>" +syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>" +syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>" " User variables -syn match mysqlVariable "@\a*[A-Za-z0-9]*[._]*[A-Za-z0-9]*" +syn match mysqlVariable "@\a*[A-Za-z0-9]*[._]*[A-Za-z0-9]*" " Comments (c-style, mysql-style and modified sql-style) -syn region mysqlComment start="/\*" end="\*/" -syn match mysqlComment "#.*" -syn match mysqlComment "-- .*" +syn region mysqlComment start="/\*" end="\*/" +syn match mysqlComment "#.*" +syn match mysqlComment "--\_s.*" syn sync ccomment mysqlComment " Column types @@ -84,189 +84,189 @@ syn sync ccomment mysqlComment " The second problem is that some of these keywords are included in " function names. For instance, year() is part of the name of the " dayofyear() function, and the dec keyword (no parenthesis) is part of -" the name of the decode() function. +" the name of the decode() function. -syn keyword mysqlType tinyint smallint mediumint int integer bigint -syn keyword mysqlType date datetime time bit bool -syn keyword mysqlType tinytext mediumtext longtext text -syn keyword mysqlType tinyblob mediumblob longblob blob -syn region mysqlType start="float\W" end="."me=s-1 -syn region mysqlType start="float$" end="."me=s-1 -syn region mysqlType start="float(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="double\W" end="."me=s-1 -syn region mysqlType start="double$" end="."me=s-1 -syn region mysqlType start="double(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="double precision\W" end="."me=s-1 -syn region mysqlType start="double precision$" end="."me=s-1 -syn region mysqlType start="double precision(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="real\W" end="."me=s-1 -syn region mysqlType start="real$" end="."me=s-1 -syn region mysqlType start="real(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="numeric(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="dec\W" end="."me=s-1 -syn region mysqlType start="dec$" end="."me=s-1 -syn region mysqlType start="dec(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="decimal\W" end="."me=s-1 -syn region mysqlType start="decimal$" end="."me=s-1 -syn region mysqlType start="decimal(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="\Wtimestamp\W" end="."me=s-1 -syn region mysqlType start="\Wtimestamp$" end="."me=s-1 -syn region mysqlType start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="^timestamp\W" end="."me=s-1 -syn region mysqlType start="^timestamp$" end="."me=s-1 -syn region mysqlType start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="^year(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="char(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="varchar(" end=")" contains=mysqlNumber,mysqlVariable -syn region mysqlType start="enum(" end=")" contains=mysqlString,mysqlVariable -syn region mysqlType start="\Wset(" end=")" contains=mysqlString,mysqlVariable -syn region mysqlType start="^set(" end=")" contains=mysqlString,mysqlVariable +syn keyword mysqlType tinyint smallint mediumint int integer bigint +syn keyword mysqlType date datetime time bit bool +syn keyword mysqlType tinytext mediumtext longtext text +syn keyword mysqlType tinyblob mediumblob longblob blob +syn region mysqlType start="float\W" end="."me=s-1 +syn region mysqlType start="float$" end="."me=s-1 +syn region mysqlType start="float(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="double\W" end="."me=s-1 +syn region mysqlType start="double$" end="."me=s-1 +syn region mysqlType start="double(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="double precision\W" end="."me=s-1 +syn region mysqlType start="double precision$" end="."me=s-1 +syn region mysqlType start="double precision(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="real\W" end="."me=s-1 +syn region mysqlType start="real$" end="."me=s-1 +syn region mysqlType start="real(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="numeric(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="dec\W" end="."me=s-1 +syn region mysqlType start="dec$" end="."me=s-1 +syn region mysqlType start="dec(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="decimal\W" end="."me=s-1 +syn region mysqlType start="decimal$" end="."me=s-1 +syn region mysqlType start="decimal(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="\Wtimestamp\W" end="."me=s-1 +syn region mysqlType start="\Wtimestamp$" end="."me=s-1 +syn region mysqlType start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="^timestamp\W" end="."me=s-1 +syn region mysqlType start="^timestamp$" end="."me=s-1 +syn region mysqlType start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="^year(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="char(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="varchar(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="enum(" end=")" contains=mysqlString,mysqlVariable +syn region mysqlType start="\Wset(" end=")" contains=mysqlString,mysqlVariable +syn region mysqlType start="^set(" end=")" contains=mysqlString,mysqlVariable " Logical, string and numeric operators -syn keyword mysqlOperator between not and or is in like regexp rlike binary exists -syn region mysqlOperator start="isnull(" end=")" contains=ALL -syn region mysqlOperator start="coalesce(" end=")" contains=ALL -syn region mysqlOperator start="interval(" end=")" contains=ALL +syn keyword mysqlOperator between not and or is in like regexp rlike binary exists +syn region mysqlOperator start="isnull(" end=")" contains=ALL +syn region mysqlOperator start="coalesce(" end=")" contains=ALL +syn region mysqlOperator start="interval(" end=")" contains=ALL " Control flow functions -syn keyword mysqlFlow case when then else end -syn region mysqlFlow start="ifnull(" end=")" contains=ALL -syn region mysqlFlow start="nullif(" end=")" contains=ALL -syn region mysqlFlow start="if(" end=")" contains=ALL +syn keyword mysqlFlow case when then else end +syn region mysqlFlow start="ifnull(" end=")" contains=ALL +syn region mysqlFlow start="nullif(" end=")" contains=ALL +syn region mysqlFlow start="if(" end=")" contains=ALL " General Functions " " I'm leery of just defining keywords for functions, since according to the MySQL manual: " -" Function names do not clash with table or column names. For example, ABS is a -" valid column name. The only restriction is that for a function call, no spaces -" are allowed between the function name and the `(' that follows it. +" Function names do not clash with table or column names. For example, ABS is a +" valid column name. The only restriction is that for a function call, no spaces +" are allowed between the function name and the `(' that follows it. " -" This means that if I want to highlight function names properly, I have to use a -" region to define them, not just a keyword. This will probably cause the syntax file +" This means that if I want to highlight function names properly, I have to use a +" region to define them, not just a keyword. This will probably cause the syntax file " to load more slowly, but at least it will be 'correct'. -syn region mysqlFunction start="abs(" end=")" contains=ALL -syn region mysqlFunction start="acos(" end=")" contains=ALL -syn region mysqlFunction start="adddate(" end=")" contains=ALL -syn region mysqlFunction start="ascii(" end=")" contains=ALL -syn region mysqlFunction start="asin(" end=")" contains=ALL -syn region mysqlFunction start="atan(" end=")" contains=ALL -syn region mysqlFunction start="atan2(" end=")" contains=ALL -syn region mysqlFunction start="benchmark(" end=")" contains=ALL -syn region mysqlFunction start="bin(" end=")" contains=ALL -syn region mysqlFunction start="bit_and(" end=")" contains=ALL -syn region mysqlFunction start="bit_count(" end=")" contains=ALL -syn region mysqlFunction start="bit_or(" end=")" contains=ALL -syn region mysqlFunction start="ceiling(" end=")" contains=ALL -syn region mysqlFunction start="character_length(" end=")" contains=ALL -syn region mysqlFunction start="char_length(" end=")" contains=ALL -syn region mysqlFunction start="concat(" end=")" contains=ALL -syn region mysqlFunction start="concat_ws(" end=")" contains=ALL -syn region mysqlFunction start="connection_id(" end=")" contains=ALL -syn region mysqlFunction start="conv(" end=")" contains=ALL -syn region mysqlFunction start="cos(" end=")" contains=ALL -syn region mysqlFunction start="cot(" end=")" contains=ALL -syn region mysqlFunction start="count(" end=")" contains=ALL -syn region mysqlFunction start="curdate(" end=")" contains=ALL -syn region mysqlFunction start="curtime(" end=")" contains=ALL -syn region mysqlFunction start="date_add(" end=")" contains=ALL -syn region mysqlFunction start="date_format(" end=")" contains=ALL -syn region mysqlFunction start="date_sub(" end=")" contains=ALL -syn region mysqlFunction start="dayname(" end=")" contains=ALL -syn region mysqlFunction start="dayofmonth(" end=")" contains=ALL -syn region mysqlFunction start="dayofweek(" end=")" contains=ALL -syn region mysqlFunction start="dayofyear(" end=")" contains=ALL -syn region mysqlFunction start="decode(" end=")" contains=ALL -syn region mysqlFunction start="degrees(" end=")" contains=ALL -syn region mysqlFunction start="elt(" end=")" contains=ALL -syn region mysqlFunction start="encode(" end=")" contains=ALL -syn region mysqlFunction start="encrypt(" end=")" contains=ALL -syn region mysqlFunction start="exp(" end=")" contains=ALL -syn region mysqlFunction start="export_set(" end=")" contains=ALL -syn region mysqlFunction start="extract(" end=")" contains=ALL -syn region mysqlFunction start="field(" end=")" contains=ALL -syn region mysqlFunction start="find_in_set(" end=")" contains=ALL -syn region mysqlFunction start="floor(" end=")" contains=ALL -syn region mysqlFunction start="format(" end=")" contains=ALL -syn region mysqlFunction start="from_days(" end=")" contains=ALL -syn region mysqlFunction start="from_unixtime(" end=")" contains=ALL -syn region mysqlFunction start="get_lock(" end=")" contains=ALL -syn region mysqlFunction start="greatest(" end=")" contains=ALL -syn region mysqlFunction start="group_unique_users(" end=")" contains=ALL -syn region mysqlFunction start="hex(" end=")" contains=ALL -syn region mysqlFunction start="inet_aton(" end=")" contains=ALL -syn region mysqlFunction start="inet_ntoa(" end=")" contains=ALL -syn region mysqlFunction start="instr(" end=")" contains=ALL -syn region mysqlFunction start="lcase(" end=")" contains=ALL -syn region mysqlFunction start="least(" end=")" contains=ALL -syn region mysqlFunction start="length(" end=")" contains=ALL -syn region mysqlFunction start="load_file(" end=")" contains=ALL -syn region mysqlFunction start="locate(" end=")" contains=ALL -syn region mysqlFunction start="log(" end=")" contains=ALL -syn region mysqlFunction start="log10(" end=")" contains=ALL -syn region mysqlFunction start="lower(" end=")" contains=ALL -syn region mysqlFunction start="lpad(" end=")" contains=ALL -syn region mysqlFunction start="ltrim(" end=")" contains=ALL -syn region mysqlFunction start="make_set(" end=")" contains=ALL -syn region mysqlFunction start="master_pos_wait(" end=")" contains=ALL -syn region mysqlFunction start="max(" end=")" contains=ALL -syn region mysqlFunction start="md5(" end=")" contains=ALL -syn region mysqlFunction start="mid(" end=")" contains=ALL -syn region mysqlFunction start="min(" end=")" contains=ALL -syn region mysqlFunction start="mod(" end=")" contains=ALL -syn region mysqlFunction start="monthname(" end=")" contains=ALL -syn region mysqlFunction start="now(" end=")" contains=ALL -syn region mysqlFunction start="oct(" end=")" contains=ALL -syn region mysqlFunction start="octet_length(" end=")" contains=ALL -syn region mysqlFunction start="ord(" end=")" contains=ALL -syn region mysqlFunction start="period_add(" end=")" contains=ALL -syn region mysqlFunction start="period_diff(" end=")" contains=ALL -syn region mysqlFunction start="pi(" end=")" contains=ALL -syn region mysqlFunction start="position(" end=")" contains=ALL -syn region mysqlFunction start="pow(" end=")" contains=ALL -syn region mysqlFunction start="power(" end=")" contains=ALL -syn region mysqlFunction start="quarter(" end=")" contains=ALL -syn region mysqlFunction start="radians(" end=")" contains=ALL -syn region mysqlFunction start="rand(" end=")" contains=ALL -syn region mysqlFunction start="release_lock(" end=")" contains=ALL -syn region mysqlFunction start="repeat(" end=")" contains=ALL -syn region mysqlFunction start="reverse(" end=")" contains=ALL -syn region mysqlFunction start="round(" end=")" contains=ALL -syn region mysqlFunction start="rpad(" end=")" contains=ALL -syn region mysqlFunction start="rtrim(" end=")" contains=ALL -syn region mysqlFunction start="sec_to_time(" end=")" contains=ALL -syn region mysqlFunction start="session_user(" end=")" contains=ALL -syn region mysqlFunction start="sign(" end=")" contains=ALL -syn region mysqlFunction start="sin(" end=")" contains=ALL -syn region mysqlFunction start="soundex(" end=")" contains=ALL -syn region mysqlFunction start="space(" end=")" contains=ALL -syn region mysqlFunction start="sqrt(" end=")" contains=ALL -syn region mysqlFunction start="std(" end=")" contains=ALL -syn region mysqlFunction start="stddev(" end=")" contains=ALL -syn region mysqlFunction start="strcmp(" end=")" contains=ALL -syn region mysqlFunction start="subdate(" end=")" contains=ALL -syn region mysqlFunction start="substring(" end=")" contains=ALL -syn region mysqlFunction start="substring_index(" end=")" contains=ALL -syn region mysqlFunction start="subtime(" end=")" contains=ALL -syn region mysqlFunction start="sum(" end=")" contains=ALL -syn region mysqlFunction start="sysdate(" end=")" contains=ALL -syn region mysqlFunction start="system_user(" end=")" contains=ALL -syn region mysqlFunction start="tan(" end=")" contains=ALL -syn region mysqlFunction start="time_format(" end=")" contains=ALL -syn region mysqlFunction start="time_to_sec(" end=")" contains=ALL -syn region mysqlFunction start="to_days(" end=")" contains=ALL -syn region mysqlFunction start="trim(" end=")" contains=ALL -syn region mysqlFunction start="ucase(" end=")" contains=ALL -syn region mysqlFunction start="unique_users(" end=")" contains=ALL -syn region mysqlFunction start="unix_timestamp(" end=")" contains=ALL -syn region mysqlFunction start="upper(" end=")" contains=ALL -syn region mysqlFunction start="user(" end=")" contains=ALL -syn region mysqlFunction start="version(" end=")" contains=ALL -syn region mysqlFunction start="week(" end=")" contains=ALL -syn region mysqlFunction start="weekday(" end=")" contains=ALL -syn region mysqlFunction start="yearweek(" end=")" contains=ALL +syn region mysqlFunction start="abs(" end=")" contains=ALL +syn region mysqlFunction start="acos(" end=")" contains=ALL +syn region mysqlFunction start="adddate(" end=")" contains=ALL +syn region mysqlFunction start="ascii(" end=")" contains=ALL +syn region mysqlFunction start="asin(" end=")" contains=ALL +syn region mysqlFunction start="atan(" end=")" contains=ALL +syn region mysqlFunction start="atan2(" end=")" contains=ALL +syn region mysqlFunction start="benchmark(" end=")" contains=ALL +syn region mysqlFunction start="bin(" end=")" contains=ALL +syn region mysqlFunction start="bit_and(" end=")" contains=ALL +syn region mysqlFunction start="bit_count(" end=")" contains=ALL +syn region mysqlFunction start="bit_or(" end=")" contains=ALL +syn region mysqlFunction start="ceiling(" end=")" contains=ALL +syn region mysqlFunction start="character_length(" end=")" contains=ALL +syn region mysqlFunction start="char_length(" end=")" contains=ALL +syn region mysqlFunction start="concat(" end=")" contains=ALL +syn region mysqlFunction start="concat_ws(" end=")" contains=ALL +syn region mysqlFunction start="connection_id(" end=")" contains=ALL +syn region mysqlFunction start="conv(" end=")" contains=ALL +syn region mysqlFunction start="cos(" end=")" contains=ALL +syn region mysqlFunction start="cot(" end=")" contains=ALL +syn region mysqlFunction start="count(" end=")" contains=ALL +syn region mysqlFunction start="curdate(" end=")" contains=ALL +syn region mysqlFunction start="curtime(" end=")" contains=ALL +syn region mysqlFunction start="date_add(" end=")" contains=ALL +syn region mysqlFunction start="date_format(" end=")" contains=ALL +syn region mysqlFunction start="date_sub(" end=")" contains=ALL +syn region mysqlFunction start="dayname(" end=")" contains=ALL +syn region mysqlFunction start="dayofmonth(" end=")" contains=ALL +syn region mysqlFunction start="dayofweek(" end=")" contains=ALL +syn region mysqlFunction start="dayofyear(" end=")" contains=ALL +syn region mysqlFunction start="decode(" end=")" contains=ALL +syn region mysqlFunction start="degrees(" end=")" contains=ALL +syn region mysqlFunction start="elt(" end=")" contains=ALL +syn region mysqlFunction start="encode(" end=")" contains=ALL +syn region mysqlFunction start="encrypt(" end=")" contains=ALL +syn region mysqlFunction start="exp(" end=")" contains=ALL +syn region mysqlFunction start="export_set(" end=")" contains=ALL +syn region mysqlFunction start="extract(" end=")" contains=ALL +syn region mysqlFunction start="field(" end=")" contains=ALL +syn region mysqlFunction start="find_in_set(" end=")" contains=ALL +syn region mysqlFunction start="floor(" end=")" contains=ALL +syn region mysqlFunction start="format(" end=")" contains=ALL +syn region mysqlFunction start="from_days(" end=")" contains=ALL +syn region mysqlFunction start="from_unixtime(" end=")" contains=ALL +syn region mysqlFunction start="get_lock(" end=")" contains=ALL +syn region mysqlFunction start="greatest(" end=")" contains=ALL +syn region mysqlFunction start="group_unique_users(" end=")" contains=ALL +syn region mysqlFunction start="hex(" end=")" contains=ALL +syn region mysqlFunction start="inet_aton(" end=")" contains=ALL +syn region mysqlFunction start="inet_ntoa(" end=")" contains=ALL +syn region mysqlFunction start="instr(" end=")" contains=ALL +syn region mysqlFunction start="lcase(" end=")" contains=ALL +syn region mysqlFunction start="least(" end=")" contains=ALL +syn region mysqlFunction start="length(" end=")" contains=ALL +syn region mysqlFunction start="load_file(" end=")" contains=ALL +syn region mysqlFunction start="locate(" end=")" contains=ALL +syn region mysqlFunction start="log(" end=")" contains=ALL +syn region mysqlFunction start="log10(" end=")" contains=ALL +syn region mysqlFunction start="lower(" end=")" contains=ALL +syn region mysqlFunction start="lpad(" end=")" contains=ALL +syn region mysqlFunction start="ltrim(" end=")" contains=ALL +syn region mysqlFunction start="make_set(" end=")" contains=ALL +syn region mysqlFunction start="master_pos_wait(" end=")" contains=ALL +syn region mysqlFunction start="max(" end=")" contains=ALL +syn region mysqlFunction start="md5(" end=")" contains=ALL +syn region mysqlFunction start="mid(" end=")" contains=ALL +syn region mysqlFunction start="min(" end=")" contains=ALL +syn region mysqlFunction start="mod(" end=")" contains=ALL +syn region mysqlFunction start="monthname(" end=")" contains=ALL +syn region mysqlFunction start="now(" end=")" contains=ALL +syn region mysqlFunction start="oct(" end=")" contains=ALL +syn region mysqlFunction start="octet_length(" end=")" contains=ALL +syn region mysqlFunction start="ord(" end=")" contains=ALL +syn region mysqlFunction start="period_add(" end=")" contains=ALL +syn region mysqlFunction start="period_diff(" end=")" contains=ALL +syn region mysqlFunction start="pi(" end=")" contains=ALL +syn region mysqlFunction start="position(" end=")" contains=ALL +syn region mysqlFunction start="pow(" end=")" contains=ALL +syn region mysqlFunction start="power(" end=")" contains=ALL +syn region mysqlFunction start="quarter(" end=")" contains=ALL +syn region mysqlFunction start="radians(" end=")" contains=ALL +syn region mysqlFunction start="rand(" end=")" contains=ALL +syn region mysqlFunction start="release_lock(" end=")" contains=ALL +syn region mysqlFunction start="repeat(" end=")" contains=ALL +syn region mysqlFunction start="reverse(" end=")" contains=ALL +syn region mysqlFunction start="round(" end=")" contains=ALL +syn region mysqlFunction start="rpad(" end=")" contains=ALL +syn region mysqlFunction start="rtrim(" end=")" contains=ALL +syn region mysqlFunction start="sec_to_time(" end=")" contains=ALL +syn region mysqlFunction start="session_user(" end=")" contains=ALL +syn region mysqlFunction start="sign(" end=")" contains=ALL +syn region mysqlFunction start="sin(" end=")" contains=ALL +syn region mysqlFunction start="soundex(" end=")" contains=ALL +syn region mysqlFunction start="space(" end=")" contains=ALL +syn region mysqlFunction start="sqrt(" end=")" contains=ALL +syn region mysqlFunction start="std(" end=")" contains=ALL +syn region mysqlFunction start="stddev(" end=")" contains=ALL +syn region mysqlFunction start="strcmp(" end=")" contains=ALL +syn region mysqlFunction start="subdate(" end=")" contains=ALL +syn region mysqlFunction start="substring(" end=")" contains=ALL +syn region mysqlFunction start="substring_index(" end=")" contains=ALL +syn region mysqlFunction start="subtime(" end=")" contains=ALL +syn region mysqlFunction start="sum(" end=")" contains=ALL +syn region mysqlFunction start="sysdate(" end=")" contains=ALL +syn region mysqlFunction start="system_user(" end=")" contains=ALL +syn region mysqlFunction start="tan(" end=")" contains=ALL +syn region mysqlFunction start="time_format(" end=")" contains=ALL +syn region mysqlFunction start="time_to_sec(" end=")" contains=ALL +syn region mysqlFunction start="to_days(" end=")" contains=ALL +syn region mysqlFunction start="trim(" end=")" contains=ALL +syn region mysqlFunction start="ucase(" end=")" contains=ALL +syn region mysqlFunction start="unique_users(" end=")" contains=ALL +syn region mysqlFunction start="unix_timestamp(" end=")" contains=ALL +syn region mysqlFunction start="upper(" end=")" contains=ALL +syn region mysqlFunction start="user(" end=")" contains=ALL +syn region mysqlFunction start="version(" end=")" contains=ALL +syn region mysqlFunction start="week(" end=")" contains=ALL +syn region mysqlFunction start="weekday(" end=")" contains=ALL +syn region mysqlFunction start="yearweek(" end=")" contains=ALL " Define the default highlighting. " For version 5.7 and earlier: only when not done already @@ -279,16 +279,16 @@ if version >= 508 || !exists("did_mysql_ command -nargs=+ HiLink hi def link endif - HiLink mysqlKeyword Statement - HiLink mysqlSpecial Special - HiLink mysqlString String - HiLink mysqlNumber Number - HiLink mysqlVariable Identifier - HiLink mysqlComment Comment - HiLink mysqlType Type - HiLink mysqlOperator Statement - HiLink mysqlFlow Statement - HiLink mysqlFunction Function + HiLink mysqlKeyword Statement + HiLink mysqlSpecial Special + HiLink mysqlString String + HiLink mysqlNumber Number + HiLink mysqlVariable Identifier + HiLink mysqlComment Comment + HiLink mysqlType Type + HiLink mysqlOperator Statement + HiLink mysqlFlow Statement + HiLink mysqlFunction Function delcommand HiLink endif diff --git a/runtime/syntax/phtml.vim b/runtime/syntax/phtml.vim --- a/runtime/syntax/phtml.vim +++ b/runtime/syntax/phtml.vim @@ -1,244 +1,6 @@ " Vim syntax file -" Language: phtml PHP 2.0 -" Maintainer: Lutz Eymers -" URL: http://www.isp.de/data/phtml.vim -" Email: Subject: send syntax_vim.tgz -" Last change: 2003 May 11 -" -" Options phtml_sql_query = 1 for SQL syntax highligthing inside strings -" phtml_minlines = x to sync at least x lines backwards - -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 - syntax clear -elseif exists("b:current_syntax") - finish -endif - -if !exists("main_syntax") - let main_syntax = 'phtml' -endif - -if version < 600 - so :p:h/html.vim -else - runtime! syntax/html.vim - unlet b:current_syntax -endif - -syn cluster htmlPreproc add=phtmlRegionInsideHtmlTags - -if exists( "phtml_sql_query") - if phtml_sql_query == 1 - syn include @phtmlSql :p:h/sql.vim - unlet b:current_syntax - endif -endif -syn cluster phtmlSql remove=sqlString,sqlComment - -syn case match - -" Env Variables -syn keyword phtmlEnvVar SERVER_SOFTWARE SERVER_NAME SERVER_URL GATEWAY_INTERFACE contained -syn keyword phtmlEnvVar SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO contained -syn keyword phtmlEnvVar PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST contained -syn keyword phtmlEnvVar REMOTE_ADDR AUTH_TYPE REMOTE_USER CONTEN_TYPE contained -syn keyword phtmlEnvVar CONTENT_LENGTH HTTPS HTTPS_KEYSIZE HTTPS_SECRETKEYSIZE contained -syn keyword phtmlEnvVar HTTP_ACCECT HTTP_USER_AGENT HTTP_IF_MODIFIED_SINCE contained -syn keyword phtmlEnvVar HTTP_FROM HTTP_REFERER contained -syn keyword phtmlEnvVar PHP_SELF contained - -syn case ignore - -" Internal Variables -syn keyword phtmlIntVar phperrmsg php_self contained - -" Comment -syn region phtmlComment start="/\*" end="\*/" contained contains=phtmlTodo +" PHTML used to be the filetype for PHP 2.0. Now everything is PHP. -" Function names -syn keyword phtmlFunctions Abs Ada_Close Ada_Connect Ada_Exec Ada_FetchRow contained -syn keyword phtmlFunctions Ada_FieldName Ada_FieldNum Ada_FieldType contained -syn keyword phtmlFunctions Ada_FreeResult Ada_NumFields Ada_NumRows Ada_Result contained -syn keyword phtmlFunctions Ada_ResultAll AddSlashes ASort BinDec Ceil ChDir contained -syn keyword phtmlFunctions AdaGrp ChMod ChOwn Chop Chr ClearStack ClearStatCache contained -syn keyword phtmlFunctions closeDir CloseLog Cos Count Crypt Date dbList contained -syn keyword phtmlFunctions dbmClose dbmDelete dbmExists dbmFetch dbmFirstKey contained -syn keyword phtmlFunctions dbmInsert dbmNextKey dbmOpen dbmReplace DecBin DecHex contained -syn keyword phtmlFunctions DecOct doubleval Echo End ereg eregi ereg_replace contained -syn keyword phtmlFunctions eregi_replace EscapeShellCmd Eval Exec Exit Exp contained -syn keyword phtmlFunctions fclose feof fgets fgetss File fileAtime fileCtime contained -syn keyword phtmlFunctions fileGroup fileInode fileMtime fileOwner filePerms contained -syn keyword phtmlFunctions fileSize fileType Floor Flush fopen fputs FPassThru contained -syn keyword phtmlFunctions fseek fsockopen ftell getAccDir GetEnv getHostByName contained -syn keyword phtmlFunctions getHostByAddr GetImageSize getLastAcess contained -syn keyword phtmlFunctions getLastbrowser getLastEmail getLastHost getLastMod contained -syn keyword phtmlFunctions getLastref getLogDir getMyInode getMyPid getMyUid contained -syn keyword phtmlFunctions getRandMax getStartLogging getToday getTotal GetType contained -syn keyword phtmlFunctions gmDate Header HexDec HtmlSpecialChars ImageArc contained -syn keyword phtmlFunctions ImageChar ImageCharUp IamgeColorAllocate contained -syn keyword phtmlFunctions ImageColorTransparent ImageCopyResized ImageCreate contained -syn keyword phtmlFunctions ImageCreateFromGif ImageDestroy ImageFill contained -syn keyword phtmlFunctions ImageFilledPolygon ImageFilledRectangle contained -syn keyword phtmlFunctions ImageFillToBorder ImageGif ImageInterlace ImageLine contained -syn keyword phtmlFunctions ImagePolygon ImageRectangle ImageSetPixel contained -syn keyword phtmlFunctions ImageString ImageStringUp ImageSX ImageSY Include contained -syn keyword phtmlFunctions InitSyslog intval IsSet Key Link LinkInfo Log Log10 contained -syn keyword phtmlFunctions LosAs Mail Max Md5 mi_Close mi_Connect mi_DBname contained -syn keyword phtmlFunctions mi_Exec mi_FieldName mi_FieldNum mi_NumFields contained -syn keyword phtmlFunctions mi_NumRows mi_Result Microtime Min MkDir MkTime msql contained -syn keyword phtmlFunctions msql_connect msql_CreateDB msql_dbName msql_DropDB contained -syn keyword phtmlFunctions msqlFieldFlags msql_FieldLen msql_FieldName contained -syn keyword phtmlFunctions msql_FieldType msql_FreeResult msql_ListDBs contained -syn keyword phtmlFunctions msql_Listfields msql_ListTables msql_NumFields contained -syn keyword phtmlFunctions msql_NumRows msql_RegCase msql_Result msql_TableName contained -syn keyword phtmlFunctions mysql mysql_affected_rows mysql_close mysql_connect contained -syn keyword phtmlFunctions mysql_CreateDB mysql_dbName mysqlDropDB contained -syn keyword phtmlFunctions mysql_FieldFlags mysql_FieldLen mysql_FieldName contained -syn keyword phtmlFunctions mysql_FieldType mysql_FreeResult mysql_insert_id contained -syn keyword phtmlFunctions mysql_listDBs mysql_Listfields mysql_ListTables contained -syn keyword phtmlFunctions mysql_NumFields mysql_NumRows mysql_Result contained -syn keyword phtmlFunctions mysql_TableName Next OctDec openDir OpenLog contained -syn keyword phtmlFunctions Ora_Bind Ora_Close Ora_Commit Ora_CommitOff contained -syn keyword phtmlFunctions Ora_CommitOn Ora_Exec Ora_Fetch Ora_GetColumn contained -syn keyword phtmlFunctions Ora_Logoff Ora_Logon Ora_Parse Ora_Rollback Ord contained -syn keyword phtmlFunctions Parse_str PassThru pclose pg_Close pg_Connect contained -syn keyword phtmlFunctions pg_DBname pg_ErrorMessage pg_Exec pg_FieldName contained -syn keyword phtmlFunctions pg_FieldPrtLen pg_FieldNum pg_FieldSize contained -syn keyword phtmlFunctions pg_FieldType pg_FreeResult pg_GetLastOid pg_Host contained -syn keyword phtmlFunctions pg_NumFields pg_NumRows pg_Options pg_Port contained -syn keyword phtmlFunctions pg_Result pg_tty phpInfo phpVersion popen pos pow contained -syn keyword phtmlFunctions Prev PutEnv QuoteMeta Rand readDir ReadFile ReadLink contained -syn keyword phtmlFunctions reg_Match reg_replace reg_Search Rename Reset return contained -syn keyword phtmlFunctions rewind rewindDir RmDir rSort SetCookie SetErrorReporting contained -syn keyword phtmlFunctions SetLogging SetShowInfo SetType shl shr Sin Sleep contained -syn keyword phtmlFunctions Solid_Close Solid_Connect Solid_Exec Solid_FetchRow contained -syn keyword phtmlFunctions Solid_FieldName Solid_FieldNum Solid_FreeResult contained -syn keyword phtmlFunctions Solid_NumFields Solid_NumRows Solid_Result Sort contained -syn keyword phtmlFunctions Spundtex Sprintf Sqrt Srand strchr strtr contained -syn keyword phtmlFunctions StripSlashes strlen strchr strstr strtok strtolower contained -syn keyword phtmlFunctions strtoupper strval substr sybSQL_CheckConnect contained -syn keyword phtmlFunctions sybSQL_DBUSE sybSQL_Connect sybSQL_Exit contained -syn keyword phtmlFunctions sybSQL_Fieldname sybSQL_GetField sybSQL_IsRow contained -syn keyword phtmlFunctions sybSQL_NextRow sybSQL_NumFields sybSQL_NumRows contained -syn keyword phtmlFunctions sybSQL_Query sybSQL_Result sybSQL_Result sybSQL_Seek contained -syn keyword phtmlFunctions Symlink syslog System Tan TempNam Time Umask UniqId contained -syn keyword phtmlFunctions Unlink Unset UrlDecode UrlEncode USleep Virtual contained -syn keyword phtmlFunctions SecureVar contained - -" Conditional -syn keyword phtmlConditional if else elseif endif switch endswitch contained - -" Repeat -syn keyword phtmlRepeat while endwhile contained - -" Repeat -syn keyword phtmlLabel case default contained - -" Statement -syn keyword phtmlStatement break return continue exit contained - -" Operator -syn match phtmlOperator "[-=+%^&|*!]" contained -syn match phtmlOperator "[-+*/%^&|]=" contained -syn match phtmlOperator "/[^*]"me=e-1 contained -syn match phtmlOperator "\$" contained -syn match phtmlRelation "&&" contained -syn match phtmlRelation "||" contained -syn match phtmlRelation "[!=<>]=" contained -syn match phtmlRelation "[<>]" contained - -" Identifier -syn match phtmlIdentifier "$\h\w*" contained contains=phtmlEnvVar,phtmlIntVar,phtmlOperator - - -" Include -syn keyword phtmlInclude include contained - -" Definesag -syn keyword phtmlDefine Function contained - -" String -syn region phtmlString keepend matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=phtmlIdentifier,phtmlSpecialChar,@phtmlSql contained - -" Number -syn match phtmlNumber "-\=\<\d\+\>" contained - -" Float -syn match phtmlFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained - -" SpecialChar -syn match phtmlSpecialChar "\\[abcfnrtyv\\]" contained -syn match phtmlSpecialChar "\\\d\{3}" contained contains=phtmlOctalError -syn match phtmlSpecialChar "\\x[0-9a-fA-F]\{2}" contained - -syn match phtmlOctalError "[89]" contained - - -syn match phtmlParentError "[)}\]]" contained - -" Todo -syn keyword phtmlTodo TODO Todo todo contained - -" Parents -syn cluster phtmlInside contains=phtmlComment,phtmlFunctions,phtmlIdentifier,phtmlConditional,phtmlRepeat,phtmlLabel,phtmlStatement,phtmlOperator,phtmlRelation,phtmlString,phtmlNumber,phtmlFloat,phtmlSpecialChar,phtmlParent,phtmlParentError,phtmlInclude - -syn cluster phtmlTop contains=@phtmlInside,phtmlInclude,phtmlDefine,phtmlParentError,phtmlTodo -syn region phtmlParent matchgroup=Delimiter start="(" end=")" contained contains=@phtmlInside -syn region phtmlParent matchgroup=Delimiter start="{" end="}" contained contains=@phtmlInside -syn region phtmlParent matchgroup=Delimiter start="\[" end="\]" contained contains=@phtmlInside - -syn region phtmlRegion keepend matchgroup=Delimiter start=".*)\|".\{-}>.\{-}"\|/\*.\{-}>.\{-}\*/+ end=">" contains=@phtmlTop -syn region phtmlRegionInsideHtmlTags keepend matchgroup=Delimiter start=".*)\|/\*.\{-}>.\{-}\*/+ end=">" contains=@phtmlTop contained - -" sync -if exists("phtml_minlines") - exec "syn sync minlines=" . phtml_minlines -else - syn sync minlines=100 +if !exists("b:current_syntax") + runtime! syntax/php.vim endif - -" Define the default highlighting. -" For version 5.7 and earlier: only when not done already -" For version 5.8 and later: only when an item doesn't have highlighting yet -if version >= 508 || !exists("did_phtml_syn_inits") - if version < 508 - let did_phtml_syn_inits = 1 - command -nargs=+ HiLink hi link - else - command -nargs=+ HiLink hi def link - endif - - HiLink phtmlComment Comment - HiLink phtmlString String - HiLink phtmlNumber Number - HiLink phtmlFloat Float - HiLink phtmlIdentifier Identifier - HiLink phtmlIntVar Identifier - HiLink phtmlEnvVar Identifier - HiLink phtmlFunctions Function - HiLink phtmlRepeat Repeat - HiLink phtmlConditional Conditional - HiLink phtmlLabel Label - HiLink phtmlStatement Statement - HiLink phtmlType Type - HiLink phtmlInclude Include - HiLink phtmlDefine Define - HiLink phtmlSpecialChar SpecialChar - HiLink phtmlParentError Error - HiLink phtmlOctalError Error - HiLink phtmlTodo Todo - HiLink phtmlOperator Operator - HiLink phtmlRelation Operator - - delcommand HiLink -endif - -let b:current_syntax = "phtml" - -if main_syntax == 'phtml' - unlet main_syntax -endif - -" vim: ts=8 diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim --- a/runtime/syntax/quake.vim +++ b/runtime/syntax/quake.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Quake[1-3] configuration file " Maintainer: Nikolai Weibull -" Latest Revision: 2006-04-19 +" Latest Revision: 2007-06-17 " quake_is_quake1 - the syntax is to be used for quake1 configs " quake_is_quake2 - the syntax is to be used for quake2 configs " quake_is_quake3 - the syntax is to be used for quake3 configs @@ -14,7 +14,7 @@ endif let s:cpo_save = &cpo set cpo&vim -setlocal iskeyword=@,48-57,+,-,_ +setlocal iskeyword+=-,+ syn keyword quakeTodo contained TODO FIXME XXX NOTE diff --git a/runtime/syntax/rexx.vim b/runtime/syntax/rexx.vim --- a/runtime/syntax/rexx.vim +++ b/runtime/syntax/rexx.vim @@ -4,6 +4,7 @@ " Last Change: 2005 Dez 9, added some -coloring, " line comments, do *over*, messages, directives, " highlighting classes, methods, routines and requires +" 2007 Oct 17, added support for new ooRexx 3.2 features " Rony G. Flatscher " " URL: http://www.geulig.de/vim/rexx.vim @@ -27,122 +28,194 @@ setlocal iskeyword+=! setlocal iskeyword+=? " ---rgf, position important: must be before comments etc. ! -syn match rexxOperator "[-=|\/\\\+\*\[\],;<>&\~]" +syn match rexxOperator "[=|\/\\\+\*\[\],;:<>&\~%\-]" -syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>" -syn match rexxEnvironmentSymbol "\<\.\+\([a-zA-Z0-9._?!]\)*\>" - +" rgf syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>" +syn match rexxIdentifier "\<\K\k*\>" +syn match rexxEnvironmentSymbol "\<\.\k\+\>" " A Keyword is the first symbol in a clause. A clause begins at the start " of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always " followed by an implied semicolon. -syn match rexxClause "\(^\|;\|:\|then \|else \|otherwise \)\s*\w\+" contains=ALLBUT,rexxParse2,rexxRaise2 - +syn match rexxClause "\(^\|;\|:\|then \|else \|when \|otherwise \)\s*\S*" contains=ALLBUT,rexxParse2,rexxRaise2,rexxForward2 " Considered keywords when used together in a phrase and begin a clause -syn match rexxParse "\\|version\)\>" -syn match rexxParse2 "\" contained containedin=rexxParse - +syn match rexxParse "\\|version\)\>" containedin=rexxClause contains=rexxParse2 +syn match rexxParse2 "\" containedin=rexxParse syn match rexxKeyword contained "\" -syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\=\>" -syn match rexxKeyword contained "\" -syn match rexxKeyword contained "\\(\s*forever\)\=\>" -syn match rexxKeyword contained "\\s*\" +syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\?\>" +syn match rexxKeyword contained "\" + +syn match rexxKeyword contained "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\(\s\+forever\)\?\>" +syn match rexxKeyword contained "\\s*\(strict\s*\)\?\" " Another keyword phrase, separated to aid highlighting in rexxFunction -syn match rexxKeyword contained "\" -syn match rexxKeyword2 contained "\" +syn match rexxRegularCallSignal contained "\<\(call\|signal\)\s\(\s*on\>\|\s*off\>\)\@!\(\k\+\ze\|\ze(\)\(\s*\|;\|$\|(\)" +syn region rexxLabel contained start="\<\(call\|signal\)\>\s*\zs\(\k*\|(\)" end="\ze\(\s*\|;\|$\|(\)" containedin=rexxRegularCallSignal + +syn match rexxExceptionHandling contained "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>.*\(;\|$\)" +" hilite label given after keyword "name" +syn match rexxLabel "name\s\+\zs\k\+\ze" containedin=rexxExceptionHandling +" hilite condition name (serves as label) +syn match rexxLabel "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>\s*\zs\k\+\ze\s*\(;\|$\)" containedin=rexxExceptionHandling +" user exception handling, hilite user defined name +syn region rexxLabel contained start="user\s\+\zs\k" end="\ze\(\s\|;\|$\)" containedin=rexxExceptionHandling " Considered keywords when they begin a clause -syn match rexxKeyword contained "\<\(arg\|do\|drop\|end\|exit\|expose\|forward\|if\|interpret\|iterate\|leave\|nop\)\>" -syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>" +syn match rexxKeywordStatements "\<\(arg\|catch\|do\|drop\|end\|exit\|expose\|finally\|forward\|if\|interpret\|iterate\|leave\|loop\|nop\)\>" +syn match rexxKeywordStatements "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>" + +" Conditional keywords starting a new statement +syn match rexxConditional "\<\(then\|else\|when\|otherwise\)\(\s*\|;\|\_$\|\)\>" contains=rexxKeywordStatements " Conditional phrases -syn match rexxConditional "\(^\s*\| \)\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\( \|\s*$\)" -syn match rexxConditional contained "\<\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\>" +syn match rexxLoopKeywords "\<\(to\|by\|for\|until\|while\|over\)\>" containedin=doLoopSelectLabelRegion " must be after Conditional phrases! -syn match rexxKeyword ".*\<\(then\|else\)\s*\" +syn match doLoopSelectLabelRegion "\<\(do\|loop\|select\)\>\s\+\(label\s\+\)\?\(\s\+\k\+\s\+\zs\\)\?\k*\(\s\+forever\)\?\(\s\|;\|$\)" + +" color label's name +syn match rexxLabel2 "\<\(do\|loop\|select\)\>\s\+label\s\+\zs\k*\ze" containedin=doLoopSelectLabelRegion + +" make sure control variable is normal +syn match rexxControlVariable "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\s\+\" containedin=doLoopSelectLabelRegion + +" make sure control variable assignment is normal +syn match rexxStartValueAssignment "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\(=.*\)\?\s\+\" containedin=doLoopSelectLabelRegion + +" highlight label name +syn match endIterateLeaveLabelRegion "\<\(end\|leave\|iterate\)\>\(\s\+\K\k*\)" contains=rexxLabel2 +syn match rexxLabel2 "\<\(end\|leave\|iterate\)\>\s\+\zs\k*\ze" containedin=endIterateLeaveLabelRegion + +" Guard statement +syn match rexxGuard "\(^\|;\|:\)\s*\\s\+\<\(on\|off\)\>" + +" Trace statement +syn match rexxTrace "\(^\|;\|:\)\s*\\s\+\<\K\k*\>" " Raise statement -syn match rexxRaise "\(^\|;\|:\)\s\+\\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\=" -syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|return\)\>" contained containedin=rexxRaise +syn match rexxRaise "\(^\|;\|:\)\s\+\\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2 +syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|propagate\|return\)\>" containedin=rexxRaise -" Forward statement keywords -syn match rexxForward "\(^\|;\|:\)\\s*" -syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained containedin=rexxForward +" Forward statement +syn match rexxForward "\(^\|;\|:\)\\s*" contains=rexxForward2 +syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained " Functions/Procedures -syn match rexxFunction "\<\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword,rexxIdentifier -syn match rexxFunction "\<\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>("me=e-1 -syn match rexxFunction "\" contains=rexxKeyword2 +syn match rexxFunction "\<\<[a-zA-Z\!\?_]\k*\>("me=e-1 syn match rexxFunction "[()]" " String constants -syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\=+ oneline -syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\=+ oneline +syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\?+ oneline +syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\?+ oneline +syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword " Catch errors caused by wrong parenthesis -syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword syn match rexxParenError ")" syn match rexxInParen "[\\[\\]{}]" " Comments -syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment -syn match rexxCommentError "\*/" -syn match rexxLineComment /--.*/ +syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment +syn match rexxCommentError "\*/" +syn region rexxLineComment start="--" end="\_$" oneline + +" Highlight User Labels +" check for labels between comments, labels stated in a statement in the middle of a line +syn match rexxLabel "\(\_^\|;\)\s*\(\/\*.*\*\/\)*\s*\k\+\s*\(\/\*.*\*\/\)*\s*:"me=e-1 contains=rexxTodo,rexxComment syn keyword rexxTodo contained TODO FIXME XXX - " ooRexx messages syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1 syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator -" Highlight User Labels -syn match rexxLabel "^\s*\k*\s*:"me=e-1 +" line continuations, take care of (line-)comments after it +syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$" -syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$" " the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one -syn match rexxLineContinue "-\ze\(\s+--.*\|\s*\/\*.*\)*$" +syn match rexxLineContinue "-\ze-\@!\s*\(--.*\|\s*\/\*.*\)\?$" " Special Variables syn keyword rexxSpecialVariable sigl rc result self super +syn keyword rexxSpecialVariable .environment .error .input .local .methods .output .rs .stderr .stdin .stdout .stdque " Constants -syn keyword rexxConst .true .false .nil +syn keyword rexxConst .true .false .nil .endOfLine .line + +syn match rexxNumber "\(-\|+\)\?\s*\zs\<\(\d\+\.\?\|\d*\.\d\+\(E\(+\|-\)\d\{2,2}\)\?\)\?\>" -" ooRexx builtin classes, first define dot to be o.k. in keywords -syn keyword rexxBuiltinClass .object .class .method .message -syn keyword rexxBuiltinClass .monitor .alarm -syn keyword rexxBuiltinClass .stem .stream .string -syn keyword rexxBuiltinClass .mutablebuffer -syn keyword rexxBuiltinClass .array .list .queue .directory .table .set -syn keyword rexxBuiltinClass .relation .bag .supplier .regularExpressions +" ooRexx builtin classes (as of version 3.2.0, fall 2007), first define dot to be o.k. in keywords +syn keyword rexxBuiltinClass .Alarm .ArgUtil .Array .Bag .CaselessColumnComparator +syn keyword rexxBuiltinClass .CaselessComparator .CaselessDescendingComparator .CircularQueue +syn keyword rexxBuiltinClass .Class .Collection .ColumnComparator .Comparable .Comparator +syn keyword rexxBuiltinClass .DateTime .DescendingComparator .Directory .InputOutputStream +syn keyword rexxBuiltinClass .InputStream .InvertingComparator .List .MapCollection +syn keyword rexxBuiltinClass .Message .Method .Monitor .MutableBuffer .Object +syn keyword rexxBuiltinClass .OrderedCollection .OutputStream .Properties .Queue +syn keyword rexxBuiltinClass .Relation .RexxQueue .Set .SetCollection .Stem .Stream +syn keyword rexxBuiltinClass .StreamSupplier .String .Supplier .Table .TimeSpan " Windows-only classes -syn keyword rexxBuiltinClass .OLEObject .MenuObject .WindowsClipboard .WindowsEventLog -syn keyword rexxBuiltinClass .WindowsManager .WindowObject .WindowsProgramManager +syn keyword rexxBuiltinClass .AdvancedControls .AnimatedButton .BaseDialog .ButtonControl +syn keyword rexxBuiltinClass .CategoryDialog .CheckBox .CheckList .ComboBox .DialogControl +syn keyword rexxBuiltinClass .DialogExtensions .DlgArea .DlgAreaU .DynamicDialog +syn keyword rexxBuiltinClass .EditControl .InputBox .IntegerBox .ListBox .ListChoice +syn keyword rexxBuiltinClass .ListControl .MenuObject .MessageExtensions .MultiInputBox +syn keyword rexxBuiltinClass .MultiListChoice .PasswordBox .PlainBaseDialog .PlainUserDialog +syn keyword rexxBuiltinClass .ProgressBar .ProgressIndicator .PropertySheet .RadioButton +syn keyword rexxBuiltinClass .RcDialog .ResDialog .ScrollBar .SingleSelection .SliderControl +syn keyword rexxBuiltinClass .StateIndicator .StaticControl .TabControl .TimedMessage +syn keyword rexxBuiltinClass .TreeControl .UserDialog .VirtualKeyCodes .WindowBase +syn keyword rexxBuiltinClass .WindowExtensions .WindowObject .WindowsClassesBase .WindowsClipboard +syn keyword rexxBuiltinClass .WindowsEventLog .WindowsManager .WindowsProgramManager .WindowsRegistry +" ooRexx directives, ---rgf location important, otherwise directives in top of file not matched! +syn region rexxClassDirective start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxMethodDirective start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxRequiresDirective start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxRoutineDirective start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxAttributeDirective start="::\s*attribute\s*"ms=e+1 end="\ze\(\s\|;\|$\)" + +syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClassDirective,rexxMethodDirective,rexxRoutineDirective,rexxRequiresDirective,rexxAttributeDirective keepend + +syn region rexxVariable start="\zs\<\(\.\)\@!\K\k\+\>\ze\s*\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)" end="\(\_$\|.\)"me=e-1 +syn match rexxVariable "\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)\s*\zs\K\k*\ze" -" ooRexx directives, ---rgf location important, otherwise directives in top of -" file not matched! -syn region rexxClass start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)" -syn region rexxMethod start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)" -syn region rexxRequires start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)" -syn region rexxRoutine start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +" rgf, 2007-07-22: unfortunately, the entire region is colored (not only the +" patterns), hence useless (vim 7.0)! (syntax-docs hint that that should work) +" attempt: just colorize the parenthesis in matching colors, keep content +" transparent to keep the formatting already done to it! +" syn region par1 matchgroup=par1 start="(" matchgroup=par1 end=")" transparent contains=par2 +" syn region par2 matchgroup=par2 start="(" matchgroup=par2 end=")" transparent contains=par3 contained +" syn region par3 matchgroup=par3 start="(" matchgroup=par3 end=")" transparent contains=par4 contained +" syn region par4 matchgroup=par4 start="(" matchgroup=par4 end=")" transparent contains=par5 contained +" syn region par5 matchgroup=par5 start="(" matchgroup=par5 end=")" transparent contains=par1 contained + +" this will colorize the entire region, removing any colorizing already done! +" syn region par1 matchgroup=par1 start="(" end=")" contains=par2 +" syn region par2 matchgroup=par2 start="(" end=")" contains=par3 contained +" syn region par3 matchgroup=par3 start="(" end=")" contains=par4 contained +" syn region par4 matchgroup=par4 start="(" end=")" contains=par5 contained +" syn region par5 matchgroup=par5 start="(" end=")" contains=par1 contained -syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClass,rexxMethod,rexxRoutine,rexxRequires keepend - - +hi par1 ctermfg=red guifg=red +hi par2 ctermfg=blue guifg=blue +hi par3 ctermfg=darkgreen guifg=darkgreen +hi par4 ctermfg=darkyellow guifg=darkyellow +hi par5 ctermfg=darkgrey guifg=darkgrey -if !exists("rexx_minlines") -" let rexx_minlines = 10 - let rexx_minlines = 500 -endif -exec "syn sync ccomment rexxComment minlines=" . rexx_minlines +" line continuation (trailing comma or single dash) +syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$" + +" if !exists("rexx_minlines") +" let rexx_minlines = 500 +" endif +" exec "syn sync ccomment rexxComment minlines=" . rexx_minlines + +" always scan from start, PCs are powerful enough for that in 2007 ! +exec "syn sync fromstart" " Define the default highlighting. " For version 5.7 and earlier: only when not done already @@ -155,6 +228,20 @@ if version >= 508 || !exists("did_rexx_s command -nargs=+ HiLink hi def link endif + " make binary and hex strings stand out + hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold + + HiLink rexxLabel2 Function + HiLink doLoopSelectLabelRegion rexxKeyword + HiLink endIterateLeaveLabelRegion rexxKeyword + HiLink rexxLoopKeywords rexxKeyword " Todo + + HiLink rexxNumber Normal +" HiLink rexxIdentifier DiffChange + + HiLink rexxRegularCallSignal Statement + HiLink rexxExceptionHandling Statement + HiLink rexxLabel Function HiLink rexxCharacter Character HiLink rexxParenError rexxError @@ -162,7 +249,8 @@ if version >= 508 || !exists("did_rexx_s HiLink rexxCommentError rexxError HiLink rexxError Error HiLink rexxKeyword Statement - HiLink rexxKeyword2 rexxKeyword + HiLink rexxKeywordStatements Statement + HiLink rexxFunction Function HiLink rexxString String HiLink rexxComment Comment @@ -172,15 +260,16 @@ if version >= 508 || !exists("did_rexx_s HiLink rexxOperator Operator HiLink rexxMessageOperator rexxOperator - HiLink rexxLineComment RexxComment + HiLink rexxLineComment Comment HiLink rexxLineContinue WildMenu HiLink rexxDirective rexxKeyword - HiLink rexxClass Type - HiLink rexxMethod rexxFunction - HiLink rexxRequires Include - HiLink rexxRoutine rexxFunction + HiLink rexxClassDirective Type + HiLink rexxMethodDirective rexxFunction + HiLink rexxAttributeDirective rexxFunction + HiLink rexxRequiresDirective Include + HiLink rexxRoutineDirective rexxFunction HiLink rexxConst Constant HiLink rexxTypeSpecifier Type @@ -192,6 +281,9 @@ if version >= 508 || !exists("did_rexx_s HiLink rexxParse rexxKeyword HiLink rexxParse2 rexxParse + HiLink rexxGuard rexxKeyword + HiLink rexxTrace rexxKeyword + HiLink rexxRaise rexxKeyword HiLink rexxRaise2 rexxRaise diff --git a/runtime/syntax/snobol4.vim b/runtime/syntax/snobol4.vim --- a/runtime/syntax/snobol4.vim +++ b/runtime/syntax/snobol4.vim @@ -2,8 +2,12 @@ " Language: SNOBOL4 " Maintainer: Rafal Sulejman " Site: http://rms.republika.pl/vim/syntax/snobol4.vim -" Last change: 2006 may 1 +" Last change: 2006 may 10 " Changes: +" - strict snobol4 mode (set snobol4_strict_mode to activate) +" - incorrect HL of dots in strings corrected +" - incorrect HL of dot-variables in parens corrected +" - one character labels weren't displayed correctly. " - nonexistent Snobol4 keywords displayed as errors. " For version 5.x: Clear all syntax items @@ -15,40 +19,54 @@ elseif exists("b:current_syntax") endif syntax case ignore -" Vanilla Snobol4 keywords -syn keyword snobol4Keyword any apply arb arbno arg array -syn keyword snobol4Keyword break -syn keyword snobol4Keyword char clear code collect convert copy -syn keyword snobol4Keyword data datatype date define detach differ dump dupl -syn keyword snobol4Keyword endfile eq eval -syn keyword snobol4Keyword field -syn keyword snobol4Keyword ge gt ident -syn keyword snobol4Keyword input integer item -syn keyword snobol4Keyword le len lgt local lpad lt -syn keyword snobol4Keyword ne notany -syn keyword snobol4Keyword opsyn output -syn keyword snobol4Keyword pos prototype -syn keyword snobol4Keyword remdr replace rpad rpos rtab -syn keyword snobol4Keyword size span stoptr -syn keyword snobol4Keyword tab table time trace trim terminal -syn keyword snobol4Keyword unload -syn keyword snobol4Keyword value -" Spitbol keywords + +" Snobol4 keywords +syn keyword snobol4Keyword any apply arb arbno arg array +syn keyword snobol4Keyword break +syn keyword snobol4Keyword char clear code collect convert copy +syn keyword snobol4Keyword data datatype date define detach differ dump dupl +syn keyword snobol4Keyword endfile eq eval +syn keyword snobol4Keyword field +syn keyword snobol4Keyword ge gt ident +syn keyword snobol4Keyword input integer item +syn keyword snobol4Keyword le len lgt local lpad lt +syn keyword snobol4Keyword ne notany +syn keyword snobol4Keyword opsyn output +syn keyword snobol4Keyword pos prototype +syn keyword snobol4Keyword remdr replace rpad rpos rtab rewind +syn keyword snobol4Keyword size span stoptr +syn keyword snobol4Keyword tab table time trace trim terminal +syn keyword snobol4Keyword unload +syn keyword snobol4Keyword value + " CSNOBOL keywords -syn keyword snobol4Keyword sset +syn keyword snobol4ExtKeyword breakx +syn keyword snobol4ExtKeyword char chop +syn keyword snobol4ExtKeyword date delete +syn keyword snobol4ExtKeyword exp +syn keyword snobol4ExtKeyword freeze function +syn keyword snobol4ExtKeyword host +syn keyword snobol4ExtKeyword io_findunit +syn keyword snobol4ExtKeyword label lpad leq lge lle llt lne log +syn keyword snobol4ExtKeyword ord +syn keyword snobol4ExtKeyword reverse rpad rsort rename +syn keyword snobol4ExtKeyword serv_listen sset set sort sqrt substr +syn keyword snobol4ExtKeyword thaw +syn keyword snobol4ExtKeyword vdiffer -syn region snobol4String matchgroup=Quote start=+"+ skip=+\\"+ end=+"+ -syn region snobol4String matchgroup=Quote start=+'+ skip=+\\'+ end=+'+ -syn match snobol4Statement "^-[^ ][^ ]*" -syn match snobol4Comment "^\*.*$" -syn match snobol4Comment ";\*.*$" -syn match snobol4Constant "[^a-z]\.[a-z][a-z0-9\-]*" -syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError +syn region snobol4String matchgroup=Quote start=+"+ end=+"+ +syn region snobol4String matchgroup=Quote start=+'+ end=+'+ +syn match snobol4BogusStatement "^-[^ ][^ ]*" +syn match snobol4Statement "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)" +syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1 +syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError syn match snobol4Number "\<\d*\(\.\d\d*\)*\>" -syn match snobol4BogusSysVar "&\w\{1,}" +syn match snobol4BogusSysVar "&\w\{1,}" syn match snobol4SysVar "&\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)" -syn match snobol4Label "^[^-\.\+ \t]\S\{1,}" -" +syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)" +syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*" +syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)" + " Parens matching syn cluster snobol4ParenGroup contains=snobol4ParenError syn region snobol4Paren transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket @@ -58,8 +76,7 @@ syn region snobol4Bracket tran syn match snobol4ErrInBracket display contained "[){}]\|<%\|%>" " optional shell shebang line -syn match snobol4Comment "^\#\!.*$" - +" syn match snobol4Comment "^\#\!.*$" " Define the default highlighting. " For version 5.7 and earlier: only when not done already @@ -80,19 +97,26 @@ if version >= 508 || !exists("did_snobol HiLink snobol4Number Number HiLink snobol4Error Error HiLink snobol4Statement PreProc + HiLink snobol4BogusStatement snobol4Error HiLink snobol4String String HiLink snobol4Comment Comment HiLink snobol4Special Special HiLink snobol4Todo Todo - HiLink snobol4Keyword Statement - HiLink snobol4Function Statement HiLink snobol4Keyword Keyword + HiLink snobol4Function Function HiLink snobol4MathsOperator Operator HiLink snobol4ParenError snobol4Error HiLink snobol4ErrInParen snobol4Error HiLink snobol4ErrInBracket snobol4Error HiLink snobol4SysVar Keyword HiLink snobol4BogusSysVar snobol4Error + if exists("snobol4_strict_mode") + HiLink snobol4ExtSysVar WarningMsg + HiLink snobol4ExtKeyword WarningMsg + else + HiLink snobol4ExtSysVar snobol4SysVar + HiLink snobol4ExtKeyword snobol4Keyword + endif delcommand HiLink endif diff --git a/runtime/syntax/sql.vim b/runtime/syntax/sql.vim --- a/runtime/syntax/sql.vim +++ b/runtime/syntax/sql.vim @@ -36,4 +36,4 @@ endif " Source the appropriate file exec 'runtime syntax/'.filename.'.vim' -" vim:sw=4:ff=unix: +" vim:sw=4: diff --git a/runtime/syntax/yacc.vim b/runtime/syntax/yacc.vim --- a/runtime/syntax/yacc.vim +++ b/runtime/syntax/yacc.vim @@ -1,14 +1,17 @@ " Vim syntax file " Language: Yacc -" Maintainer: Dr. Charles E. Campbell, Jr. -" Last Change: Feb 22, 2006 -" Version: 4 +" Maintainer: Charles E. Campbell, Jr. +" Last Change: Jan 09, 2008 +" Version: 5 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax " -" Option: +" Options: {{{1 " g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C +" g:yacc_minlines : see :help :he syn-sync-minlines -- default 50 +" g:yacc_maxlines : see :help :he syn-sync-maxlines -- default 200 -" For version 5.x: Clear all syntax items +" --------------------------------------------------------------------- +" For version 5.x: Clear all syntax items {{{1 " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear @@ -16,7 +19,8 @@ elseif exists("b:current_syntax") finish endif -" Read the C syntax to start with +" --------------------------------------------------------------------- +" Read the C syntax to start with {{{1 if version >= 600 if exists("g:yacc_uses_cpp") runtime! syntax/cpp.vim @@ -29,11 +33,13 @@ else so :p:h/c.vim endif -" Clusters +" --------------------------------------------------------------------- +" Clusters {{{1 syn cluster yaccActionGroup contains=yaccDelim,cInParen,cTodo,cIncluded,yaccDelim,yaccCurlyError,yaccUnionCurly,yaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCommentStartError,cParenError syn cluster yaccUnionGroup contains=yaccKey,cComment,yaccCurly,cType,cStructure,cStorageClass,yaccUnionCurly -" Yacc stuff +" --------------------------------------------------------------------- +" Yacc stuff {{{1 syn match yaccDelim "^\s*[:|;]" syn match yaccOper "@\d\+" @@ -49,17 +55,32 @@ syn match yaccBrkt contained "[<>]" syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt syn match yaccDefinition "^[A-Za-z][A-Za-z0-9_]*\_s*:" -" special Yacc separators +" --------------------------------------------------------------------- +" special Yacc separators {{{1 syn match yaccSectionSep "^[ \t]*%%" syn match yaccSep "^[ \t]*%{" syn match yaccSep "^[ \t]*%}" -" I'd really like to highlight just the outer {}. Any suggestions??? +" --------------------------------------------------------------------- +" I'd really like to highlight just the outer {}. Any suggestions??? {{{1 syn match yaccCurlyError "[{}]" syn region yaccAction matchgroup=yaccCurly start="{" end="}" contains=ALLBUT,@yaccActionGroup +" --------------------------------------------------------------------- +" Yacc synchronization: {{{1 +if exists("g:yacc_maxlines") + exe "syn sync maxlines=".g:yacc_maxlines +else + syn sync maxlines=200 +endif +if exists("g:yacc_minlines") + exe "syn sync minlines=".g:yacc_minlines +else + syn sync minlines=50 +endif -" Define the default highlighting. +" --------------------------------------------------------------------- +" Define the default highlighting. {{{1 " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_yacc_syn_inits") @@ -70,13 +91,13 @@ if version >= 508 || !exists("did_yacc_s command -nargs=+ HiLink hi def link endif - " Internal yacc highlighting links + " Internal yacc highlighting links {{{2 HiLink yaccBrkt yaccStmt HiLink yaccKey yaccStmt HiLink yaccOper yaccStmt HiLink yaccUnionStart yaccKey - " External yacc highlighting links + " External yacc highlighting links {{{2 HiLink yaccCurly Delimiter HiLink yaccCurlyError Error HiLink yaccDefinition Function @@ -87,12 +108,13 @@ if version >= 508 || !exists("did_yacc_s HiLink yaccStmt Statement HiLink yaccType Type - " since Bram doesn't like my Delimiter :| + " since Bram doesn't like my Delimiter :| {{{2 HiLink Delimiter Type delcommand HiLink endif - let b:current_syntax = "yacc" -" vim: ts=15 +" --------------------------------------------------------------------- +" Modelines: {{{1 +" vim: ts=15 fdm=marker diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim --- a/runtime/syntax/zsh.vim +++ b/runtime/syntax/zsh.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Zsh shell script " Maintainer: Nikolai Weibull -" Latest Revision: 2006-08-06 +" Latest Revision: 2007-06-17 if exists("b:current_syntax") finish @@ -10,7 +10,7 @@ endif let s:cpo_save = &cpo set cpo&vim -setlocal iskeyword=@,48-57,_,- +setlocal iskeyword+=- syn keyword zshTodo contained TODO FIXME XXX NOTE diff --git a/runtime/tutor/Contents b/runtime/tutor/Contents new file mode 100644 --- /dev/null +++ b/runtime/tutor/Contents @@ -0,0 +1,23 @@ +Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful + for editing programs and other plain ASCII text. Full Vi + compatibility and includes all Ex commands. Extra features + above Vi: Multilevel undo, multiple windows, syntax + highlighting, command line history, folding, improved command + line editing, command typeahead display, command to display + yank buffers, possibility to edit binary files, file name + stack, support for Manx QuickFix and other compiler's error + messages, shows current file name in window title, on-line + help, rectangular cut/paste, etc., etc., etc... + + Version 7.2a. Also runs under UNIX, MSDOS and other systems. + vim72art.tgz contains the documentation and syntax files. + vim72abin.tgz contains the binaries. + vim72asrc.tgz contains the sources. + Author: Bram Moolenaar et al. + + +Xxd Hex dumper and reader. Can be used to view files as hex, edit + them and write them back. Can also be used to patch files. + + Version 1.8 (1997 May 22) + Author: Juergen Weigert diff --git a/runtime/tutor/README.gr.cp737.txt b/runtime/tutor/README.gr.cp737.txt deleted file mode 100644 --- a/runtime/tutor/README.gr.cp737.txt +++ /dev/null @@ -1,24 +0,0 @@ - Tutor 夘 "" 㚞 ⦬ 㩫 -ᡫ Vim. - - 櫜 ⦠ 㩫 驦 櫜 - 騘. ⢜ 夘 櫠 嫜 ᤜ -嘪 ⤦ 餫 ᡫ Vim. - - Tutor 夘 ⤘ ⮜ 㣘 . -嫜 ⩜ "vim tutor" 㩜 -圪 㣘. 㣘 礜 㩜 - , . - - 穫 Unix 嫜 婞 㩜 暨 "vimtutor". - 㩜 高 ⤘ 殜 嚨 tutor. - - 櫜 ਞ⤘ 㣘 - 嫞 椦. 驫 ⢘ 墜 - 㧦 驜 ᤜ. - -Bob Ware, Colorado School of Mines, Golden, Co 80401, USA -(303) 273-3987 -bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet - -[ 㟞 Vim Bram Moolenaar] diff --git a/runtime/tutor/README.gr.txt b/runtime/tutor/README.gr.txt deleted file mode 100644 --- a/runtime/tutor/README.gr.txt +++ /dev/null @@ -1,24 +0,0 @@ - Tutor "" - Vim. - - - . - Vim. - - Tutor . - "vim tutor" - . - , . - - Unix "vimtutor". - tutor. - - - . - . - -Bob Ware, Colorado School of Mines, Golden, Co 80401, USA -(303) 273-3987 -bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet - -[ Vim Bram Moolenaar] diff --git a/runtime/tutor/README_amisrc.txt b/runtime/tutor/README_amisrc.txt new file mode 100644 --- /dev/null +++ b/runtime/tutor/README_amisrc.txt @@ -0,0 +1,11 @@ +README_amisrc.txt for version 7.2a of Vim: Vi IMproved. + +See "README.txt" for general information about Vim. +See "README_ami.txt" for installation instructions for the Amiga. +These files are in the runtime archive (vim60rt.tgz). + + +The Amiga source archive contains the files needed to compile Vim on the +Amiga. + +See "src/INSTALLami.txt" for instructions on how to compile Vim on the Amiga. diff --git a/runtime/tutor/README_amisrc.txt.info b/runtime/tutor/README_amisrc.txt.info new file mode 100755 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..476af9ac02f637cd652286d8a335468a58d51bb9 GIT binary patch literal 582 zc${^R&nrYx6vw~sjj)ihvr-zHX*O2M3}ya-3FRRh3n{T6HAOw%D_e?%twt7jgR#WM z+eq0=7Sk*&<{_zPVVc*JWac>cUKYq*+;5-z<8(gfu?-q{X(jX^i7*-w;*-enCc17H z@Ox!iB|L-h0SH=>A^PAI; zPUa71#}LkS9(}WLjO}krXFKHTf^QC=q_c-IZ0nLL&N4e&+%Om5`t+Z(wr& L^wdmhesLO~s$>hN diff --git a/runtime/tutor/README_os2.txt b/runtime/tutor/README_os2.txt new file mode 100644 --- /dev/null +++ b/runtime/tutor/README_os2.txt @@ -0,0 +1,58 @@ +README_os2.txt for version 7.2a of Vim: Vi IMproved. + +This file explains the installation of Vim on OS/2 systems. +See "README.txt" for general information about Vim. + + +NOTE: You will need two archives: + vim71rt.zip contains the runtime files (same as for the PC version) + vim71os2.zip contains the OS/2 executables + +1. Go to the directory where you want to put the Vim files. Examples: + cd C:\ + cd D:\editors + +2. Unpack the zip archives. This will create a new directory "vim/vim71", + in which all the distributed Vim files are placed. Since the directory + name includes the version number, it is unlikely that you overwrite + existing files. + Examples: + pkunzip -d vim71os2.zip + unzip vim71os2.zip + + After you unpacked the files, you can still move the whole directory tree + to another location. + +3. Add the directory where vim.exe is to your path. The simplest is to add a + line to your autoexec.bat. Examples: + set path=%path%;C:\vim\vim71 + set path=%path%;D:\editors\vim\vim71 + +That's it! + + +Extra remarks: + +- To avoid confusion between distributed files of different versions and your + own modified vim scripts, it is recommended to use this directory layout: + ("C:\vim" is used here as the root, replace with the path you use) + Your own files: + C:\vim\_vimrc Your personal vimrc. + C:\vim\_viminfo Dynamic info for 'viminfo'. + C:\vim\... Other files you made. + Distributed files: + C:\vim\vim71\vim.exe The Vim version 7.1 executable. + C:\vim\vim71\doc\*.txt The version 7.1 documentation files. + C:\vim\vim71\bugreport.vim A Vim version 7.1 script. + C:\vim\vim71\... Other version 7.1 distributed files. + In this case the $VIM environment variable would be set like this: + set VIM=C:\vim + +- You can put your Vim executable anywhere else. If the executable is not + with the other distributed Vim files, you should set $VIM. The simplest is + to add a line to your autoexec.bat. Examples: + set VIM=c:\vim + set VIM=d:\editors\vim + +For further information, type this inside Vim: + :help os2 diff --git a/runtime/tutor/README_src.txt b/runtime/tutor/README_src.txt new file mode 100644 --- /dev/null +++ b/runtime/tutor/README_src.txt @@ -0,0 +1,10 @@ +README_src.txt for version 7.2a of Vim: Vi IMproved. + +The source archive contains the files needed to compile Vim on Unix systems. +It is packed for Unix systems (NL line separator). It is also used for other +systems in combination with the extra archive (vim-7.0-extra.tar.gz, in the +"extra" directory of ftp.vim.org). + +For more information, see the README.txt file that comes with the runtime +archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime +archive too! diff --git a/runtime/tutor/README_vms.txt b/runtime/tutor/README_vms.txt new file mode 100644 --- /dev/null +++ b/runtime/tutor/README_vms.txt @@ -0,0 +1,48 @@ +README_vms.txt for version 7.2a of Vim: Vi IMproved. + +This file explains the installation of Vim on VMS systems. +See "README.txt" in the runtime archive for information about Vim. + + +Most information can be found in the on-line documentation. Use ":help vms" +inside Vim. Or get the runtime files and read runtime/doc/os_vms.txt to find +out how to install and configure Vim with runtime files etc. + +To compile Vim yourself you need three archives: + vim-X.X-rt.tar.gz runtime files + vim-X.X-src.tar.gz source files + vim-X.X-extra.tar.gz extra source files + +Compilation is recommended, in order to make sure that the correct +libraries are used for your specific system. Read about compiling in +src/INSTALLvms.txt. + +To use the binary version, you need one of these archives: + + vim-XX-exe-ia64-gui.zip IA64 GUI/Motif executables + vim-XX-exe-ia64-gtk.zip IA64 GUI/GTK executables + vim-XX-exe-ia64-term.zip IA64 console executables + vim-XX-exe-axp-gui.zip Alpha GUI/Motif executables + vim-XX-exe-axp-gtk.zip Alpha GUI/GTK executables + vim-XX-exe-axp-term.zip Alpha console executables + vim-XX-exe-vax-gui.zip VAX GUI executables + vim-XX-exe-vax-term.zip VAX console executables + +and of course + vim-XX-runtime.zip runtime files + +The binary archives contain: vim.exe, ctags.exe, xxd.exe files, +but there are also prepared "deploy ready" archives: + +vim-XX-ia64.zip GUI and console executables with runtime and + help files for IA64 systems +vim-XX-axp.zip GUI and console executables with runtime and + help files for Alpha systems +vim-XX-vax.zip GUI and console executables with runtime and + help files for VAX systems + +GTK builds need LIBGTK library installed. + +These executables and up to date patches for OpenVMS system are downloadable +from http://www.polarhome.com/vim/ or ftp://ftp.polarhome.com/pub/vim/ + diff --git a/runtime/tutor/README_w32s.txt b/runtime/tutor/README_w32s.txt new file mode 100644 --- /dev/null +++ b/runtime/tutor/README_w32s.txt @@ -0,0 +1,15 @@ +README_w32s.txt for version 7.2a of Vim: Vi IMproved. + +This archive contains the gvim.exe that was specifically compiled for use in +the Win32s subsystem in MS-Windows 3.1 and 3.11. + +Also see the README_bindos.txt, README_dos.txt and README.txt files. + +Be careful not to overwrite the Win32s gvim.exe with the another gvim.exe when +unpacking another binary archive! Check the output of ":version": + Win32s - "MS-Windows 16/32 bit GUI version" + Win32 - "MS-Windows 32 bit GUI version" +Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support" + +For further information, type this inside Vim: + :help win32s diff --git a/runtime/tutor/Vim.info b/runtime/tutor/Vim.info new file mode 100755 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5c465ffab394d442dfdd993dfe5f013d3b5e9b5e GIT binary patch literal 624 zc${^RO-ckY5QX2EK^F$%5oQ+RHU}ukfGan;^$6mPyot*~w*!3z!3z{*8z^6Ow+sVX zP5P_Uf9m@N8-!e=;($H2yl-&#@rA!+lU}heJDwNbu6S-w&fS6ol?!a%-qWw6*g}!G zxcAB3GSyBSnHEv;nT2n$NiS)vbT%B(V4DZG~$%I5PK8`E@_?4Hc7DrjWx*c&4s0bD}#aQL*A^94}RTs&Eywvx2sYktR3N wN^_$f68-AjJMze}a<0c`W0?Rmm+|X5b}g%2R(sd8SN$)S5BE=x&!KI907tpIbpQYW diff --git a/runtime/tutor/Xxd.info b/runtime/tutor/Xxd.info new file mode 100755 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7ae7643b25e69ee613c1d72818a484f66f1d5e10 GIT binary patch literal 835 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 diff --git a/runtime/tutor/runtime/bugreport.vim b/runtime/tutor/runtime/bugreport.vim new file mode 100644 --- /dev/null +++ b/runtime/tutor/runtime/bugreport.vim @@ -0,0 +1,88 @@ +:" Use this script to create the file "bugreport.txt", which contains +:" information about the environment of a possible bug in Vim. +:" +:" Maintainer: Bram Moolenaar +:" Last change: 2005 Jun 12 +:" +:" To use inside Vim: +:" :so $VIMRUNTIME/bugreport.vim +:" Or, from the command line: +:" vim -s $VIMRUNTIME/bugreport.vim +:" +:" The "if 1" lines are to avoid error messages when expression evaluation is +:" not compiled in. +:" +:if 1 +: let more_save = &more +:endif +:set nomore +:if has("unix") +: !echo "uname -a" >bugreport.txt +: !uname -a >>bugreport.txt +:endif +:redir >>bugreport.txt +:version +:if 1 +: func CheckDir(n) +: if isdirectory(a:n) +: echo 'directory "' . a:n . '" exists' +: else +: echo 'directory "' . a:n . '" does NOT exist' +: endif +: endfun +: func CheckFile(n) +: if filereadable(a:n) +: echo '"' . a:n . '" is readable' +: else +: echo '"' . a:n . '" is NOT readable' +: endif +: endfun +: echo "--- Directories and Files ---" +: echo '$VIM = "' . $VIM . '"' +: call CheckDir($VIM) +: echo '$VIMRUNTIME = "' . $VIMRUNTIME . '"' +: call CheckDir($VIMRUNTIME) +: call CheckFile(&helpfile) +: call CheckFile(fnamemodify(&helpfile, ":h") . "/tags") +: call CheckFile($VIMRUNTIME . "/menu.vim") +: call CheckFile($VIMRUNTIME . "/filetype.vim") +: call CheckFile($VIMRUNTIME . "/syntax/synload.vim") +: delfun CheckDir +: delfun CheckFile +: echo "--- Scripts sourced ---" +: scriptnames +:endif +:set all +:set termcap +:if has("autocmd") +: au +:endif +:if 1 +: echo "--- Normal/Visual mode mappings ---" +:endif +:map +:if 1 +: echo "--- Insert/Command-line mode mappings ---" +:endif +:map! +:if 1 +: echo "--- Abbreviations ---" +:endif +:ab +:if 1 +: echo "--- Highlighting ---" +:endif +:highlight +:if 1 +: echo "--- Variables ---" +:endif +:if 1 +: let +:endif +:redir END +:set more& +:if 1 +: let &more = more_save +: unlet more_save +:endif +:e bugreport.txt diff --git a/runtime/tutor/runtime/hi22-action-make.png b/runtime/tutor/runtime/hi22-action-make.png new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f9abb7796876e43724fe7cb19cf44dfd480dbeee GIT binary patch literal 425 zc%17D@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEa{HEjtmSN`?>!lvI6;RN#5=* z3}Eond3QaK;w>e$@BjYkd16XXqv#e!jnhJFO{UTM3 z`v!`*Z@4Da(0_eBrk`)oA&|5NAKbv{CgN;%Q=r}={(*8#c`!sonH>-36+%ozTqcd7VY#y zCh}5K_JMN+x2MN4_33st{w`JztXTC*_u;qep5dWi=atQQ?s~-6=el}% +" Last Change: 2001 Jun 11 + +if exists("did_indent_on") + unlet did_indent_on +endif + +" Remove all autocommands in the filetypeindent group +silent! au! filetypeindent * diff --git a/runtime/tutor/runtime/mswin.vim b/runtime/tutor/runtime/mswin.vim new file mode 100644 --- /dev/null +++ b/runtime/tutor/runtime/mswin.vim @@ -0,0 +1,106 @@ +" Set options and add mapping such that Vim behaves a lot like MS-Windows +" +" Maintainer: Bram Moolenaar +" Last change: 2006 Apr 02 + +" bail out if this isn't wanted (mrsvim.vim uses this). +if exists("g:skip_loading_mswin") && g:skip_loading_mswin + finish +endif + +" set the 'cpoptions' to its Vim default +if 1 " only do this when compiled with expression evaluation + let s:save_cpo = &cpoptions +endif +set cpo&vim + +" set 'selection', 'selectmode', 'mousemodel' and 'keymodel' for MS-Windows +behave mswin + +" backspace and cursor keys wrap to previous/next line +set backspace=indent,eol,start whichwrap+=<,>,[,] + +" backspace in Visual mode deletes selection +vnoremap d + +" CTRL-X and SHIFT-Del are Cut +vnoremap "+x +vnoremap "+x + +" CTRL-C and CTRL-Insert are Copy +vnoremap "+y +vnoremap "+y + +" CTRL-V and SHIFT-Insert are Paste +map "+gP +map "+gP + +cmap + +cmap + + +" Pasting blockwise and linewise selections is not possible in Insert and +" Visual mode without the +virtualedit feature. They are pasted as if they +" were characterwise instead. +" Uses the paste.vim autoload script. + +exe 'inoremap