# HG changeset patch # User vimboss # Date 1178389482 0 # Node ID 96cd8222a819302f97fe7ad8ae5a9c8adbbcdd56 # Parent da2a955f150aace017101320f6d76c083a69b6fa updated for version 7.1a diff --git a/Contents b/Contents --- a/Contents +++ b/Contents @@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX t messages, shows current file name in window title, on-line help, rectangular cut/paste, etc., etc., etc... - Version 7.0. Also runs under UNIX, MSDOS and other systems. - vim70rt.tgz contains the documentation and syntax files. - vim70bin.tgz contains the binaries. - vim70src.tgz contains the sources. + Version 7.1a. Also runs under UNIX, MSDOS and other systems. + vim71art.tgz contains the documentation and syntax files. + vim71abin.tgz contains the binaries. + vim71asrc.tgz contains the sources. Author: Bram Moolenaar et al. diff --git a/README_amisrc.txt b/README_amisrc.txt --- a/README_amisrc.txt +++ b/README_amisrc.txt @@ -1,4 +1,4 @@ -README_amisrc.txt for version 7.0 of Vim: Vi IMproved. +README_amisrc.txt for version 7.1a of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_ami.txt" for installation instructions for the Amiga. diff --git a/README_bindos.txt b/README_bindos.txt --- a/README_bindos.txt +++ b/README_bindos.txt @@ -1,4 +1,4 @@ -README_bindos.txt for version 7.0 of Vim: Vi IMproved. +README_bindos.txt for version 7.1a of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. diff --git a/README_lang.txt b/README_lang.txt --- a/README_lang.txt +++ b/README_lang.txt @@ -1,4 +1,4 @@ -README_lang.txt for version 7.0 of Vim: Vi IMproved. +README_lang.txt for version 7.1a of Vim: Vi IMproved. This file contains files for non-English languages: - Translated messages. diff --git a/README_os2.txt b/README_os2.txt --- a/README_os2.txt +++ b/README_os2.txt @@ -1,32 +1,32 @@ -README_os2.txt for version 7.0 of Vim: Vi IMproved. +README_os2.txt for version 7.1a 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: - vim70rt.zip contains the runtime files (same as for the PC version) - vim70os2.zip contains the OS/2 executables + vim71art.zip contains the runtime files (same as for the PC version) + vim71aos2.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/vim70", +2. Unpack the zip archives. This will create a new directory "vim/vim71a", 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 vim70os2.zip - unzip vim70os2.zip + pkunzip -d vim71aos2.zip + unzip vim71aos2.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\vim70 - set path=%path%;D:\editors\vim\vim70 + set path=%path%;C:\vim\vim71a + set path=%path%;D:\editors\vim\vim71a That's it! @@ -41,10 +41,10 @@ Extra remarks: C:\vim\_viminfo Dynamic info for 'viminfo'. C:\vim\... Other files you made. Distributed files: - C:\vim\vim70\vim.exe The Vim version 7.0 executable. - C:\vim\vim70\doc\*.txt The version 7.0 documentation files. - C:\vim\vim70\bugreport.vim A Vim version 7.0 script. - C:\vim\vim70\... Other version 7.0 distributed files. + C:\vim\vim71a\vim.exe The Vim version 7.1a executable. + C:\vim\vim71a\doc\*.txt The version 7.1a documentation files. + C:\vim\vim71a\bugreport.vim A Vim version 7.1a script. + C:\vim\vim71a\... Other version 7.1a distributed files. In this case the $VIM environment variable would be set like this: set VIM=C:\vim diff --git a/README_src.txt b/README_src.txt --- a/README_src.txt +++ b/README_src.txt @@ -1,4 +1,4 @@ -README_src.txt for version 7.0 of Vim: Vi IMproved. +README_src.txt for version 7.1a 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 diff --git a/README_srcdos.txt b/README_srcdos.txt --- a/README_srcdos.txt +++ b/README_srcdos.txt @@ -1,4 +1,4 @@ -README_srcdos.txt for version 7.0 of Vim: Vi IMproved. +README_srcdos.txt for version 7.1a of Vim: Vi IMproved. See "README.txt" for general information about Vim. See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows. diff --git a/README_vms.txt b/README_vms.txt --- a/README_vms.txt +++ b/README_vms.txt @@ -1,4 +1,4 @@ -README_vms.txt for version 7.0 of Vim: Vi IMproved. +README_vms.txt for version 7.1a 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. diff --git a/README_w32s.txt b/README_w32s.txt --- a/README_w32s.txt +++ b/README_w32s.txt @@ -1,4 +1,4 @@ -README_w32s.txt for version 7.0 of Vim: Vi IMproved. +README_w32s.txt for version 7.1a 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. diff --git a/runtime/autoload/ada.vim b/runtime/autoload/ada.vim new file mode 100644 --- /dev/null +++ b/runtime/autoload/ada.vim @@ -0,0 +1,595 @@ +"------------------------------------------------------------------------------ +" Description: Perform Ada specific completion & tagging. +" Language: Ada (2005) +" $Id$ +" Maintainer: Martin Krischik +" Neil Bird +" $Author$ +" $Date$ +" Version: 4.2 +" $Revision$ +" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $ +" History: 24.05.2006 MK Unified Headers +" 26.05.2006 MK ' should not be in iskeyword. +" 16.07.2006 MK Ada-Mode as vim-ball +" 02.10.2006 MK Better folding. +" 15.10.2006 MK Bram's suggestion for runtime integration +" 05.11.2006 MK Bram suggested not to use include protection for +" autoload +" 05.11.2006 MK Bram suggested to save on spaces +" Help Page: ft-ada-functions +"------------------------------------------------------------------------------ + +if version < 700 + finish +endif + +" Section: Constants {{{1 +" +let g:ada#DotWordRegex = '\a\w*\(\_s*\.\_s*\a\w*\)*' +let g:ada#WordRegex = '\a\w*' +let g:ada#Comment = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*" +let g:ada#Keywords = [] + +" Section: g:ada#Keywords {{{1 +" +" Section: add Ada keywords {{{2 +" +for Item in ['abort', 'else', 'new', 'return', 'abs', 'elsif', 'not', 'reverse', 'abstract', 'end', 'null', 'accept', 'entry', 'select', 'access', 'exception', 'of', 'separate', 'aliased', 'exit', 'or', 'subtype', 'all', 'others', 'synchronized', 'and', 'for', 'out', 'array', 'function', 'overriding', 'tagged', 'at', 'task', 'generic', 'package', 'terminate', 'begin', 'goto', 'pragma', 'then', 'body', 'private', 'type', 'if', 'procedure', 'case', 'in', 'protected', 'until', 'constant', 'interface', 'use', 'is', 'raise', 'declare', 'range', 'when', 'delay', 'limited', 'record', 'while', 'delta', 'loop', 'rem', 'with', 'digits', 'renames', 'do', 'mod', 'requeue', 'xor'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'keyword', + \ 'info': 'Ada keyword.', + \ 'kind': 'k', + \ 'icase': 1}] +endfor + +" Section: GNAT Project Files {{{3 +" +if exists ('g:ada_with_gnat_project_files') + for Item in ['project'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'keyword', + \ 'info': 'GNAT projectfile keyword.', + \ 'kind': 'k', + \ 'icase': 1}] + endfor +endif + +" Section: add standart exception {{{2 +" +for Item in ['Constraint_Error', 'Program_Error', 'Storage_Error', 'Tasking_Error', 'Status_Error', 'Mode_Error', 'Name_Error', 'Use_Error', 'Device_Error', 'End_Error', 'Data_Error', 'Layout_Error', 'Length_Error', 'Pattern_Error', 'Index_Error', 'Translation_Error', 'Time_Error', 'Argument_Error', 'Tag_Error', 'Picture_Error', 'Terminator_Error', 'Conversion_Error', 'Pointer_Error', 'Dereference_Error', 'Update_Error'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'exception', + \ 'info': 'Ada standart exception.', + \ 'kind': 'x', + \ 'icase': 1}] +endfor + +" Section: add GNAT exception {{{3 +" +if exists ('g:ada_gnat_extensions') + for Item in ['Assert_Failure'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'exception', + \ 'info': 'GNAT exception.', + \ 'kind': 'x', + \ 'icase': 1}] + endfor +endif + +" Section: add Ada buildin types {{{2 +" +for Item in ['Boolean', 'Integer', 'Natural', 'Positive', 'Float', 'Character', 'Wide_Character', 'Wide_Wide_Character', 'String', 'Wide_String', 'Wide_Wide_String', 'Duration'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'type', + \ 'info': 'Ada buildin type.', + \ 'kind': 't', + \ 'icase': 1}] +endfor + +" Section: add GNAT buildin types {{{3 +" +if exists ('g:ada_gnat_extensions') + for Item in ['Short_Integer', 'Short_Short_Integer', 'Long_Integer', 'Long_Long_Integer', 'Short_Float', 'Short_Short_Float', 'Long_Float', 'Long_Long_Float'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'type', + \ 'info': 'GNAT buildin type.', + \ 'kind': 't', + \ 'icase': 1}] + endfor +endif + +" Section: add Ada Attributes {{{2 +" +for Item in ['''Access', '''Address', '''Adjacent', '''Aft', '''Alignment', '''Base', '''Bit_Order', '''Body_Version', '''Callable', '''Caller', '''Ceiling', '''Class', '''Component_Size', '''Compose', '''Constrained', '''Copy_Sign', '''Count', '''Definite', '''Delta', '''Denorm', '''Digits', '''Emax', '''Exponent', '''External_Tag', '''Epsilon', '''First', '''First_Bit', '''Floor', '''Fore', '''Fraction', '''Identity', '''Image', '''Input', '''Large', '''Last', '''Last_Bit', '''Leading_Part', '''Length', '''Machine', '''Machine_Emax', '''Machine_Emin', '''Machine_Mantissa', '''Machine_Overflows', '''Machine_Radix', '''Machine_Rounding', '''Machine_Rounds', '''Mantissa', '''Max', '''Max_Size_In_Storage_Elements', '''Min', '''Mod', '''Model', '''Model_Emin', '''Model_Epsilon', '''Model_Mantissa', '''Model_Small', '''Modulus', '''Output', '''Partition_ID', '''Pos', '''Position', '''Pred', '''Priority', '''Range', '''Read', '''Remainder', '''Round', '''Rounding', '''Safe_Emax', '''Safe_First', '''Safe_Large', '''Safe_Last', '''Safe_Small', '''Scale', '''Scaling', '''Signed_Zeros', '''Size', '''Small', '''Storage_Pool', '''Storage_Size', '''Stream_Size', '''Succ', '''Tag', '''Terminated', '''Truncation', '''Unbiased_Rounding', '''Unchecked_Access', '''Val', '''Valid', '''Value', '''Version', '''Wide_Image', '''Wide_Value', '''Wide_Wide_Image', '''Wide_Wide_Value', '''Wide_Wide_Width', '''Wide_Width', '''Width', '''Write'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'attribute', + \ 'info': 'Ada attribute.', + \ 'kind': 'a', + \ 'icase': 1}] +endfor + +" Section: add GNAT Attributes {{{3 +" +if exists ('g:ada_gnat_extensions') + for Item in ['''Abort_Signal', '''Address_Size', '''Asm_Input', '''Asm_Output', '''AST_Entry', '''Bit', '''Bit_Position', '''Code_Address', '''Default_Bit_Order', '''Elaborated', '''Elab_Body', '''Elab_Spec', '''Emax', '''Enum_Rep', '''Epsilon', '''Fixed_Value', '''Has_Access_Values', '''Has_Discriminants', '''Img', '''Integer_Value', '''Machine_Size', '''Max_Interrupt_Priority', '''Max_Priority', '''Maximum_Alignment', '''Mechanism_Code', '''Null_Parameter', '''Object_Size', '''Passed_By_Reference', '''Range_Length', '''Storage_Unit', '''Target_Name', '''Tick', '''To_Address', '''Type_Class', '''UET_Address', '''Unconstrained_Array', '''Universal_Literal_String', '''Unrestricted_Access', '''VADS_Size', '''Value_Size', '''Wchar_T_Size', '''Word_Size'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'attribute', + \ 'info': 'GNAT attribute.', + \ 'kind': 'a', + \ 'icase': 1}] + endfor +endif + +" Section: add Ada Pragmas {{{2 +" +for Item in ['All_Calls_Remote', 'Assert', 'Assertion_Policy', 'Asynchronous', 'Atomic', 'Atomic_Components', 'Attach_Handler', 'Controlled', 'Convention', 'Detect_Blocking', 'Discard_Names', 'Elaborate', 'Elaborate_All', 'Elaborate_Body', 'Export', 'Import', 'Inline', 'Inspection_Point', 'Interface (Obsolescent)', 'Interrupt_Handler', 'Interrupt_Priority', 'Linker_Options', 'List', 'Locking_Policy', 'Memory_Size (Obsolescent)', 'No_Return', 'Normalize_Scalars', 'Optimize', 'Pack', 'Page', 'Partition_Elaboration_Policy', 'Preelaborable_Initialization', 'Preelaborate', 'Priority', 'Priority_Specific_Dispatching', 'Profile', 'Pure', 'Queueing_Policy', 'Relative_Deadline', 'Remote_Call_Interface', 'Remote_Types', 'Restrictions', 'Reviewable', 'Shared (Obsolescent)', 'Shared_Passive', 'Storage_Size', 'Storage_Unit (Obsolescent)', 'Suppress', 'System_Name (Obsolescent)', 'Task_Dispatching_Policy', 'Unchecked_Union', 'Unsuppress', 'Volatile', 'Volatile_Components'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'pragma', + \ 'info': 'Ada pragma.', + \ 'kind': 'p', + \ 'icase': 1}] +endfor + +" Section: add GNAT Pragmas {{{3 +" +if exists ('g:ada_gnat_extensions') + for Item in ['Abort_Defer', 'Ada_83', 'Ada_95', 'Ada_05', 'Annotate', 'Ast_Entry', 'C_Pass_By_Copy', 'Comment', 'Common_Object', 'Compile_Time_Warning', 'Complex_Representation', 'Component_Alignment', 'Convention_Identifier', 'CPP_Class', 'CPP_Constructor', 'CPP_Virtual', 'CPP_Vtable', 'Debug', 'Elaboration_Checks', 'Eliminate', 'Export_Exception', 'Export_Function', 'Export_Object', 'Export_Procedure', 'Export_Value', 'Export_Valued_Procedure', 'Extend_System', 'External', 'External_Name_Casing', 'Finalize_Storage_Only', 'Float_Representation', 'Ident', 'Import_Exception', 'Import_Function', 'Import_Object', 'Import_Procedure', 'Import_Valued_Procedure', 'Initialize_Scalars', 'Inline_Always', 'Inline_Generic', 'Interface_Name', 'Interrupt_State', 'Keep_Names', 'License', 'Link_With', 'Linker_Alias', 'Linker_Section', 'Long_Float', 'Machine_Attribute', 'Main_Storage', 'Obsolescent', 'Passive', 'Polling', 'Profile_Warnings', 'Propagate_Exceptions', 'Psect_Object', 'Pure_Function', 'Restriction_Warnings', 'Source_File_Name', 'Source_File_Name_Project', 'Source_Reference', 'Stream_Convert', 'Style_Checks', 'Subtitle', 'Suppress_All', 'Suppress_Exception_Locations', 'Suppress_Initialization', 'Task_Info', 'Task_Name', 'Task_Storage', 'Thread_Body', 'Time_Slice', 'Title', 'Unimplemented_Unit', 'Universal_Data', 'Unreferenced', 'Unreserve_All_Interrupts', 'Use_VADS_Size', 'Validity_Checks', 'Warnings', 'Weak_External'] + let g:ada#Keywords += [{ + \ 'word': Item, + \ 'menu': 'pragma', + \ 'info': 'GNAT pragma.', + \ 'kind': 'p', + \ 'icase': 1}] + endfor +endif +" 1}}} + +" Section: g:ada#Ctags_Kinds {{{1 +" +let g:ada#Ctags_Kinds = { + \ 'P': ["packspec", "package specifications"], + \ 'p': ["package", "packages"], + \ 'T': ["typespec", "type specifications"], + \ 't': ["type", "types"], + \ 'U': ["subspec", "subtype specifications"], + \ 'u': ["subtype", "subtypes"], + \ 'c': ["component", "record type components"], + \ 'l': ["literal", "enum type literals"], + \ 'V': ["varspec", "variable specifications"], + \ 'v': ["variable", "variables"], + \ 'f': ["formal", "generic formal parameters"], + \ 'n': ["constant", "constants"], + \ 'x': ["exception", "user defined exceptions"], + \ 'R': ["subprogspec", "subprogram specifications"], + \ 'r': ["subprogram", "subprograms"], + \ 'K': ["taskspec", "task specifications"], + \ 'k': ["task", "tasks"], + \ 'O': ["protectspec", "protected data specifications"], + \ 'o': ["protected", "protected data"], + \ 'E': ["entryspec", "task/protected data entry specifications"], + \ 'e': ["entry", "task/protected data entries"], + \ 'b': ["label", "labels"], + \ 'i': ["identifier", "loop/declare identifiers"], + \ 'a': ["autovar", "automatic variables"], + \ 'y': ["annon", "loops and blocks with no identifier"]} + +" Section: ada#Word (...) {{{1 +" +" Extract current Ada word across multiple lines +" AdaWord ([line, column])\ +" +function ada#Word (...) + if a:0 > 1 + let l:Line_Nr = a:1 + let l:Column_Nr = a:2 - 1 + else + let l:Line_Nr = line('.') + let l:Column_Nr = col('.') - 1 + endif + + let l:Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' ) + + " Cope with tag searching for items in comments; if we are, don't loop + " backards looking for previous lines + if l:Column_Nr > strlen(l:Line) + " We were in a comment + let l:Line = getline(l:Line_Nr) + let l:Search_Prev_Lines = 0 + else + let l:Search_Prev_Lines = 1 + endif + + " Go backwards until we find a match (Ada ID) that *doesn't* include our + " location - i.e., the previous ID. This is because the current 'correct' + " match will toggle matching/not matching as we traverse characters + " backwards. Thus, we have to find the previous unrelated match, exclude + " it, then use the next full match (ours). + " Remember to convert vim column 'l:Column_Nr' [1..n] to string offset [0..(n-1)] + " ... but start, here, one after the required char. + let l:New_Column = l:Column_Nr + 1 + while 1 + let l:New_Column = l:New_Column - 1 + if l:New_Column < 0 + " Have to include previous l:Line from file + let l:Line_Nr = l:Line_Nr - 1 + if l:Line_Nr < 1 || !l:Search_Prev_Lines + " Start of file or matching in a comment + let l:Line_Nr = 1 + let l:New_Column = 0 + let l:Our_Match = match (l:Line, g:ada#WordRegex ) + break + endif + " Get previous l:Line, and prepend it to our search string + let l:New_Line = substitute (getline (l:Line_Nr), g:ada#Comment, '', '' ) + let l:New_Column = strlen (l:New_Line) - 1 + let l:Column_Nr = l:Column_Nr + l:New_Column + let l:Line = l:New_Line . l:Line + endif + " Check to see if this is a match excluding 'us' + let l:Match_End = l:New_Column + + \ matchend (strpart (l:Line,l:New_Column), g:ada#WordRegex ) - 1 + if l:Match_End >= l:New_Column && + \ l:Match_End < l:Column_Nr + " Yes + let l:Our_Match = l:Match_End+1 + + \ match (strpart (l:Line,l:Match_End+1), g:ada#WordRegex ) + break + endif + endwhile + + " Got anything? + if l:Our_Match < 0 + return '' + else + let l:Line = strpart (l:Line, l:Our_Match) + endif + + " Now simply add further lines until the match gets no bigger + let l:Match_String = matchstr (l:Line, g:ada#WordRegex) + let l:Last_Line = line ('$') + let l:Line_Nr = line ('.') + 1 + while l:Line_Nr <= l:Last_Line + let l:Last_Match = l:Match_String + let l:Line = l:Line . + \ substitute (getline (l:Line_Nr), g:ada#Comment, '', '') + let l:Match_String = matchstr (l:Line, g:ada#WordRegex) + if l:Match_String == l:Last_Match + break + endif + endwhile + + " Strip whitespace & return + return substitute (l:Match_String, '\s\+', '', 'g') +endfunction ada#Word + +" Section: ada#List_Tag (...) {{{1 +" +" List tags in quickfix window +" +function ada#List_Tag (...) + if a:0 > 1 + let l:Tag_Word = ada#Word (a:1, a:2) + elseif a:0 > 0 + let l:Tag_Word = a:1 + else + let l:Tag_Word = ada#Word () + endif + + echo "Searching for" l:Tag_Word + + let l:Pattern = '^' . l:Tag_Word . '$' + let l:Tag_List = taglist (l:Pattern) + let l:Error_List = [] + " + " add symbols + " + for Tag_Item in l:Tag_List + if l:Tag_Item['kind'] == '' + let l:Tag_Item['kind'] = 's' + endif + + let l:Error_List += [ + \ l:Tag_Item['filename'] . '|' . + \ l:Tag_Item['cmd'] . '|' . + \ l:Tag_Item['kind'] . "\t" . + \ l:Tag_Item['name'] ] + endfor + set errorformat=%f\|%l\|%m + cexpr l:Error_List + cwindow +endfunction ada#List_Tag + +" Section: ada#Jump_Tag (Word, Mode) {{{1 +" +" Word tag - include '.' and if Ada make uppercase +" +function ada#Jump_Tag (Word, Mode) + if a:Word == '' + " Get current word + let l:Word = ada#Word() + if l:Word == '' + throw "NOT_FOUND: no identifier found." + endif + else + let l:Word = a:Word + endif + + echo "Searching for " . l:Word + + try + execute a:Mode l:Word + catch /.*:E426:.*/ + let ignorecase = &ignorecase + set ignorecase + execute a:Mode l:Word + let &ignorecase = ignorecase + endtry + + return +endfunction ada#Jump_Tag + +" Section: ada#Insert_Backspace () {{{1 +" +" Backspace at end of line after auto-inserted commentstring '-- ' wipes it +" +function ada#Insert_Backspace () + let l:Line = getline ('.') + if col ('.') > strlen (l:Line) && + \ match (l:Line, '-- $') != -1 && + \ match (&comments,'--') != -1 + return "\\\" + else + return "\" + endif + + return +endfunction ada#InsertBackspace + +" Section: Insert Completions {{{1 +" +" Section: ada#User_Complete(findstart, base) {{{2 +" +" This function is used for the 'complete' option. +" +function! ada#User_Complete(findstart, base) + if a:findstart == 1 + " + " locate the start of the word + " + let line = getline ('.') + let start = col ('.') - 1 + while start > 0 && line[start - 1] =~ '\i\|''' + let start -= 1 + endwhile + return start + else + " + " look up matches + " + let l:Pattern = '^' . a:base . '.*$' + " + " add keywords + " + for Tag_Item in g:ada#Keywords + if l:Tag_Item['word'] =~? l:Pattern + if complete_add (l:Tag_Item) == 0 + return [] + endif + if complete_check () + return [] + endif + endif + endfor + return [] + endif +endfunction ada#User_Complete + +" Section: ada#Completion (cmd) {{{2 +" +" Word completion (^N/^R/^X^]) - force '.' inclusion +function ada#Completion (cmd) + set iskeyword+=46 + return a:cmd . "\=ada#Completion_End ()\" +endfunction ada#Completion + +" Section: ada#Completion_End () {{{2 +" +function ada#Completion_End () + set iskeyword-=46 + return '' +endfunction ada#Completion_End + +" Section: ada#Create_Tags {{{1 +" +function ada#Create_Tags (option) + if a:option == 'file' + let l:Filename = fnamemodify (bufname ('%'), ':p') + elseif a:option == 'dir' + let l:Filename = + \ fnamemodify (bufname ('%'), ':p:h') . "*.ada " . + \ fnamemodify (bufname ('%'), ':p:h') . "*.adb " . + \ fnamemodify (bufname ('%'), ':p:h') . "*.ads" + else + let l:Filename = a:option + endif + execute '!ctags --excmd=number ' . l:Filename +endfunction ada#Create_Tags + +function ada#Switch_Session (New_Session) "{{{1 + if a:New_Session != v:this_session + " + " We actualy got a new session - otherwise there + " is nothing to do. + " + if strlen (v:this_session) > 0 + execute 'mksession! ' . v:this_session + endif + + let v:this_session = a:New_Session + + if filereadable (v:this_session) + execute 'source ' . v:this_session + endif + + augroup ada_session + autocmd! + autocmd VimLeavePre * execute 'mksession! ' . v:this_session + augroup END + endif + + return +endfunction ada#Switch_Session "}}}1 + +" Section: GNAT Pretty Printer folding {{{1 +" +if exists('g:ada_folding') && g:ada_folding[0] == 'g' + " + " Lines consisting only of ')' ';' are due to a gnat pretty bug and + " have the same level as the line above (can't happen in the first + " line). + " + let s:Fold_Collate = '^\([;)]*$\|' + + " + " some lone statements are folded with the line above + " + if stridx (g:ada_folding, 'i') >= 0 + let s:Fold_Collate .= '\s\+\$\|' + endif + if stridx (g:ada_folding, 'b') >= 0 + let s:Fold_Collate .= '\s\+\$\|' + endif + if stridx (g:ada_folding, 'p') >= 0 + let s:Fold_Collate .= '\s\+\$\|' + endif + if stridx (g:ada_folding, 'x') >= 0 + let s:Fold_Collate .= '\s\+\$\|' + endif + + " We also handle empty lines and + " comments here. + let s:Fold_Collate .= '--\)' + + function ada#Pretty_Print_Folding (Line) " {{{2 + let l:Text = getline (a:Line) + + if l:Text =~ s:Fold_Collate + " + " fold with line above + " + let l:Level = "=" + elseif l:Text =~ '^\s\+(' + " + " gnat outdents a line which stards with a ( by one characters so + " that parameters which follow are aligned. + " + let l:Level = (indent (a:Line) + 1) / &shiftwidth + else + let l:Level = indent (a:Line) / &shiftwidth + endif + + return l:Level + endfunction ada#Pretty_Print_Folding " }}}2 +endif + +" Section: Options and Menus {{{1 +" +" Section: ada#Switch_Syntax_Options {{{2 +" +function ada#Switch_Syntax_Option (option) + syntax off + if exists ('g:ada_' . a:option) + unlet g:ada_{a:option} + echo a:option . 'now off' + else + let g:ada_{a:option}=1 + echo a:option . 'now on' + endif + syntax on +endfunction ada#Switch_Syntax_Option + +" Section: ada#Map_Menu {{{2 +" +function ada#Map_Menu (Text, Keys, Command) + if a:Keys[0] == ':' + execute + \ "50amenu " . + \ "Ada." . escape(a:Text, ' ') . + \ "" . a:Keys . + \ " :" . a:Command . "" + execute + \ "command -buffer " . + \ a:Keys[1:] . + \" :" . a:Command . "" + elseif a:Keys[0] == '<' + execute + \ "50amenu " . + \ "Ada." . escape(a:Text, ' ') . + \ "" . a:Keys . + \ " :" . a:Command . "" + execute + \ "nnoremap " . + \ a:Keys . + \" :" . a:Command . "" + execute + \ "inoremap " . + \ a:Keys . + \" :" . a:Command . "" + else + execute + \ "50amenu " . + \ "Ada." . escape(a:Text, ' ') . + \ "" . escape(g:mapleader . "a" . a:Keys , '\') . + \ " :" . a:Command . "" + execute + \ "nnoremap " . + \ escape(g:mapleader . "a" . a:Keys , '\') . + \" :" . a:Command + execute + \ "inoremap " . + \ escape(g:mapleader . "a" . a:Keys , '\') . + \" :" . a:Command + endif + return +endfunction + +" Section: ada#Map_Popup {{{2 +" +function ada#Map_Popup (Text, Keys, Command) + execute + \ "50amenu " . + \ "PopUp." . escape(a:Text, ' ') . + \ "" . escape(g:mapleader . "a" . a:Keys , '\') . + \ " :" . a:Command . "" + + call ada#Map_Menu (a:Text, a:Keys, a:Command) + return +endfunction ada#Map_Popup + +" }}}1 + +lockvar g:ada#WordRegex +lockvar g:ada#DotWordRegex +lockvar g:ada#Comment +lockvar! g:ada#Keywords +lockvar! g:ada#Ctags_Kinds + +finish " 1}}} + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: foldmethod=marker diff --git a/runtime/autoload/gnat.vim b/runtime/autoload/gnat.vim new file mode 100644 --- /dev/null +++ b/runtime/autoload/gnat.vim @@ -0,0 +1,139 @@ +"------------------------------------------------------------------------------ +" Description: Vim Ada/GNAT compiler file +" Language: Ada (GNAT) +" $Id$ +" Copyright: Copyright (C) 2006 Martin Krischik +" Maintainer: Martin Krischik +" $Author$ +" $Date$ +" Version: 4.2 +" $Revision$ +" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $ +" History: 24.05.2006 MK Unified Headers +" 16.07.2006 MK Ada-Mode as vim-ball +" 05.08.2006 MK Add session support +" 15.10.2006 MK Bram's suggestion for runtime integration +" 05.11.2006 MK Bram suggested not to use include protection for +" autoload +" 05.11.2006 MK Bram suggested to save on spaces +" Help Page: compiler-gnat +"------------------------------------------------------------------------------ + +if version < 700 + finish +endif + +function gnat#Make () dict " {{{1 + let &l:makeprg = self.Get_Command('Make') + let &l:errorformat = self.Error_Format + wall + make + copen + set wrap + wincmd W +endfunction gnat#Make " }}}1 + +function gnat#Pretty () dict " {{{1 + execute "!" . self.Get_Command('Pretty') +endfunction gnat#Make " }}}1 + +function gnat#Find () dict " {{{1 + execute "!" . self.Get_Command('Find') +endfunction gnat#Find " }}}1 + +function gnat#Tags () dict " {{{1 + execute "!" . self.Get_Command('Tags') + edit tags + call gnat#Insert_Tags_Header () + update + quit +endfunction gnat#Tags " }}}1 + +function gnat#Set_Project_File (...) dict " {{{1 + if a:0 > 0 + let self.Project_File = a:1 + + if ! filereadable (self.Project_File) + let self.Project_File = findfile ( + \ fnamemodify (self.Project_File, ':r'), + \ $ADA_PROJECT_PATH, + \ 1) + endif + elseif strlen (self.Project_File) > 0 + let self.Project_File = browse (0, 'GNAT Project File?', '', self.Project_File) + elseif expand ("%:e") == 'gpr' + let self.Project_File = browse (0, 'GNAT Project File?', '', expand ("%:e")) + else + let self.Project_File = browse (0, 'GNAT Project File?', '', 'default.gpr') + endif + + if strlen (v:this_session) > 0 + execute 'mksession! ' . v:this_session + endif + + if strlen (self.Project_File) > 0 + call ada#Switch_Session ( + \ expand('~') . "/vimfiles/session/" . + \ fnamemodify (self.Project_File, ":t:r") . ".vim") + else + call ada#Switch_Session ('') + endif + + return +endfunction gnat#Set_Project_File " }}}1 + +function gnat#Get_Command (Command) dict " {{{1 + let l:Command = eval ('self.' . a:Command . '_Command') + return eval (l:Command) +endfunction gnat#Get_Command " }}}1 + +function gnat#Set_Session (...) dict " {{{1 + if argc() == 1 && fnamemodify (argv(0), ':e') == 'gpr' + call self.Set_Project_File (argv(0)) + elseif strlen (v:servername) > 0 + call self.Set_Project_File (v:servername . '.gpr') + endif +endfunction gnat#Set_Session " }}}1 + +function gnat#New () " {{{1 + let l:Retval = { + \ 'Make' : function ('gnat#Make'), + \ 'Pretty' : function ('gnat#Pretty'), + \ 'Find' : function ('gnat#Find'), + \ 'Tags' : function ('gnat#Tags'), + \ 'Set_Project_File' : function ('gnat#Set_Project_File'), + \ 'Set_Session' : function ('gnat#Set_Session'), + \ 'Get_Command' : function ('gnat#Get_Command'), + \ 'Project_File' : '', + \ 'Make_Command' : '"gnat make -P " . self.Project_File . " -F -gnatef "', + \ 'Pretty_Command' : '"gnat pretty -P " . self.Project_File . " "', + \ 'Find_Program' : '"gnat find -P " . self.Project_File . " -F "', + \ 'Tags_Command' : '"gnat xref -P " . self.Project_File . " -v *.AD*"', + \ 'Error_Format' : '%f:%l:%c: %trror: %m,' . + \ '%f:%l:%c: %tarning: %m,' . + \ '%f:%l:%c: (%ttyle) %m'} + + return l:Retval +endfunction gnat#New " }}}1 + +function gnat#Insert_Tags_Header () " {{{1 + 1insert +!_TAG_FILE_FORMAT 1 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR AdaCore /info@adacore.com/ +!_TAG_PROGRAM_NAME gnatxref // +!_TAG_PROGRAM_URL http://www.adacore.com /official site/ +!_TAG_PROGRAM_VERSION 5.05w // +. + return +endfunction gnat#Insert_Tags_Header " }}}1 + +finish " 1}}} + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: foldmethod=marker diff --git a/runtime/autoload/netrwFileHandlers.vim b/runtime/autoload/netrwFileHandlers.vim --- a/runtime/autoload/netrwFileHandlers.vim +++ b/runtime/autoload/netrwFileHandlers.vim @@ -1,8 +1,8 @@ " netrwFileHandlers: contains various extension-based file handlers for " netrw's browsers' x command ("eXecute launcher") " Author: Charles E. Campbell, Jr. -" Date: May 01, 2006 -" Version: 8 +" Date: May 30, 2006 +" Version: 9 " Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright @@ -22,16 +22,41 @@ if exists("g:loaded_netrwFileHandlers") endif let s:keepcpo= &cpo set cpo&vim -let g:loaded_netrwFileHandlers= "v8" +let g:loaded_netrwFileHandlers= "v9" " --------------------------------------------------------------------- " netrwFileHandlers#Invoke: {{{1 fun! netrwFileHandlers#Invoke(exten,fname) " call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)") + let fname= a:fname + " list of supported special characters. Consider rcs,v --- that can be + " supported with a NFH_rcsCOMMAv() handler + if a:fname =~ '[@:,$!=\-+%?;~]' + let specials= { +\ '@' : 'AT', +\ ':' : 'COLON', +\ ',' : 'COMMA', +\ '$' : 'DOLLAR', +\ '!' : 'EXCLAMATION', +\ '=' : 'EQUAL', +\ '-' : 'MINUS', +\ '+' : 'PLUS', +\ '%' : 'PERCENT', +\ '?' : 'QUESTION', +\ ';' : 'SEMICOLON', +\ '~' : 'TILDE'} + let fname= substitute(a:fname,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge') +" call Decho('fname<'.fname.'> done with dictionary') + endif - if a:exten != "" && exists("*s:NFH_".a:exten) -" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.a:fname.'")') - exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")' + if a:exten != "" && exists("*NFH_".a:exten) + " support user NFH_*() functions +" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")') + exe "let ret= NFH_".a:exten.'("'.fname.'")' + elseif a:exten != "" && exists("*s:NFH_".a:exten) + " use builtin-NFH_*() functions +" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")') + exe "let ret= s:NFH_".a:exten.'("'.fname.'")' endif " call Dret("netrwFileHandlers#Invoke 0 : ret=".ret) @@ -48,10 +73,10 @@ fun! s:NFH_html(pagefile) if executable("mozilla") " call Decho("executing !mozilla ".page) - exe "!mozilla \"".page.'"' + exe "!mozilla ".g:netrw_shq.page.g:netrw_shq elseif executable("netscape") " call Decho("executing !netscape ".page) - exe "!netscape \"".page.'"' + exe "!netscape ".g:netrw_shq..page.g:netrw_shq else " call Dret("s:NFH_html 0") return 0 @@ -71,10 +96,10 @@ fun! s:NFH_htm(pagefile) if executable("mozilla") " call Decho("executing !mozilla ".page) - exe "!mozilla \"".page.'"' + exe "!mozilla ".g:netrw_shq.page.g:netrw_shq elseif executable("netscape") " call Decho("executing !netscape ".page) - exe "!netscape \"".page.'"' + exe "!netscape ".g:netrw_shq.page.g:netrw_shq else " call Dret("s:NFH_htm 0") return 0 @@ -90,10 +115,10 @@ fun! s:NFH_jpg(jpgfile) " call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)") if executable("gimp") - exe "silent! !gimp -s ".a:jpgfile + exe "silent! !gimp -s ".g:netrw_shq.a:jpgfile.g:netrw_shq elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") " call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'")) - exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:jpgfile.'"' + exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:jpgfile.g:netrw_shq else " call Dret("s:NFH_jpg 0") return 0 @@ -109,9 +134,9 @@ fun! s:NFH_gif(giffile) " call Dfunc("s:NFH_gif(giffile<".a:giffile.">)") if executable("gimp") - exe "silent! !gimp -s ".a:giffile + exe "silent! !gimp -s ".g:netrw_shq.a:giffile.g:netrw_shq elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") - exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:giffile.'"' + exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:giffile.g:netrw_shq else " call Dret("s:NFH_gif 0") return 0 @@ -127,9 +152,9 @@ fun! s:NFH_png(pngfile) " call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)") if executable("gimp") - exe "silent! !gimp -s ".a:pngfile + exe "silent! !gimp -s ".g:netrw_shq.a:pngfile.g:netrw_shq elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") - exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pngfile.'"' + exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pngfile.g:netrw_shq else " call Dret("s:NFH_png 0") return 0 @@ -145,9 +170,9 @@ fun! s:NFH_pnm(pnmfile) " call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)") if executable("gimp") - exe "silent! !gimp -s ".a:pnmfile + exe "silent! !gimp -s ".g:netrw_shq.a:pnmfile.g:netrw_shq elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") - exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pnmfile.'"' + exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pnmfile.g:netrw_shq else " call Dret("s:NFH_pnm 0") return 0 @@ -165,7 +190,7 @@ fun! s:NFH_bmp(bmpfile) if executable("gimp") exe "silent! !gimp -s ".a:bmpfile elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE") - exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:bmpfile.'"' + exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:bmpfile.g:netrw_shq else " call Dret("s:NFH_bmp 0") return 0 @@ -180,7 +205,9 @@ endfun fun! s:NFH_pdf(pdf) " call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)") if executable("gs") - exe 'silent! !gs "'.a:pdf.'"' + exe 'silent! !gs '.g:netrw_shq.a:pdf.g:netrw_shq + elseif executable("pdftotext") + exe 'silent! pdftotext -nopgbrk '.g:netrw_shq.a:pdf.g:netrw_shq else " call Dret("s:NFH_pdf 0") return 0 @@ -196,7 +223,7 @@ fun! s:NFH_doc(doc) " call Dfunc("s:NFH_doc(doc<".a:doc.">)") if executable("oowriter") - exe 'silent! !oowriter "'.a:doc.'"' + exe 'silent! !oowriter '.g:netrw_shq.a:doc.g:netrw_shq redraw! else " call Dret("s:NFH_doc 0") @@ -213,7 +240,7 @@ fun! s:NFH_sxw(sxw) " call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)") if executable("oowriter") - exe 'silent! !oowriter "'.a:sxw.'"' + exe 'silent! !oowriter '.g:netrw_shq.a:sxw.g:netrw_shq redraw! else " call Dret("s:NFH_sxw 0") @@ -230,7 +257,7 @@ fun! s:NFH_xls(xls) " call Dfunc("s:NFH_xls(xls<".a:xls.">)") if executable("oocalc") - exe 'silent! !oocalc "'.a:xls.'"' + exe 'silent! !oocalc '.g:netrw_shq.a:xls.g:netrw_shq redraw! else " call Dret("s:NFH_xls 0") @@ -247,15 +274,15 @@ fun! s:NFH_ps(ps) " call Dfunc("s:NFH_ps(ps<".a:ps.">)") if executable("gs") " call Decho("exe silent! !gs ".a:ps) - exe "silent! !gs ".a:ps + exe "silent! !gs ".g:netrw_shq.a:ps.g:netrw_shq redraw! elseif executable("ghostscript") " call Decho("exe silent! !ghostscript ".a:ps) - exe "silent! !ghostscript ".a:ps + exe "silent! !ghostscript ".g:netrw_shq.a:ps.g:netrw_shq redraw! elseif executable("gswin32") -" call Decho("exe silent! !gswin32 \"".a:ps.'"') - exe "silent! !gswin32 \"".a:ps.'"' +" call Decho("exe silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq) + exe "silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq redraw! else " call Dret("s:NFH_ps 0") @@ -271,16 +298,16 @@ endfun fun! s:NFH_eps(eps) " call Dfunc("s:NFH_eps()") if executable("gs") - exe "silent! !gs ".a:eps + exe "silent! !gs ".g:netrw_shq.a:eps.g:netrw_shq redraw! elseif executable("ghostscript") - exe "silent! !ghostscript ".a:eps + exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq redraw! elseif executable("ghostscript") - exe "silent! !ghostscript ".a:eps + exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq redraw! elseif executable("gswin32") - exe "silent! !gswin32 \"".a:eps.'"' + exe "silent! !gswin32 ".g:netrw_shq.a:eps.g:netrw_shq redraw! else " call Dret("s:NFH_eps 0") @@ -325,4 +352,4 @@ endfun let &cpo= s:keepcpo " --------------------------------------------------------------------- " Modelines: {{{1 -" vim: ts=4 fdm=marker +" vim: fdm=marker diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim --- a/runtime/autoload/tar.vim +++ b/runtime/autoload/tar.vim @@ -1,8 +1,8 @@ " tar.vim: Handles browsing tarfiles " AUTOLOAD PORTION -" Date: May 02, 2006 -" Version: 9 -" Maintainer: Charles E Campbell, Jr +" Date: Sep 29, 2006 +" Version: 11 +" Maintainer: Charles E Campbell, Jr " License: Vim License (see vim's :help license) " " Contains many ideas from Michael Toren's @@ -18,13 +18,13 @@ " of this software. " --------------------------------------------------------------------- -" Initialization: {{{1 +" Load Once: {{{1 let s:keepcpo= &cpo set cpo&vim -if exists("g:loaded_tar") +if &cp || exists("g:loaded_tar") || v:version < 700 finish endif -let g:loaded_tar= "v9" +let g:loaded_tar= "v11" "call Decho("loading autoload/tar.vim") " --------------------------------------------------------------------- @@ -41,6 +41,13 @@ endif if !exists("g:tar_writeoptions") let g:tar_writeoptions= "uf" endif +if !exists("g:tar_shq") + if has("unix") + let g:tar_shq= "'" + else + let g:tar_shq= '"' + endif +endif " ---------------- " Functions: {{{1 @@ -55,8 +62,9 @@ fun! tar#Browse(tarfile) " sanity checks if !executable(g:tar_cmd) + redraw! echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() let &report= repkeep " call Dret("tar#Browse") return @@ -65,8 +73,9 @@ fun! tar#Browse(tarfile) " call Decho('a:tarfile<'.a:tarfile.'> not filereadable') if a:tarfile !~# '^\a\+://' " if its an url, don't complain, let url-handlers such as vim do its thing + redraw! echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() endif let &report= repkeep " call Dret("tar#Browse : file<".a:tarfile."> not readable") @@ -99,30 +108,26 @@ fun! tar#Browse(tarfile) endif let curlast= line("$") if tarfile =~# '\.\(gz\|tgz\)$' -" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ") - exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - " +" 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." - " elseif tarfile =~# '\.bz2$' -" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ") - exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - " +" 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." - " else -" call Decho("exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'") - exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'" +" 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 endif if v:shell_error != 0 + redraw! echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">" - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() " call Dret("tar#Browse : a:tarfile<".a:tarfile.">") - silent %d - let eikeep= &ei - set ei=BufReadCmd,FileReadCmd - exe "r ".a:tarfile - let &ei= eikeep - 1d return endif - if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~? '\c\%(warning\|error\|inappropriate\|unrecognized\)') + if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)') + redraw! echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() silent %d let eikeep= &ei set ei=BufReadCmd,FileReadCmd @@ -190,14 +195,14 @@ fun! tar#Read(fname,mode) " call Decho("fname<".fname.">") if tarfile =~# '\.\(gz\|tgz\)$' -" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'") - exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'" +" 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."'" elseif tarfile =~# '\.bz2$' -" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'") - exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'" +" 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."'" else -" call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'") - exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." '".tarfile."' '".fname."'" +" 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 endif let w:tarfile= a:fname exe "file tarfile:".fname @@ -219,15 +224,17 @@ fun! tar#Write(fname) " sanity checks if !executable(g:tar_cmd) + redraw! echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() let &report= repkeep " call Dret("tar#Write") return endif if !exists("*mkdir") + redraw! echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() let &report= repkeep " call Dret("tar#Write") return @@ -246,8 +253,9 @@ fun! tar#Write(fname) try exe "cd ".escape(tmpdir,' \') catch /^Vim\%((\a\+)\)\=:E344/ + redraw! echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() let &report= repkeep " call Dret("tar#Write") return @@ -282,8 +290,9 @@ fun! tar#Write(fname) endif if v:shell_error != 0 + redraw! echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() else " call Decho("tarfile<".tarfile."> fname<".fname.">") @@ -309,16 +318,18 @@ fun! tar#Write(fname) " call Decho("tar --delete -f '".tarfile."' '".fname."'") call system("tar --delete -f '".tarfile."' '".fname."'") if v:shell_error != 0 + redraw! echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" 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."'") if v:shell_error != 0 + redraw! echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None - call inputsave()|call input("Press to continue")|call inputrestore() +" call inputsave()|call input("Press to continue")|call inputrestore() elseif exists("compress") " call Decho("call system(".compress.")") call system(compress) @@ -376,4 +387,4 @@ 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/colors/koehler.vim b/runtime/colors/koehler.vim --- a/runtime/colors/koehler.vim +++ b/runtime/colors/koehler.vim @@ -2,7 +2,7 @@ " vim: tw=0 ts=4 sw=4 " Vim color file " Maintainer: Ron Aaron -" Last Change: 2006 Mar 26 +" Last Change: 2006 Dec 10 hi clear set background=dark @@ -13,11 +13,11 @@ let g:colors_name = "koehler" hi Normal guifg=white guibg=black hi Scrollbar guifg=darkcyan guibg=cyan hi Menu guifg=black guibg=cyan -hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=Blue -hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=Blue -hi Directory term=bold cterm=bold ctermfg=brown guifg=Blue -hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=blue guifg=White guibg=Red -hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red +hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=#cc0000 +hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=#cc0000 +hi Directory term=bold cterm=bold ctermfg=brown guifg=#cc8000 +hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=red guifg=White guibg=Red +hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=Yellow @@ -26,20 +26,20 @@ hi StatusLine term=bold,reverse cterm hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta hi Visual term=reverse cterm=reverse gui=reverse -hi WarningMsg term=standout cterm=bold ctermfg=darkblue guifg=Red +hi WarningMsg term=standout cterm=bold ctermfg=darkred guifg=Red hi Cursor guifg=bg guibg=Green hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0 hi Special term=bold cterm=bold ctermfg=red guifg=Orange hi Identifier term=underline ctermfg=brown guifg=#40ffff hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60 -hi PreProc term=underline ctermfg=darkblue guifg=#ff80ff +hi PreProc term=underline ctermfg=darkmagenta guifg=#ff80ff hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60 hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow -hi CursorLine term=underline guibg=#555555 -hi CursorColumn term=underline guibg=#555555 -hi MatchParen term=reverse guibg=Blue +hi CursorLine term=underline guibg=#555555 cterm=underline +hi CursorColumn term=underline guibg=#555555 cterm=underline +hi MatchParen term=reverse ctermfg=blue guibg=Blue hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue diff --git a/runtime/compiler/decada.vim b/runtime/compiler/decada.vim new file mode 100644 --- /dev/null +++ b/runtime/compiler/decada.vim @@ -0,0 +1,54 @@ +"------------------------------------------------------------------------------ +" Description: Vim Ada/Dec Ada compiler file +" Language: Ada (Dec Ada) +" $Id$ +" Copyright: Copyright (C) 2006 Martin Krischik +" Maintainer: Martin Krischik +" $Author$ +" $Date$ +" Version: 4.2 +" $Revision$ +" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $ +" History: 21.07.2006 MK New Dec Ada +" 15.10.2006 MK Bram's suggestion for runtime integration +" Help Page: compiler-decada +"------------------------------------------------------------------------------ + +if (exists("current_compiler") && + \ current_compiler == "decada") || + \ version < 700 + finish +endif + +let current_compiler = "decada" + +if !exists("g:decada") + let g:decada = decada#New () +endif + +if exists(":CompilerSet") != 2 + " + " plugin loaded by other means then the "compiler" command + " + command -nargs=* CompilerSet setlocal +endif + +call g:decada.Set_Session () + +execute "CompilerSet makeprg=" . escape (g:decada.Make_Command, ' ') +execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ') + +call ada#Map_Menu ( + \'Dec Ada.Build', + \'', + \'call decada.Make ()') + +finish " 1}}} + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: foldmethod=marker diff --git a/runtime/compiler/gnat.vim b/runtime/compiler/gnat.vim new file mode 100644 --- /dev/null +++ b/runtime/compiler/gnat.vim @@ -0,0 +1,71 @@ +"------------------------------------------------------------------------------ +" Description: Vim Ada/GNAT compiler file +" Language: Ada (GNAT) +" $Id$ +" Copyright: Copyright (C) 2006 Martin Krischik +" Maintainer: Martin Krischik +" $Author$ +" $Date$ +" Version: 4.2 +" $Revision$ +" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $ +" History: 24.05.2006 MK Unified Headers +" 16.07.2006 MK Ada-Mode as vim-ball +" 15.10.2006 MK Bram's suggestion for runtime integration +" Help Page: compiler-gnat +"------------------------------------------------------------------------------ + +if (exists("current_compiler") && + \ current_compiler == "gnat") || + \ version < 700 + finish +endif + +let current_compiler = "gnat" + +if !exists("g:gnat") + let g:gnat = gnat#New () + + call ada#Map_Menu ( + \ 'GNAT.Build', + \ '', + \ 'call gnat.Make ()') + call ada#Map_Menu ( + \ 'GNAT.Pretty Print', + \ ':GnatPretty', + \ 'call gnat.Pretty ()') + call ada#Map_Menu ( + \ 'GNAT.Tags', + \ ':GnatTags', + \ 'call gnat.Tags ()') + call ada#Map_Menu ( + \ 'GNAT.Find', + \ ':GnatFind', + \ 'call gnat.Find ()') + call ada#Map_Menu ( + \ 'GNAT.Set Projectfile\.\.\.', + \ ':SetProject', + \ 'call gnat.Set_Project_File ()') +endif + +if exists(":CompilerSet") != 2 + " + " plugin loaded by other means then the "compiler" command + " + command -nargs=* CompilerSet setlocal +endif + +call g:gnat.Set_Session () + +execute "CompilerSet makeprg=" . escape (g:gnat.Get_Command('Make'), ' ') +execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ') + +finish " 1}}} + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +" vim: foldmethod=marker diff --git a/runtime/compiler/mcs.vim b/runtime/compiler/mcs.vim new file mode 100644 --- /dev/null +++ b/runtime/compiler/mcs.vim @@ -0,0 +1,24 @@ +" Vim compiler file +" Compiler: Mono C# Compiler +" Maintainer: Jarek Sobiecki +" Latest Revision: 2006-06-18 + +if exists("current_compiler") + finish +endif +let current_compiler = "mcs" + +let s:cpo_save = &cpo +set cpo-=C + +setlocal errorformat= + \%E%f(%l\\,%c):\ error\ CS%n:%m, + \%W%f(%l\\,%c):\ warning\ CS%n:%m, + \%E%>syntax\ error\\,%m,%Z%f(%l\\,%c):\ error\ CS%n:%m, + \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f', + \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f', + \%DMaking\ %*\\a\ in\ %f, + \%G-%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/doc/ada.txt b/runtime/doc/ada.txt new file mode 100644 --- /dev/null +++ b/runtime/doc/ada.txt @@ -0,0 +1,515 @@ +*ada.txt* For Vim version 7.1a. Last change: 2006 Nov 12 + + + 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 informations (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 informations 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 it's own multi-language code parser. The parser is quite +fast, produces a lot of extra informations (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 (unuseable) 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_) informations 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 encoding=latin1 diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt --- a/runtime/doc/arabic.txt +++ b/runtime/doc/arabic.txt @@ -1,4 +1,4 @@ -*arabic.txt* For Vim version 7.0. Last change: 2005 Mar 29 +*arabic.txt* For Vim version 7.1a. Last change: 2005 Mar 29 VIM REFERENCE MANUAL by Nadim Shaikli 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.0. Last change: 2005 Mar 29 +*farsi.txt* For Vim version 7.1a. 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.0. Last change: 2006 Apr 28 +*filetype.txt* For Vim version 7.1a. Last change: 2007 Mar 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -43,6 +43,8 @@ Detail: The ":filetype on" command will BufNewFile and BufRead events. If the file type is not found by the name, the file $VIMRUNTIME/scripts.vim is used to detect it from the contents of the file. + When the GUI is running or will start soon, the menu.vim script is + also sourced. See |'go-M'| about avoiding that. To add your own file types, see |new-filetype| below. To search for help on a filetype prepend "ft-" and optionally append "-syntax", "-indent" or @@ -304,24 +306,28 @@ all loaded. For example, if this comman set runtimepath -produces this output: > +produces this output: - runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 + runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 ~ -then Vim will load all plugins in these directories: > +then Vim will load all plugins in these directories and below: - /etc/vim/plugin/ - ~/.vim/plugin/ - /usr/local/share/vim/vim60/plugin/ + /etc/vim/plugin/ ~ + ~/.vim/plugin/ ~ + /usr/local/share/vim/vim60/plugin/ ~ Note that the last one is the value of $VIMRUNTIME which has been expanded. What if it looks like your plugin is not being loaded? You can find out what happens when Vim starts up by using the |-V| argument: > - vim -V1 + + vim -V2 + You will see a lot of messages, in between them is a remark about loading the -plugins. It starts with: > - Searching for "plugin/*.vim" in +plugins. It starts with: + + Searching for "plugin/**/*.vim" in ~ + There you can see where Vim looks for your plugin scripts. ============================================================================== diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt --- a/runtime/doc/hebrew.txt +++ b/runtime/doc/hebrew.txt @@ -1,4 +1,4 @@ -*hebrew.txt* For Vim version 7.0. Last change: 2003 May 11 +*hebrew.txt* For Vim version 7.1a. Last change: 2003 May 11 VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem) 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.0. Last change: 2006 Apr 02 +*howto.txt* For Vim version 7.1a. 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.0. Last change: 2006 Apr 20 +*intro.txt* For Vim version 7.1a. Last change: 2006 Apr 20 VIM REFERENCE MANUAL by Bram Moolenaar 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.0. Last change: 2005 Mar 29 +*os_amiga.txt* For Vim version 7.1a. 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.0. Last change: 2006 Mar 30 +*os_dos.txt* For Vim version 7.1a. 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.0. Last change: 2006 Apr 30 +*os_win32.txt* For Vim version 7.1a. Last change: 2007 Apr 22 VIM REFERENCE MANUAL by George Reilly @@ -269,7 +269,7 @@ A. When writing a file Vim renames the o Q. How do I get to see the output of ":make" while it's running? A. Basically what you need is to put a tee program that will copy its input (the output from make) to both stdout and to the errorfile. You can find a - copy of tee (and a number of other GNU tools tools) at + copy of tee (and a number of other GNU tools) at http://gnuwin32.sourceforge.net or http://unxutils.sourceforge.net Alternatively, try the more recent Cygnus version of the GNU tools at http://www.cygwin.com Other Unix-style tools for Win32 are listed at diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt --- a/runtime/doc/pattern.txt +++ b/runtime/doc/pattern.txt @@ -1,4 +1,4 @@ -*pattern.txt* For Vim version 7.0. Last change: 2006 Apr 30 +*pattern.txt* For Vim version 7.1a. Last change: 2007 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -587,7 +587,7 @@ overview. {Vi does not have any of these} n and m are positive decimal numbers or zero - + *non-greedy* If a "-" appears immediately after the "{", then a shortest match first algorithm is used (see example below). In particular, "\{-}" is the same as "*" but uses the shortest match first algorithm. BUT: A @@ -969,7 +969,7 @@ x A single character, with no special me [xyz] any 'x', 'y' or 'z' [a-zA-Z]$ any alphabetic character at the end of a line \c[a-z]$ same - + */[\n]* With "\_" prepended the collection also includes the end-of-line. The same can be done by including "\n" in the collection. The end-of-line is also matched when the collection starts with "^"! Thus @@ -1042,6 +1042,7 @@ x A single character, with no special me \t \r (NOT end-of-line!) \b + \n line break, see above |/[\n]| \d123 decimal number of character \o40 octal number of character up to 0377 \x20 hexadecimal number of character up to 0xff @@ -1068,6 +1069,8 @@ x A single character, with no special me You don't often have to use it, but it is possible. Example: > /\ < Matches the words "r", "re", "ro", "rea", "roa", "read" and "road". + There can be no \(\), \%(\) or \z(\) items inside the [] and \%[] does + not nest. {not available when compiled without the +syntax feature} */\%d* */\%x* */\%o* */\%u* */\%U* *E678* @@ -1145,7 +1148,7 @@ composing character by itself, except th this. The order of composing characters matters, even though changing the order -doen't change what a character looks like. This may change in the future. +doesn't change what a character looks like. This may change in the future. ============================================================================== 9. Compare with Perl patterns *perl-patterns* @@ -1219,6 +1222,10 @@ 10. Highlighting matches *match-highl 'ignorecase' does not apply, use |/\c| in the pattern to ignore case. Otherwise case is not ignored. + When matching end-of-line and Vim redraws only part of the + display you may get unexpected results. That is because Vim + looks for a match in the line where redrawing starts. + Also see |matcharg()|, it returns the highlight group and pattern of a previous :match command. 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.0. Last change: 2006 Apr 24 +*pi_spec.txt* For Vim version 7.1a. Last change: 2006 Apr 24 by Gustavo Niemeyer ~ diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt --- a/runtime/doc/quotes.txt +++ b/runtime/doc/quotes.txt @@ -1,4 +1,4 @@ -*quotes.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*quotes.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Bram Moolenaar 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.0. Last change: 2006 Apr 30 +*remote.txt* For Vim version 7.1a. Last change: 2006 Apr 30 VIM REFERENCE MANUAL by Bram Moolenaar diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 7.0. Last change: 2006 Apr 30 +*repeat.txt* For Vim version 7.1a. Last change: 2007 Jan 07 VIM REFERENCE MANUAL by Bram Moolenaar @@ -53,6 +53,13 @@ 2. Multiple repeats *multi-repeat* :[range]v[global]/{pattern}/[cmd] Same as :g!. +Instead of the '/' which surrounds the {pattern}, you can use any other +single byte character, but not an alphanumeric character, '\', '"' or '|'. +This is useful if you want to include a '/' in the search pattern or +replacement string. + +For the definition of a pattern, see |pattern|. + The global commands work by first scanning through the [range] lines and marking each line where a match occurs (for a multi-line pattern, only the start of the match matters). @@ -656,4 +663,7 @@ mind there are various things that may c - Profiling may give weird results on multi-processor systems, when sleep mode kicks in or the processor frequency is reduced to save power. +- The "self" time is wrong when a function is used recursively. + + vim:tw=78:ts=8:ft=help:norl: 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.0. Last change: 2006 Apr 24 +*scroll.txt* For Vim version 7.1a. Last change: 2006 Aug 27 VIM REFERENCE MANUAL by Bram Moolenaar @@ -223,7 +223,7 @@ jump to a location where the current win behavior can be changed by clearing the 'jump' flag from the 'scrollopt' option. - *syncbind* *:syncbind* + *syncbind* *:syncbind* *:sync* :syncbind Force all 'scrollbind' windows to have the same relative offset. I.e., when any of the 'scrollbind' windows is scrolled to the top of its buffer, all of diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt --- a/runtime/doc/spell.txt +++ b/runtime/doc/spell.txt @@ -1,4 +1,4 @@ -*spell.txt* For Vim version 7.0. Last change: 2006 Apr 30 +*spell.txt* For Vim version 7.1a. Last change: 2007 Apr 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -16,6 +16,10 @@ 4. Spell file format |spell-file-format Spell checking is not available when the |+syntax| feature has been disabled at compile time. +Note: There also is a vimspell plugin. If you have it you can do ":help +vimspell" to find about it. But you will probably want to get rid of the +plugin and use the 'spell' option instead, it works better. + ============================================================================== 1. Quick start *spell-quickstart* @@ -409,6 +413,7 @@ 3. everywhere but specific items use " For the second method adding the @NoSpell cluster will disable spell checking again. This can be used, for example, to add @Spell to the comments of a program, and add @NoSpell for items that shouldn't be checked. +Also see |:syn-spell| for text that is not in a syntax item. VIM SCRIPTS @@ -465,7 +470,7 @@ the word list and keeps it small. You can create a Vim spell file from the .aff and .dic files that Myspell uses. Myspell is used by OpenOffice.org and Mozilla. You should be able to find them here: - http://lingucomponent.openoffice.org/spell_dic.html + http://wiki.services.openoffice.org/wiki/Dictionaries You can also use a plain word list. The results are the same, the choice depends on what word lists you can find. @@ -546,7 +551,7 @@ 1. Obtain the xx_YY.aff and xx_YY.dic fi 2. Make a copy of these files to xx_YY.orig.aff and xx_YY.orig.dic. 3. Change the xx_YY.aff and xx_YY.dic files to remove bad words, add missing words, define word characters with FOL/LOW/UPP, etc. The distributed - "src/spell/*.diff" files can be used. + "*.diff" files can be used. 4. Start Vim with the right locale and use |:mkspell| to generate the Vim spell file. 5. Try out the spell file with ":set spell spelllang=xx" if you wrote it in @@ -646,7 +651,7 @@ exceptions: only ASCII letters for most of the words. The default "spellfile.vim" plugin uses this autocommand, if you define your -autocommand afterwars you may want to use ":au! SpellFileMissing" to overrule +autocommand afterwards you may want to use ":au! SpellFileMissing" to overrule it. If you define your autocommand before the plugin is loaded it will notice this and not do anything. @@ -1332,7 +1337,7 @@ With the example "ideeen" has three syll Only case-folded letters need to be included. -Above another way to restrict compounding was mentioned above: Adding the +Another way to restrict compounding was mentioned above: Adding the |spell-COMPOUNDFORBIDFLAG| flag to an affix causes all words that are made with that affix not be be used for compounding. @@ -1510,7 +1515,7 @@ COMPLEXPREFIXES (Hunspell) *spell-CO Enables using two prefixes. Not supported. COMPOUND (Hunspell) *spell-COMPOUND* - This is one line with the count of COMPOUND items, followd by + This is one line with the count of COMPOUND items, followed by that many COMPOUND lines with a pattern. Remove the first line with the count and rename the other items to COMPOUNDRULE |spell-COMPOUNDRULE| diff --git a/runtime/doc/sql.txt b/runtime/doc/sql.txt --- a/runtime/doc/sql.txt +++ b/runtime/doc/sql.txt @@ -1,4 +1,4 @@ -*sql.txt* For Vim version 7.0. Last change: Wed Apr 26 2006 3:05:33 PM +*sql.txt* For Vim version 7.1a. Last change: Wed Apr 26 2006 3:05:33 PM by David Fishburn @@ -632,7 +632,7 @@ your |vimrc|: > - When completing tables, procedure or views and using dbext.vim 3.00 or higher the list of objects will also include the owner name. When completing these objects and omni_sql_include_owner is enabled - the owner name will be be replaced. > + the owner name will be replaced. > omni_sql_precache_syntax_groups < - Default: diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 7.0. Last change: 2006 Apr 25 +*starting.txt* For Vim version 7.1a. Last change: 2007 Apr 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -311,12 +311,16 @@ a slash. Thus "-R" means recovery and " Messages will be given for each file that is ":source"d and for reading or writing a viminfo file. Can be used to find out what is happening upon startup and exit. {not in Vi} + Example: > + vim -V8 foobar -V[N]{filename} Like -V and set 'verbosefile' to {filename}. The result is that messages are not displayed but written to the file {filename}. {filename} must not start with a digit. - + Example: > + vim -V20vimlog foobar +< *-D* -D Debugging. Go to debugging mode when executing the first command from a script. |debug-mode| @@ -537,7 +541,7 @@ a slash. Thus "-R" means recovery and " See |--remote-expr|. {not in Vi} --serverlist Output a list of Vim server names and exit. See - See |--serverlist|. {not in Vi} + |--serverlist|. {not in Vi} --socketid {id} *--socketid* GTK+ GUI Vim only. Make gvim try to use GtkPlug mechanism, so @@ -905,9 +909,10 @@ set, it will be set to 'nocompatible'. resetting other options (see 'compatible'). But only the options that have not been set or reset will be changed. This has the same effect like the value of 'compatible' had this value when starting Vim. Note that this -doesn't happen for the system-wide vimrc file. It does also happen for gvimrc -files. The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc -and/or gvimrc file. +doesn't happen for the system-wide vimrc file nor when Vim was started with +the |-u| command line argument. It does also happen for gvimrc files. The +$MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or gvimrc +file. But there is a side effect of setting or resetting 'compatible' at the moment a .vimrc file is found: Mappings are interpreted the moment they are @@ -1200,8 +1205,8 @@ 7. Reloads the buffer list, with the las including hidden and unloaded buffers. Otherwise only buffers in windows are restored. 8. Restores all windows with the same layout. If 'sessionoptions' contains - contains "help", help windows are restored. If 'sessionoptions' contains - "blank", windows editing a buffer without a name will be restored. + "help", help windows are restored. If 'sessionoptions' contains "blank", + windows editing a buffer without a name will be restored. If 'sessionoptions' contains "winsize" and no (help/blank) windows were left out, the window sizes are restored (relative to the screen size). Otherwise, the windows are just given sensible sizes. 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.0. Last change: 2006 Apr 30 +*syntax.txt* For Vim version 7.1a. Last change: 2007 May 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -467,52 +467,9 @@ abel_obsolete_ok obsolete keywords are abel_cpp_comments_illegal do not interpret '//' as inline comment leader -ADA *ada.vim* *ft-ada-syntax* - -This mode is designed for the 1995 edition of Ada ("Ada95"), which -includes support for objected-programming, protected types, and so on. -It handles code written for the original Ada language -("Ada83" or "Ada87") as well, though Ada83 code which uses Ada95-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 colored the same way as C's -"#include" is colored. If you have "Conditional" or "Repeat" -groups colored differently, then "end if" and "end loop" will be -colored as part of those respective groups. -You can set these to different colors using vim's "highlight" command -(e.g., to change how loops are displayed, enter the command -":hi Repeat" followed by the color specification; on simple terminals -the color specification ctermfg=White often shows well). - -There are several options you can select in this Ada mode. -To enable them, assign a value to the option. For example, to turn one on: - let ada_standard_types = 1 -To disable them use ":unlet". Example: - unlet ada_standard_types = 1 -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. - -Here are the Ada mode options: - -Variable Action ~ -ada_standard_types Highlight types in package Standard (e.g., "Float") -ada_space_errors Highlight extraneous errors in spaces... -ada_no_trail_space_error but ignore trailing spaces at the end of a line -ada_no_tab_space_error but ignore tabs after spaces -ada_withuse_ordinary Show "with" and "use" as ordinary keywords - (when used to reference other compilation units - they're normally highlighted specially). -ada_begin_preproc Show all begin-like keywords using the coloring - of C preprocessor commands. - -Even on a slow (90Mhz) PC this mode works quickly, but if you find -the performance unacceptable, turn on ada_withuse_ordinary. +ADA + +See |ft-ada-syntax| ANT *ant.vim* *ft-ant-syntax* @@ -903,10 +860,6 @@ or in a modeline by appending '.doxygen' or > // vim:syntax=c.doxygen -To use doxygen formatting on top of any filetype, add the following to your -.vimrc for each filetype, replacing {filetype} with the relevent value. > - :let g:syntax_extra_{filetype}='doxygen' - It can also be done automaticly for c, cpp and idl files by setting the global or buffer-local variable load_doxygen_syntax. This is done by adding the following to your .vimrc. > @@ -2339,6 +2292,8 @@ Folding can be enabled by defining "ruby This will set the 'foldmethod' option to "syntax" and allow folding of classes, modules, methods, code blocks, heredocs and comments. + + SCHEME *scheme.vim* *ft-scheme-syntax* By default only R5RS keywords are highlighted and properly indented. @@ -2598,6 +2553,16 @@ 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? ~ + +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 +package you'll often wish that the distributed syntax/tex.vim would support +it. However, clearly this is impractical. So please consider using the +techniques in |mysyntaxfile-add| to extend or modify the highlighting provided +by syntax/tex.vim. + *tex-error* Excessive Error Highlighting? ~ @@ -4396,7 +4361,7 @@ Put these lines in your Makefile: # Make a highlight file for types. Requires Exuberant ctags and awk types: types.vim types.vim: *.[ch] - ctags -i=gstuS -o- *.[ch] |\ + ctags --c-kinds=gstu -o- *.[ch] |\ awk 'BEGIN{printf("syntax keyword Type\t")}\ {printf("%s ", $$1)}END{print ""}' > $@ @@ -4504,7 +4469,7 @@ You probably want to use these X resourc [Note: The cursorColor is required to work around a bug, which changes the cursor color to the color of the last drawn text. This has been fixed by a -newer version of xterm, but not everybody is it using yet.] +newer version of xterm, but not everybody is using it yet.] To get these right away, reload the .Xdefaults file to the X Option database Manager (you only need to do this when you just changed the .Xdefaults file): > @@ -4520,7 +4485,7 @@ these resources: XTerm*cursorColor: White *hpterm-color* -These settings work (more or less) for a hpterm, which only supports 8 +These settings work (more or less) for an hpterm, which only supports 8 foreground colors: > :if has("terminfo") : set t_Co=8 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.0. Last change: 2006 Apr 24 +*tagsrch.txt* For Vim version 7.1a. 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.0. Last change: 2006 May 07 +*todo.txt* For Vim version 7.1a. Last change: 2007 May 05 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,9 +30,476 @@ 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) + +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. + +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) + +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) + +C syntax: {} inside () causes following {} to be highlighted as error. +(Michalis Giannakidis, 2006 Jun 1) + +Gnome improvements: Edward Catmur, 2007 Jan 7 + Also use Save/Discard for other GUIs + +New PHP syntax file, use it? (Peter Hodge) + +'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) + +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) + +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. + +When opening quickfix window, disable spell checking? + +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 + +Color for cUserLabel should differ from case label, so that a mistake in a +switch list is noticed: + switch (i) + { + case 1: + 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. + +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. + +Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2) + +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 +patches by Mathias, see mail Feb 22) + +Win32: compiling with normal features and OLE fails. Patch by Mathias +Michaelis, 2006 Jun 4. + +Win32: echo doesn't work for gvim.exe.mnf. Use inline file. Patch by Mathias +Michaelis. http://groups.yahoo.com/group/vimdev/message/43765 +Patch that includes this and does more by George Reilly, 2007 Feb 12 + +Win16: include patches to make Win16 version work. (Vince Negri, 2006 May 22) + +Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis, +2007 Feb 18) + +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) + +Win64: diff.exe crashes on Win64. (Julianne Bailey, 2006 Dec 12) +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. + +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. + +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. + +Spell checking in popup menu: If the only problem is the case of the first +character, don't offer "ignore" and "add to word list". + +":helpgrep" should use the directory from 'helpfile'. + +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. +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) + +input() completion should not insert a backslash to escape a space in a file +name? + +getpos()/setpos() don't include curswant. getpos() could return a fifth +element. setpos() could accept an optional fifth element. + +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 "\\(" +will be seen as a path separator plus "\(". + +":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye) +Check directory and call shorten_fnames()? + +aucmd_prepbuf() should also use a window in another tab page. + +Substituting an area with a line break with almost the same area does change +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) + +GUI: When combining fg en bg make sure they are not equal. + +Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006 +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) + +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 +then. + +These two abbreviations don't give the same result: + let asdfasdf = "xyz\" + cabbr XXX =asdfasdf + cabbr YYY xyz + +Michael Dietrich: maximized gvim sometimes displays output of external command +partly. (2006 Dec 7) + +In FileChangedShell command it's no longer allowed to switch to another +buffer. But the changed buffer may differ from the current buffer, how to +reload it then? + +New syntax files for fstab and resolv from Radu Dineiu, David Necas did +previous version. + +For Aap: include a config.arg.example file with hints how to use config.arg. + +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 + xfree-xterm". +- Suggest including bare "vi" and "vim" with X11, syntax, etc. + +Completion menu: For a wrapping line, completing a long file name, only the +start of the path is shown in the menu. Should move the menu to the right to +show more text of the completions. Shorten the items that don't fit in the +middle? + +When running inside screen it's possible to kill the X server and restart it +(using pty's the program can keep on running). Vim dies because it looses the +connection to the X server. Can Vim simply quit using the X server instead of +dying? Also relevant when running in a console. + +Accessing file#var in a function should not need the g: prepended. + +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" + - getting colors in xterm + - compiling Vim with X11, GUI, etc. + +Problem with ":call" and dictionary function. Hari Krishna Dara, Charles +Campbell 2006 Jul 06. + +Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6) + +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) +Problem is that gui_mch_set_text_area_pos() is invoked to change the text area +size, which causes the toplevel window to resize. When doing this while the +size is already right the filler remains there. +Detect using the maximize button (GdkWindowState bit +GDK_WINDOW_STATE_MAXIMIZED) and set it again? + +Another resizing problem when setting 'columns' and 'lines' to a very large +number. (Tony Mechelynck, 2007 Feb 6) + +Mutt files are not always recognized. Change pattern to include +non-alphanumeric characters. (Gary Johnson, 2006 Jul 25) + +Problem with using :redir in user command completion function? (Hari Krishna +Dara, 2006 June 21) + +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 +copy/paste: is stopping the X server handled gracefully? Should catch the X +error and stop using the connection to the server. + +Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006 +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. + +The magic clipboard format "VimClipboard2" appears in several places. Should +be only one. + +It's difficult to debug numbered functions (function in a Dictionary). Print +the function name before resolving it to a number? + let d = {} + fun! d.foo() + echo "here" + endfun + call d.foo(9) + +Add a mark for the other end of the Visual area (VIsual pos). '< and '> are +only set after Visual moded is ended. + +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) + +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) +- 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: +- Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3) +- Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct + 21) +- Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs + patch May 10) +- Extra argument to strtrans() to translate special keys to their name (Eric + Arnold, 2006 May 22) +- 'threglookexp' option: only match with first word in thesaurus file. + (Jakson A. Aquino, 2006 Jun 14) +- Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30) +- Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16) +- 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) +- recognize hex numbers better. (Mark Manning, 2006 Sep 13) + Awaiting updated patches: 9 Mac unicode patch (Da Woon Jung, Eckehard Berns): @@ -44,6 +511,8 @@ 9 Mac unicode patch (Da Woon Jung, Eck - With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work. (Alan Schmitt) - remove 'macatsui' option when this has been fixed. + - 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? 8 Win32: Add minidump generation. (George Reilly, 2006 Apr 24) @@ -89,6 +558,8 @@ 8 Add functions: (2003 May 13) raisewin() raise gvim window (see HierAssist patch for 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) 7 Add patch from Benoit Cerrina to integrate Vim and Perl functions better. Now also works for Ruby (2001 Nov 10) @@ -211,6 +682,8 @@ 9 Can't paste a Visual selection from Win32 GUI known bugs: - Win32: tearoff menu window should have a scrollbar when it's taller than the screen. +8 non-ASCII font names don't work. Need to convert from 'encoding' and use + the wide functions. 8 On Windows 98 the unicows library is needed to support functions with UCS2 file names. Can we load unicows.dll dynamically? 8 When the primary monitor is below or right of the secondary monitor and @@ -252,7 +725,6 @@ 8 When activating the Vim window with 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 Windows NT: writing to aux.* makes Vim hang. (Acevedo) 8 Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that comes available. (Poucet) It works OK on Win 98 but doesn't work on Win NT 4.0. Leaves a grey area where the scrollbar was. ":set go+=r" also @@ -569,12 +1041,16 @@ 7 Loading the Perl library only works 8 Inputting Unicode characters does not work in the terminal. They appear to arrive as upper and lower bytes. (David Brown, 2004 April 17) 8 Typing Unicode characters doesn't work at all in the GUI. +8 inputdialog() doesn't resize when giving more text lines. (David Fishburn, + 2006 Sept 28) 9 Problems in Carbon version for OS X: (Benji Fisher) - keyboard shortcuts in the menus get lost. 8 The Vim/About menu doesn't work. 8 ":gui" doesn't fork. Enabling the code in gui.c to fork causes a SEGV. 8 Define vim_mkdir() for Macintosh. 8 Define mch_writable() for Macintosh. +8 Some file systems are case-sensitive, some are not. Turn + CASE_INSENSITIVE_FILENAME into an option, at least for completion. 9 When DiskLock is running, using a swap file causes a crash. Appears to be a problem with writing a file that starts with a dot. (Giacalone) 9 On G3 Mac, OS version 8, control strip causes characters messed up when @@ -587,6 +1063,10 @@ 8 Handling of non-fixed width fonts is "Small" problems: +- 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 @@ -606,11 +1086,10 @@ 7 Vimtutor leaves escape sequence in t 8 When redirecting and using ":silent" the current column for displaying and redirection can be different. Use a separate variable to hold the column for redirection. -7 There is no way to change directory and go back without changing the local - and/or global directory. Add a way to find out if the current window uses - a local directory. Add cdcmd() that returns ":cd" or ":lcd"? 7 The messages for "vim --help" and "vim --version" don't use 'termencoding'. +- Could the hit-enter prompt be avoided when a message only overlaps the + 'showcmd' area? Clear that area when the next cmd is typed. 8 When 'scrollbind' is set, a window won't scroll horizontally if the cursor line is too short. Add a word in 'scrollopt' to allow moving the cursor to longer line that is visible. A similar thing is done for the GUI when @@ -629,6 +1108,7 @@ 8 "stl" and "stlnc" in 'fillchars' don 8 When doing Insert mode completion a mapping cannot recursively call edit(), because the completion information is global. Put everything in an allocated structure? +6 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack) 8 Command line completion: buffers "foo.txt" and "../b/foo.txt", completing ":buf foo" doesn't find the second one. (George V. Reilly) 7 Output for ":scriptnames" and ":breaklist" should shorten the file names: @@ -650,9 +1130,6 @@ 7 ":botright 1 new" twice causes all w 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 The argument of a user command doesn't handle backslashes - properly. "Cmd \ e" is one argument, "Cmd \\ e" still is one argument. - "Cmd \ e" is two arguments, first one ending in space. (Kontra Gergely) 9 User commands use the context of the script they were defined in. This causes a "s:var" argument to unexpectedly use a variable in the defining script, not the calling script. Add an argument to ":command": @@ -684,6 +1161,8 @@ 8 ":s!from!to!" works, but ":smagic!fr 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 "+" + is a multi-byte character. 8 When appending to a file and 'patchmode' isn't empty, a backup file is always written, even when the original file already exists. 7 When using "daw" on the last word in a file and this is a single letter, @@ -699,6 +1178,8 @@ 8 The script ID that is stored with an 'foldlevel' is set from 'foldlevelstart'. 8 Also store the line number with the script ID and use it for ":verbose", so that "set nocompatible" is found when it changes other option values. + When an option is set indirectly mention the command? E.g. when + ":diffsplit" sets 'foldmethod'. 8 In the fileformat dialog, "Cancel" isn't translated. Add a global variable for this. (Eduardo Fernandez) 9 When editing a file with 'readonly' set, there is no check for an existing @@ -831,6 +1312,8 @@ 8 When dragging status line with mouse 8 Dragging the status line doesn't scroll but redraw. 9 Evaluating 'statusline' in build_stl_str_hl() does not properly check for reaching the end of the available buffer. + Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006 + May 14) 8 When performing incremental search, should abort searching as soon as a character is typed. 8 When the value of $MAKE contains a path, configure can't handle this. @@ -890,6 +1373,7 @@ Problems that will (probably) not be sol XtOpenDisplay() prints this directly, there is no way to avoid it. - X windows: Setting 'guifontset' to an illegal value sometimes crashes Vim. This is caused by a fault in a X library function, can't be solved in Vim. +- Win32 tcl: has("tcl") hangs when the tcl84.dll is from cygwin. - Motif: When adding a menu item "Find this &Symbol", the "s" in "this" will be underlined, instead of in "Symbol". Motif doesn't let us specify which character gets the highlighting. @@ -987,6 +1471,7 @@ Didn't make it into Vim 7.0: 198 standard http://www.jcp.org/en/jsr/detail?id=198. Eclim does it: http://eclim.sourceforge.net/ (Eric Van Dewoestine) Plugin that uses a terminal emulator: http://vimplugin.sf.net + And another one: http://www.satokar.com/viplugin/index.php - STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is. Especially when using the scrollbar. Typing a cursor-movement command scrolls back to where the cursor is. @@ -1003,6 +1488,8 @@ 8 Add a command to jump to a certain k Documentation: +8 List of Vim runtime directories. dotvim.txt from Charles Campbell, 2007 + Feb 20. 8 The GUI help should explain the Find and Find/Replace dialogs. Add a link to it from ":promptrepl" and ":promptfind". 8 List of options should mention whether environment variables are expanded @@ -1084,6 +1571,10 @@ 8 Support saving and restoring session Tab pages: 9 GUI implementation for the tab pages line for other systems. +7 GUI: Control over the appearance of the text in the labels (bold, color, + font, etc.) +9 Make it possible to drag a tab page label to another position with the + mouse. 8 Make GUI menu in tab pages line configurable. Like the popup menu. 8 balloons for the tab page labels that are shortened to show the full path. 8 :tabmove +N move tab page N pages forward @@ -1095,15 +1586,27 @@ 7 Add local variables for each tab pag 8 Add local options for each tab page? E.g., 'diffopt' could differ between tab pages. 7 Add local highlighting for each tab page? +7 Add local directory for tab pages? How would this interfere with + window-local directories? Spell checking: +- Support more regions? Caolan McNamara argues it's needed for es_XX. + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777 +- Unicode defines another quote character: 0x2019. Use it as an equivalent + of a single quote, thus use it as a word character like a quote and match + with words, replacing the curly quote with a single quote. +- Could filter é things for HTML before doing spell checking. + Similarly for TeX. - The Hungarian spell file uses four extra characters in the FOL/UPP/LOW items than other spell files with the ISO-8859-2 encoding, that causes problem when changing 'spelllang'. There is no obvious way to fix this. - Considering Hunspell 1.1.4: What does MAXNGRAMSUGS do? Is COMPLEXPREFIXES necessary when we have flags for affixes? +- 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) 8 ":mkspell" still takes much too long in Hungarian dictionary from hunspell. Only solution appears to be to postpone secondary suffixes. 8 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG. @@ -1190,7 +1693,11 @@ 7 Add cursor-binding: when moving the Folding: (commands still available: zI zJ zK zp zP zq zQ zV zy zY; secondary: zB zS zT zZ, z=) +8 Vertical folds: looks like vertically split windows, but the cursor moves + through the vertical separator, separator moves when scrolling. 8 Add "z/" and "z?" for searching in not folded text only. +9 Add search pattern item to only match in closed or open fold and/or fold + with certain level. Allows doing ":g/pat/cmd" to work on closed folds. 8 Add different highlighting for a fold line depending on the fold level. (Noel Henson) 7 Use "++--", "+++--" for different levels instead of "+---" "+----". @@ -1292,6 +1799,7 @@ 7 Use ideas for nl_langinfo() from Mar 7 In "-- INSERT (lang) --" show the name of the keymap used instead of "lang". (Ilya Dogolazky) - Make 'langmap' accept multi-byte characters. + Patch from Konstantin Korikov, 2006 Oct 15. - Make 'breakat' accept multi-byte characters. Problem: can't use a lookup table anymore (breakat_flags[]). Simplistic solution: when 'formatoptions' contains "m" also break a line @@ -1317,8 +1825,8 @@ 7 Implement "undercurl" for printing. - Win32: when 'printfont' is empty use 'guifont'. - Unix: Use some dialog box to do the obvious settings (paper size, printer name, portrait/landscape, etc). -- PostScript: only works for 7-bit ASCII and EBCDIC. Should support - different 'encoding' values somehow. +- PostScript: Only works for text that can be converted to an 8-bit + character set. How to support Unicode fully? - Allow specifying the paper size, instead of using a standard size. Same units as for the margins. - Support right-to-left text? @@ -1338,6 +1846,9 @@ 7 Add a "startgroup" to a region. Use 8 When editing a new file without a name and giving it a name (by writing it) and 'filetype' is not set, detect the filetype. Avoid doing it for ":wq file". +7 For "nextgroup" we have skipwhite, skipnl and skipempty. It would be + really nice to be able to skip with a pattern. Or skip with a syntax + group. (Nikolai Weibull, 2007 Feb 27) 8 Make conversion to HTML faster (Write it in C or pre-compile the script). 9 There is still a redraw bug somewhere. Probably because a cached state is used in a wrong way. I can't reproduce it... @@ -1415,6 +1926,9 @@ 8 Should support "me" offset for a reg 8 When using a regexp for "contains=", should delay matching with it until redrawing happens. Set a flag when a group is added, check this flag when highlighting starts. +8 Some terminals can display colors like the GUI. Add some setting to use + GUI colors for the terminal? With something to define the escape + sequence. 7 It's possible for an item to be transparent, so that the colors of an item lower on the stack is used. Also do this with highlighting, so that the user can set transparent highlighting? E.g. a number in a C comment would @@ -1483,24 +1997,14 @@ 7 SpecialKey highlighting overrules sy Built-in script language: -9 Autoload: Add a Vim script in $VIMRUNTIME/tools that takes a file with a - list of script names and a help file and produces a script that can be - sourced to install the scripts in the user's directories. - Use findfile(), so that only file names need to be given: - script plugin/myscript.vim - script autoload/mylib.vim - script autoload/yourlib.vim - helpfile doc/myscript.txt - For the "helpfile" item ":helptags" is run. 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)? 8 Add referring to key options with "&t_xx". Both for "echo &t_xx" and ":let &t_xx =". Useful for making portable mappings. -- Add "{range}source": execute lines from a buffer. - Alternative: Allow range for ":exec", pass it on to the executed command. - (Webb) - You can already yank lines and use :@" to execute them. +- Add ":let var ?= value", conditional assignment. Patch by Dave Eggum, + 2006 Dec 11. +- range for ":exec", pass it on to the executed command. (Webb) 7 ":include" command: just like ":source" but doesn't start a new scriptID? Will be tricky for the list of script names. 8 Have a look at VSEL. Would it be useful to include? (Bigham) @@ -1523,7 +2027,16 @@ 7 Pre-parse or compile Vim scripts int file belongs to a sourced script? 7 Add argument to winwidth() to subtract the space taken by 'foldcolumn', signs and/or 'number'. +6 Add ++ and -- operators? They only work on variables (lvals), how to + implement this? 8 Add functions: + has(":command") Check if ":command" works. compare function + with "ex_ni". E.g. for ":simalt". + system() With a List argument. Bypasses the shell, use + exec() directly. (Bob Hiestand) + escape() Add argument to specify what to escape with. + modestack() Instead of just the current mode return the + stack of Insert / CTRL-O / :normal things. realname() Get user name (first, last, full) user_fullname() patch by Nikolai Weibull, Nov 3 2002 @@ -1561,7 +2074,8 @@ 7 Make bufname("'0") return the buffer column and line number? col("'0") currently returns zero. 8 argc() returns 0 when using "vim -t tag". How to detect that no file was specified in any way? To be able to jump to the last edited file. -8 Pass the executable name to the Vim scripts in some way. As v:argv0? +8 Pass the command line arguments to Vim scripts in some way. As v:args + List? Or extra parameter to argv()? 8 Add command arguments with three dashes, passed on to Vim scripts. 7 Add optional arguments to user functions: :func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17) @@ -1571,6 +2085,7 @@ 8 For Strings add ":let var[{expr}] = 8 The "= register should be writable, if followed by the name of a variable, option or environment variable. 8 ":let &option" should list the value of the option. +8 ":let Func().foo = value" should work, also when "foo" doesn't exist. 7 Add synIDlist(), making the whole list of syntax items on the syntax stack available as a List. 8 Add autocommand-event for when a variable is changed: @@ -1606,6 +2121,9 @@ 6 Add file locking. Lock a file when Performance: 7 For strings up to 3 bytes don't allocate memory, use v_list itself as a character array. Use VAR_SSTRING (short string). +8 Instead of loading rgb.txt every time a color wasn't recognized load it + once and keep it in memory. Move the code to a common place to avoid + repeating it in various system files. 8 Turn b_syn_ic and b_syn_containedin into b_syn_flags. 9 Loading menu.vim still takes quite a bit of time. How to make it faster? 8 in_id_list() takes much time for syntax highlighting. Cache the result? @@ -1719,6 +2237,8 @@ 8 Use 'report' for ":bdel"? (Krishna) - Delete message after new command has been entered and have waited for key. Perhaps after ten seconds? - Make message history available in "msg" variables: msg1, msg2, .. msg9. +8 When reading from stdin allow suppressing the "reading from stdin" + message. 9 Check handling of overwriting of messages and delays: Very wrong: errors while redrawing cause endless loop. When switching to another file and screen scrolls because of the long @@ -1840,6 +2360,9 @@ 7 When using ":tag" at the top of the before the previous ":tag" command. (Webb) - When doing "[^I" or "[^D" add position to tag stack. - Add command to put current position to tag stack: ":tpush". +- Add functions to save and restore the tag stack? Or a command to switch + to another tag stack? So that you can do something else and come back to + what you were working on. 7 When using CTRL-] on someClass::someMethod, separate class from method and use ":ta class:someClass someMethod". Include C++ tags changes (Bertin). Change "class::func" tag into "func" @@ -2000,6 +2523,8 @@ 7 Add autocommand event for when a buf 8 Autocommand for when modified files have been found, when getting input focus again (e.g., FileChangedFocus). Check when: getting focus, jumping to another buffer, ... +7 Autocommand for when an option is changed. Match buffer name or option + name? 8 Autocommands should not change registers. And marks? And the jumplist? And anything else? Add a command to save and restore these things. 8 Add autocommands, user functions and user commands to ":mkvimrc". @@ -2029,6 +2554,7 @@ 8 When editing "tt.gz", which is in DO *Leave - Leaving a mode (in pair with the above *Enter) VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled when exiting isn't a good idea. + CursorHoldC - CursorHold while command-line editing WinMoved - when windows have been moved around, e.g, ":wincmd J" CmdUndefined - Like FuncUndefined but for user commands. SearchPost - After doing a search command (e.g. to do "M") @@ -2053,7 +2579,10 @@ 8 When editing "tt.gz", which is in DO the position and number of inserted/deleted lines, so that marks can be updated. HierAssist has patch to add BufChangePre, BufChangePost and RevertBuf. (Shah) - WinResized - When a window has been resized + ViewChanged - triggered when the text scrolls and when the window size + changes. + WinResized - After a window has been resized + WinClose - Just before closing a window - Write the file now and then ('autosave'): *'autosave'* *'as'* *'noautosave'* *'noas'* 'autosave' 'aw' number (default 0) @@ -2070,8 +2599,6 @@ Omni completion: Should work for Java (Eclipse does this), Python, Tcl, etc. Richard Emberson mentioned working on an interface to Java. - Check Readline for its completion interface. - - Use ctags for other languages. Writing a file could trigger running - ctags, merging the tags of the changed file. - Ideas from others: http://www.wholetomato.com/ http://www.vim.org/scripts/script.php?script_id=747 @@ -2106,6 +2633,12 @@ 9 ^X^L completion doesn't repeat corre 8 Add option to set different behavior for Insert mode completion: - ignore/match case - different characters than 'iskeyword' +8 Add option 'isexpand', containing characters when doing expansion (so that + "." and "\" can be included, without changing 'iskeyword'). (Goldfarb) + Also: 'istagword': characters used for CTRL-]. + When 'isexpand' or 'istagword' are empty, use 'iskeyword'. + Alternative: Use a pattern so that start and end of a keyword can be + defined, only allow dash in the middle, etc. 8 Add a command to undo the completion, go back to the original text. 7 Completion of an abbreviation: Can leave letters out, like what Instant text does: www.textware.com @@ -2136,10 +2669,6 @@ 8 Add 'f' flag to 'complete': Expand f - CTRL-X CTRL-F: Use 'path' to find completions. - CTRL-X CTRL-F: Option to use forward slashes on MS-Windows? - CTRL-X CTRL-F: Don't replace "$VIM" with the actual value. (Kelly) -8 Add option 'isexpand', containing characters when doing expansion (so that - "." and "\" can be included, without changing 'iskeyword'). (Goldfarb) - Also: 'istagword': characters used for CTRL-]. - When 'isexpand' or 'istagword' are empty, use 'iskeyword'. - Allow listing all matches in some way (and picking one from the list). @@ -2255,6 +2784,7 @@ 7 Use 'matchpairs' for 'showmatch': Wh 'cindent', 'smartindent': +8 Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17) 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. @@ -2265,6 +2795,11 @@ 8 In C++ it's possible to have {} insi "asdf" } ); +6 Add 'cino' flag for this function argument layout: (Spencer Collyer) + func( arg1 + , arg2 + , arg3 + ); 7 Add separate "(0" option into inside/outside a function (Zellner): func( int x) // indent like "(4" @@ -2439,7 +2974,6 @@ 7 CTRL-A and CTRL-X should increase/de 6 In non-Block mode, "I" should insert the same text in front of each line, before the first non-blank, "gI" in column 1. 6 In non-Block mode, "A" should append the same text after each line. -6 ":'<,'>source" should read the selected lines and ":source" them. 6 When in blockwise visual selection (CTRL-V), allow cursor to be placed right of the line. Could also allow cursor to be placed anywhere on a TAB or other special character. @@ -2549,7 +3083,9 @@ Incsearch: Searching: 8 Add "g/" and "gb" to search for a pattern in the Visually selected text? "g?" is already used for rot13. + The vis.vim script has a ":S" command that does something like this. Can use "g/" in Normal mode, uses the '< to '> area. + Use "&/" for searching the text in the Visual area? 8 Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)". \@g stands for "go recursive here" and \@( \) marks the recursive part. Perl does it this way: @@ -2557,6 +3093,9 @@ 8 Add a mechanism for recursiveness: " Here $paren is evaluated when it's encountered. This is like a regexp inside a regexp. In the above terms it would be: \@((\([^()]\|\@g\)*)\) +8 Show the progress every second. Could use the code that checks for CTRL-C + to find out how much time has passed. Or use SIGALRM. Where to show the + number? 7 Support for approximate-regexps to find similar words (agrep http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html). 8 Add an item for a big character range, so that one can search for a @@ -2661,6 +3200,13 @@ 7 Add ":iselect", a combination of ":i Undo: +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 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. Use timestamps, so that a version a certain time ago can be found and info before some time/date can be flushed. 'undopersist' gives maximum time to @@ -3033,8 +3579,13 @@ 7 [< to move to previous xml/html tag, next
  • , ]< to next
  • , [< to previous . 8 Add ":rename" command: rename the file of the current buffer and rename the buffer. Buffer may be modified. +7 Instead of filtering errors with a shell script it should be possible to + do this with Vim script. A function that filters the raw text that comes + from the 'makeprg'? - Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh Govindachar) +7 Add a command that goes back to the position from before jumping to the + first quickfix location. ":cbefore"? 6 In the quickfix window statusline add the command used to get the list of errors, e.g. ":make foo", ":grep something *.c". 6 Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5) @@ -3047,7 +3598,6 @@ 7 Add an invisible buffer which can be to manipulate text without changing the window layout. 8 Add a command to revert to the saved version of file; undo or redo until all changes are gone. -7 Add a ":cpfile", go in the other direction as ":cnfile". 6 "vim -q -" should read the list of errors from stdin. (Gautam Mudunuri) 8 Add "--remote-fail": When contacting the server fails, exit Vim. Add "--remote-self": When contacting the server fails, do it in this Vim. @@ -3068,7 +3618,6 @@ 7 Xterm sends O3F for . S etc. Combinations of Alt, Ctrl and Shift are also possible. Recognize these to avoid inserting the raw byte sequence, handle like the key without modifier (unless mapped). -8 Add ":breakdel *": delete all breakpoints. 7 Support ":browse edit" in console, using explorer.vim? 6 Add "gG": like what "gj" is to "j": go to the N'th window line. 8 Add command like ":normal" that accepts notation like ":map". @@ -3107,13 +3656,6 @@ 7 Use growarray for replace stack. 7 Have a look at viH (Hellenic or Greek version of Vim). But a solution outside of Vim might be satisfactory (Haritsis). 3 Make "2d%" work like "d%d%" instead of "d2%"? -8 Make "more" prompt accept command characters, like "hit-enter" prompt? - Or extend it with more commands, like "less": 'b' for back, 'j' for one - line down, etc. -8 For the "--more--" prompt, support the 'b'ack command for more commands. - Possible implementation: Do it at a very low level, caching the lines that - are on the screen (with highlight attributes). Avoids that changes have - to be made for all functions that list something. 7 "g CTRL-O" jumps back to last used buffer. Skip CTRL-O jumps in the same buffer. Make jumplist remember the last ten accessed buffers? - Keep a list of most recently used files for each window, use "[o" to go @@ -3146,8 +3688,6 @@ 7 Add a way to change an operator to a of the files. Only check when an event occurs (e.g., character typed, mouse moved). Useful for non-GUI versions where keyboard focus isn't noticeable. -9 When using ":w " it's possible that this file is loaded in another - buffer. Give a warning right away, don't wait for a shell command. - Make 'smartcase' work even though 'ic' isn't set (Webb). 7 When formatting text, allow to break the line at a number of characters. Use an option for this: 'breakchars'? Useful for formatting Fortran code. @@ -3156,8 +3696,8 @@ 7 When formatting text, allow to break paragraphs). Complements the '2' flag. Use '>' flag when larger indent starts a new paragraph, use '<' flag when smaller indent starts a new paragraph. Both start a new paragraph on any indent change. -7 Add a way to define an item list with a pattern in 'formatoptions'. The - 'n' flag doesn't work for "6.3" or "6a.". +8 The 'a' flag in 'formatoptions' is too dangerous. In some way only do + auto-formatting in specific regions, e.g. defined by syntax highlighting. 8 Allow using a trailing space to signal a paragraph that continues on the next line (MIME text/plain; format=flowed, RFC 2646). Can be used for continuous formatting. Could use 'autoformat' option, which specifies a @@ -3358,8 +3898,6 @@ 8 Allow opening an unnamed buffer with - Amiga: test for 'w' flag when reading a file. - :table command (Webb) - Add new operator: clear, make area white (replace with spaces): "g ". -- Make it possible for a user to define a new operator. Implementation with - internal scripting language or Perl? - Add command to ":read" a file at a certain column (blockwise read?). - Add sort of replace mode where case is taken from the old text (Goldfarb). - Allow multiple arguments for ":read", read all the files. diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt --- a/runtime/doc/usr_01.txt +++ b/runtime/doc/usr_01.txt @@ -1,4 +1,4 @@ -*usr_01.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_01.txt* For Vim version 7.1a. Last change: 2006 Oct 08 VIM USER MANUAL - by Bram Moolenaar @@ -57,10 +57,10 @@ installation: |usr_90.txt|. *not-compatible* The manuals often assume you are using Vim with Vi-compatibility switched off. For most commands this doesn't matter, but sometimes it is important, -e.g., for multi-level undo. An easy way to make sure you are using the right -setup, copy the example vimrc file. By doing this inside Vim you don't have -to check out where it is located. How to do this depends on the system you -are using: +e.g., for multi-level undo. An easy way to make sure you are using a nice +setup is to copy the example vimrc file. By doing this inside Vim you don't +have to check out where it is located. How to do this depends on the system +you are using: Unix: > :!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc @@ -155,7 +155,7 @@ The Vim user manual and reference manual Moolenaar. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later. The latest version is presently available at: - http://www.opencontent.org/opl.shtml + http://www.opencontent.org/openpub/ People who contribute to the manuals must agree with the above copyright notice. @@ -164,8 +164,8 @@ Parts of the user manual come from the b Oualline (published by New Riders Publishing, ISBN: 0735710015). The Open Publication License applies to this book. Only selected parts are included and these have been modified (e.g., by removing the pictures, updating the -text for Vim 6.0 and fixing mistakes). The omission of the |frombook| tag -does not mean that the text does not come from the book. +text for Vim 6.0 and later, fixing mistakes). The omission of the |frombook| +tag does not mean that the text does not come from the book. Many thanks to Steve Oualline and New Riders for creating this book and publishing it under the OPL! It has been a great help while writing the user 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.0. Last change: 2006 Apr 24 +*usr_04.txt* For Vim version 7.1a. Last change: 2006 Jun 21 VIM USER MANUAL - by Bram Moolenaar @@ -390,7 +390,7 @@ the clipboard in section |09.3| and here ============================================================================== *04.8* Text objects -If the cursor is in the middle of a word and want to delete that word, you +If the cursor is in the middle of a word and you want to delete that word, you need to move back to its start before you can do "dw". There is a simpler way to do this: "daw". 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.0. Last change: 2006 Apr 24 +*usr_05.txt* For Vim version 7.1a. Last change: 2006 Jul 10 VIM USER MANUAL - by Bram Moolenaar @@ -202,8 +202,8 @@ actually two parts here. "autocmd FileT defines that when the file type is set to "text" the following command is automatically executed. "setlocal textwidth=78" sets the 'textwidth' option to 78, but only locally in one file. -> + *restore-cursor* > autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | 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.0. Last change: 2006 Apr 24 +*usr_06.txt* For Vim version 7.1a. 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.0. Last change: 2006 Apr 24 +*usr_07.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt --- a/runtime/doc/usr_11.txt +++ b/runtime/doc/usr_11.txt @@ -1,4 +1,4 @@ -*usr_11.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_11.txt* For Vim version 7.1a. 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.0. Last change: 2006 Apr 24 +*usr_12.txt* For Vim version 7.1a. Last change: 2006 Nov 18 VIM USER MANUAL - by Bram Moolenaar @@ -38,8 +38,8 @@ match the start of a word: > :%s/\" to match the end of a -word: > +Obviously, this still goes wrong on "fourteen". Use "\>" to match the end of +a word: > :%s/\/4/g 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.0. Last change: 2006 Apr 24 +*usr_20.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt --- a/runtime/doc/usr_23.txt +++ b/runtime/doc/usr_23.txt @@ -1,4 +1,4 @@ -*usr_23.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_23.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt --- a/runtime/doc/usr_27.txt +++ b/runtime/doc/usr_27.txt @@ -1,4 +1,4 @@ -*usr_27.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_27.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM USER MANUAL - by Bram Moolenaar diff --git a/runtime/doc/usr_28.txt b/runtime/doc/usr_28.txt --- a/runtime/doc/usr_28.txt +++ b/runtime/doc/usr_28.txt @@ -1,4 +1,4 @@ -*usr_28.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_28.txt* For Vim version 7.1a. 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.0. Last change: 2006 Apr 24 +*usr_30.txt* For Vim version 7.1a. Last change: 2007 Apr 22 VIM USER MANUAL - by Bram Moolenaar @@ -50,7 +50,7 @@ like this: 2 returned ~ "main.c" 11L, 111C ~ (3 of 6): too many arguments to function 'do_sub' ~ - Hit ENTER or type command to continue ~ + Press ENTER or type command to continue ~ From this you can see that you have errors in the file "main.c". When you press , Vim displays the file "main.c", with the cursor positioned on @@ -148,7 +148,7 @@ More about these modifiers here: |filena OLD ERROR LISTS -Suppose you ":make" a program. There is an warning message in one file and an +Suppose you ":make" a program. There is a warning message in one file and an error message in another. You fix the error and use ":make" again to check if it was really fixed. Now you want to look at the warning message. It doesn't show up in the last error list, since the file with the warning wasn't @@ -242,7 +242,7 @@ form is: > This indents the current line. Like with all operators, there are three ways to use it. In Visual mode "=" indents the selected lines. A useful text object is "a{". This selects the current {} block. Thus, to re-indent the -code code block the cursor is in: > +code block the cursor is in: > =a{ @@ -315,7 +315,7 @@ In this file the output is: filetype=help ~ -This you would use "help" for {filetype}. +Thus you would use "help" for {filetype}. For the {directory} part you need to use your runtime directory. Look at the output of this command: > @@ -339,7 +339,7 @@ How to do that is explained here: |inden The most simple form of automatic indenting is with the 'autoindent' option. It uses the indent from the previous line. A bit smarter is the 'smartindent' option. This is useful for languages where no indent file is available. -'smartindent'is not as smart as 'cindent', but smarter than 'autoindent'. +'smartindent' is not as smart as 'cindent', but smarter than 'autoindent'. With 'smartindent' set, an extra level of indentation is added for each { and removed for each }. An extra level of indentation will also be added for any of the words in the 'cinwords' option. Lines that begin with # are diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt --- a/runtime/doc/usr_40.txt +++ b/runtime/doc/usr_40.txt @@ -1,4 +1,4 @@ -*usr_40.txt* For Vim version 7.0. Last change: 2006 Apr 24 +*usr_40.txt* For Vim version 7.1a. Last change: 2006 Jun 21 VIM USER MANUAL - by Bram Moolenaar @@ -605,8 +605,9 @@ like "doautocmd" except it executes on a USING NORMAL MODE COMMANDS -The commands executed by an autocommand are Command-line command. If you want -to use a Normal mode command, the ":normal" command can be used. Example: > +The commands executed by an autocommand are Command-line commands. If you +want to use a Normal mode command, the ":normal" command can be used. +Example: > :autocmd BufReadPost *.log normal G 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.0. Last change: 2006 Apr 25 +*various.txt* For Vim version 7.1a. Last change: 2007 Jan 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -121,6 +121,12 @@ 8g8 Find an illegal UTF-8 byte sequenc :[range]# [count] [flags] synonym for :number. + *:#!* +:#!{anything} Ignored, so that you can start a Vim script with: > + #!/usr/bin/env vim -S + echo "this is a Vim script" + quit +< *:z* *E144* :{range}z[+-^.=]{count} Display several lines of text surrounding the line specified with {range}, or around the current line @@ -163,6 +169,7 @@ 8g8 Find an illegal UTF-8 byte sequenc it possible to execute Normal mode commands typed on the command-line. {commands} is executed like it is typed. For undo all commands are undone together. + Execution stops when an error is encountered. If the [!] is given, mappings will not be used. {commands} should be a complete command. If {commands} does not finish a command, the last one @@ -377,7 +384,7 @@ m *+tcl/dyn* Tcl interface |tcl-dynami N *+termresponse* support for |t_RV| and |v:termresponse| N *+textobjects* |text-objects| selection *+tgetent* non-Unix only: able to use external termcap -N *+title* Setting the window title |'title'| +N *+title* Setting the window 'title' and 'icon' N *+toolbar* |gui-toolbar| N *+user_commands* User-defined commands. |user-commands| N *+viminfo* |'viminfo'| @@ -434,10 +441,14 @@ N *+X11* Unix only: can restore window after the register name can be omitted. {not in Vi} :redi[r] @{a-z}>> Append messages to register {a-z}. {not in Vi} -:redi[r] @*> Redirect messages to the clipboard. For backward - compatibility, the ">" after the register name can be - omitted. {not in Vi} -:redi[r] @*>> Append messages to the clipboard. {not in Vi} +:redi[r] @*> +:redi[r] @+> Redirect messages to the selection or clipboard. For + backward compatibility, the ">" after the register + name can be omitted. See |quotestar| and |quoteplus|. + {not in Vi} +:redi[r] @*>> +:redi[r] @+>> Append messages to the selection or clipboard. + {not in Vi} :redi[r] @"> Redirect messages to the unnamed register. For backward compatibility, the ">" after the register @@ -447,6 +458,7 @@ N *+X11* Unix only: can restore window :redi[r] => {var} Redirect messages to a variable. If the variable doesn't exist, then it is created. If the variable exists, then it is initialized to an empty string. + The variable will remain empty until redirection ends. Only string variables can be used. After the redirection starts, if the variable is removed or locked or the variable type is changed, then further diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1,9 +1,9 @@ -*version7.txt* For Vim version 7.0. Last change: 2006 May 07 +*version7.txt* For Vim version 7.1a. Last change: 2007 May 05 VIM REFERENCE MANUAL by Bram Moolenaar - + *vim7* Welcome to Vim 7! A large number of features has been added. This file mentions all the new items, changes to existing features and bug fixes since Vim 6.x. Use this command to see the version you are using: > @@ -46,6 +46,11 @@ COMPILE TIME CHANGES |compile-changes- BUG FIXES |bug-fixes-7| +VERSION 7.1 |version-7.1| +Changed |changed-7.1| +Added |added-7.1| +Fixed |fixed-7.1| + ============================================================================== INCOMPATIBLE CHANGES *incompatible-7* @@ -464,7 +469,7 @@ problems have been fixed to make Vim mor conflict with traditional Vi or expected behavior. The $VIM_POSIX environment variable can be set to get POSIX compatibility. See |posix|. -Items that were fixed for both Vi and POSIX compatibilty: +Items that were fixed for both Vi and POSIX compatibility: - repeating "R" with a count only overwrites text once; added the 'X' flag to 'cpoptions' |cpo-X| - a vertical movement command that moves to a non-existing line fails; added @@ -856,8 +861,8 @@ New and extended functions: ~ |getreg()| get contents of a register |gettabwinvar()| get variable from window in specified tab page. |has_key()| check whether a key appears in a Dictionary +|haslocaldir()| check if current window used |:lcd| |hasmapto()| check for a mapping to a string -|inputlist()| select an entry from a list |index()| index of item in List |inputlist()| prompt the user to make a selection from a list |insert()| insert an item somewhere in a List @@ -937,7 +942,7 @@ New Vim variables: ~ |v:beval_text| text under the mouse pointer for 'balloonexpr' |v:scrollstart| what caused the screen to be scrolled up |v:swapname| name of the swap file for the |SwapExists| event -|v:swapchoice| what do do for an existing swap file +|v:swapchoice| what to do for an existing swap file |v:swapcommand| command to be executed after handling |SwapExists| |v:char| argument for evaluating 'formatexpr' @@ -1105,7 +1110,6 @@ prolog ftplugin file. (Nikolai Weibull) protocols syntax and ftplugin file. (Nikolai Weibull) quake ftplugin file. (Nikolai Weibull) racc syntax and ftplugin file. (Nikolai Weibull) -rd syntax file. (Johannes Ranke) readline ftplugin file. (Nikolai Weibull) rhelp syntax file. (Johannes Ranke) rnoweb syntax file. (Johannes Ranke) @@ -1152,7 +1156,7 @@ Tamil in TSCII encoding (Yegappan Lakshm Greek in cp737 (Panagiotis Louridas) Polish-slash (HS6_06) Ukrainian-jcuken (Anatoli Sakhnik) -Kana (Edward L. Fo) +Kana (Edward L. Fox) New message translations: ~ @@ -1983,7 +1987,7 @@ unicodepdy[] as for UTF-8. (Taro Muraoka ":w fname" didn't work for files with 'buftype' set to "nofile". The method used to locate user commands for completion differed from when they -are executed. Abiguous command names were not completed properly. +are executed. Ambiguous command names were not completed properly. Incremental search may cause a crash when there is a custom statusline that indirectly invokes ":normal". @@ -2023,7 +2027,7 @@ Starting with an argument "+cmd" or "-S to the first line. That breaks a BufReadPost autocommand that uses g`". Don't move the cursor if it's somewhere past the first line. -"gg=G" while 'modifiable' is off was uninterruptable. +"gg=G" while 'modifiable' is off was uninterruptible. When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash. Don't insert a DBCS character with a NUL second byte. @@ -2175,7 +2179,7 @@ Unix: ":w a;b~c" caused an error in expa When appending to a file with ":w >>fname" in a buffer without a name, causing the buffer to use "fname", the modified flag was reset. -When appending to to current file the "not edited" flag would be reset. +When appending to the current file the "not edited" flag would be reset. ":w" would overwrite the file accidentally. Unix: When filtering text with an external command Vim would still read input, @@ -2392,7 +2396,7 @@ install directory. To make the 16 bit DOS version compile exclude not used highlight initializations and build a tiny instead of small version. -finddir() and findfile() accept a negative cound and return a List then. +finddir() and findfile() accept a negative count and return a List then. The Python indent file contained a few debugging statements, removed. @@ -2731,7 +2735,7 @@ Added CTRL-W gF: open file under cursor number following the file name. Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan). -Added "throw" to 'debug' option: thow an exception for error messages even +Added "throw" to 'debug' option: throw an exception for error messages even whey they would otherwise be ignored. When 'keymap' is set and a line contains an invalid entry could get a "No @@ -2969,4 +2973,1587 @@ Fixed a few things for Insert mode compl CTRL-N or a printable character while still searching for matches. +============================================================================== +VERSION 7.1 *version-7.1* + +This section is about improvements made between version 7.0 and 7.1. + +This is a bug-fix release, there are no fancy new features. + + +Changed *changed-7.1* +------- + +Added setting 'mouse' in vimrc_example.vim. + +When building with MZscheme also look for include files in the "plt" +subdirectory. That's where they are for FreeBSD. + + +Added *added-7.1* +----- + +New syntax files: + AutoIt v3 (Jared Breland) + Bazaar commit file "bzr". (Dmitry Vasiliev) + Cmusrc (Nikolai Weibull) + FreeBasic (Mark Manning) + Hamster (David Fishburn) + IBasic (Mark Manning) + initng (Elan Ruusamae) + /var/log/messages (Yakov Lerner) + Privoxy actions file (Doug Kearns) + Streaming Descriptors "sd" (Puria Nafisi Azizi) + +New tutor files: + Hungarian (Arpad Horvath) + Czech (Lubos Turek) + Turkish (Serkan kkk) + utf-8 version of Greek tutor. + utf-8 version of Russian tutor. + utf-8 version of Slowak tutor. + +New filetype plugins: + Bst (Tim Pope) + Cobol (Tim Pope) + Fvwm (Gautam Iyer) + Hamster (David Fishburn) + Django HTML template (Dave Hodder) + +New indent files: + Bst (Tim Pope) + Cobol (Tim Pope) + Hamster (David Fishburn) + Django HTML template (Dave Hodder) + Javascript + JSP (David Fishburn) + +New keymap files: + Bulgarian (Boyko Bantchev) + Mongolian (Natsagdorj Shagdar) + Thaana (Ibrahim Fayaz) + Vietnamese (Samuel Thibault) + +Other new runtime files: + Ada support files. (Neil Bird, Martin Krischik) + Slovenian menu translations (Mojca Miklavec) + Mono C# compiler plugin (Jarek Sobiecki) + + +Fixed *fixed-7.1* +----- + +Could not build the Win32s version. Added a few structure definitions in +src/gui_w32.c + + +Patch 7.0.001 +Problem: ":set spellsuggest+=10" does not work. (Suresh Govindachar) +Solution: Add P_COMMA to the 'spellsuggest' flags. +Files: src/option.c + +Patch 7.0.002 +Problem: C omni completion has a problem with tags files with a path + containing "#" or "%". +Solution: Escape these characters. (Sebastian Baberowski) +Files: runtime/autoload/ccomplete.vim + +Patch 7.0.003 +Problem: GUI: clicking in the lower part of a label in the tab pages line + while 'mousefocus' is set may warp the mouse pointer. (Robert + Webb) +Solution: Check for a negative mouse position. +Files: src/gui.c + +Patch 7.0.004 +Problem: Compiler warning for debug_saved used before set. (Todd Blumer) +Solution: Remove the "else" for calling save_dbg_stuff(). +Files: src/ex_docmd.c + +Patch 7.0.005 (extra) +Problem: Win32: The installer doesn't remove the "autoload" and "spell" + directories. (David Fishburn) +Solution: Add the directories to the list to be removed. +Files: nsis/gvim.nsi + +Patch 7.0.006 +Problem: Mac: "make shadow" doesn't make a link for infplist.xml. (Axel + Kielhorn) +Solution: Make the link. +Files: src/Makefile + +Patch 7.0.007 +Problem: AIX: compiling fails for message.c. (Ruediger Hornig) +Solution: Move the #if outside of memchr(). +Files: src/message.c + +Patch 7.0.008 +Problem: Can't call a function that uses both and {expr}. (Thomas) +Solution: Check both the expanded and unexpanded name for . +Files: src/eval.c + +Patch 7.0.009 +Problem: ml_get errors with both 'sidescroll' and 'spell' set. +Solution: Use ml_get_buf() instead of ml_get(), get the line from the right + buffer, not the current one. +Files: src/spell.c + +Patch 7.0.010 +Problem: The spellfile plugin required typing login name and password. +Solution: Use "anonymous" and "vim7user" by default. No need to setup a + .netrc file. +Files: runtime/autoload/spellfile.vim + +Patch 7.0.011 +Problem: Can't compile without the folding and with the eval feature. +Solution: Add an #ifdef. (Vallimar) +Files: src/option.c + +Patch 7.0.012 +Problem: Using the matchparen plugin, moving the cursor in Insert mode to a + shorter line that ends in a brace, changes the preferred column +Solution: Use winsaveview()/winrestview() instead of getpos()/setpos(). +Files: runtime/plugin/matchparen.vim + +Patch 7.0.013 +Problem: Insert mode completion: using CTRL-L to add an extra character + also deselects the current match, making it impossible to use + CTRL-L a second time. +Solution: Keep the current match. Also make CTRL-L work at the original + text, using the first displayed match. +Files: src/edit.c + +Patch 7.0.014 +Problem: Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe) +Solution: Disable some code for Motif 1.2 and older. +Files: src/gui_xmebw.c + +Patch 7.0.015 +Problem: Athena: compilation problems with modern compiler. +Solution: Avoid type casts for lvalue. (Alexey Froloff) +Files: src/gui_at_fs.c + +Patch 7.0.016 +Problem: Printing doesn't work for "dec-mcs" encoding. +Solution: Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of + recognized 8-bit encodings. (Mike Williams) +Files: src/mbyte.c + +Patch 7.0.017 (after 7.0.014) +Problem: Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe) +Solution: Adjust defines for Motif 1.2 and older. +Files: src/gui_xmebw.c + +Patch 7.0.018 +Problem: VMS: plugins are not loaded on startup. +Solution: Remove "**" from the path. (Zoltan Arpadffy) +Files: src/main.c + +Patch 7.0.019 +Problem: Repeating "VjA789" may cause a crash. (James Vega) +Solution: Check the cursor column after moving it to another line. +Files: src/ops.c + +Patch 7.0.020 +Problem: Crash when using 'mousefocus'. (William Fulton) +Solution: Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert) +Files: src/gui.c + +Patch 7.0.021 +Problem: Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber) +Solution: Check for valid submatches after matching the pattern. +Files: src/quickfix.c + +Patch 7.0.022 +Problem: Using buffer.append() in Ruby may append the line to the wrong + buffer. (Alex Norman) +Solution: Properly switch to the buffer to do the appending. Also for + buffer.delete() and setting a buffer line. +Files: src/if_ruby.c + +Patch 7.0.023 +Problem: Crash when doing spell completion in an empty line and pressing + CTRL-E. +Solution: Check for a zero pointer. (James Vega) + Also handle a situation without a matching pattern better, report + "No matches" instead of remaining in undefined CTRL-X mode. And + get out of CTRL-X mode when typing a letter. +Files: src/edit.c + +Patch 7.0.024 +Problem: It is possible to set arbitrary "v:" variables. +Solution: Disallow setting "v:" variables that are not predefined. +Files: src/eval.c + +Patch 7.0.025 +Problem: Crash when removing an element of a:000. (Nikolai Weibull) +Solution: Mark the a:000 list with VAR_FIXED. +Files: src/eval.c + +Patch 7.0.026 +Problem: Using libcall() may show an old error. +Solution: Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira) +Files: src/os_unix.c + +Patch 7.0.027 (extra) +Problem: Win32: When compiled with SNIFF gvim may hang on exit. +Solution: Translate and dispatch the WM_USER message. (Mathias Michaelis) +Files: src/gui_w48.c + +Patch 7.0.028 (extra) +Problem: OS/2: Vim doesn't compile with gcc 3.2.1. +Solution: Add argument to after_pathsep(), don't define vim_handle_signal(), + define HAVE_STDARG_H. (David Sanders) +Files: src/os_unix.c, src/vim.h, src/os_os2_cfg.h + +Patch 7.0.029 +Problem: getchar() may not position the cursor after a space. +Solution: Position the cursor explicitly. +Files: src/eval.c + +Patch 7.0.030 +Problem: The ":compiler" command can't be used in a FileChangedRO event. + (Hari Krishna Dara) +Solution: Add the CMDWIN flag to the ":compiler" command. +Files: src/ex_cmds.h + +Patch 7.0.031 +Problem: When deleting a buffer the buffer-local mappings for Select mode + remain. +Solution: Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner) +Files: src/vim.h + +Patch 7.0.032 (extra, after 7.0.027) +Problem: Missing semicolon. +Solution: Add the semicolon. +Files: src/gui_w48.c + +Patch 7.0.033 +Problem: When pasting text, with the menu or CTRL-V, autoindent is removed. +Solution: Use "x" to avoid indent to be removed. (Benji Fisher) +Files: runtime/autoload/paste.vim + +Patch 7.0.034 +Problem: After doing completion and typing more characters or using BS + repeating with "." didn't work properly. (Martin Stubenschrott) +Solution: Don't put BS and other characters in the redo buffer right away, + do this when finishing completion. +Files: src/edit.c + +Patch 7.0.035 +Problem: Insert mode completion works when typed but not when replayed from + a register. (Hari Krishna Dara) + Also: Mappings for Insert mode completion don't always work. +Solution: When finding a non-completion key in the input don't interrupt + completion when it wasn't typed. + Do use mappings when checking for typeahead while still finding + completions. Avoids that completion is interrupted too soon. + Use "compl_pending" in a different way. +Files: src/edit.c + +Patch 7.0.036 +Problem: Can't compile with small features and syntax highlighting or the + diff feature. +Solution: Define LINE_ATTR whenever syntax highlighting or the diff feature + is enabled. +Files: src/screen.c + +Patch 7.0.037 +Problem: Crash when resizing the GUI window vertically when there is a line + that doesn't fit. +Solution: Don't redraw while the screen data is invalid. +Files: src/screen.c + +Patch 7.0.038 +Problem: When calling complete() from an Insert mode expression mapping + text could be inserted in an improper way. +Solution: Make undo_allowed() global and use it in complete(). +Files: src/undo.c, src/proto/undo.pro, src/eval.c + +Patch 7.0.039 +Problem: Calling inputdialog() with a third argument in the console doesn't + work. +Solution: Make a separate function for input() and inputdialog(). (Yegappan + Lakshmanan) +Files: src/eval.c + +Patch 7.0.040 +Problem: When 'cmdheight' is larger than 1 using inputlist() or selecting + a spell suggestion with the mouse gets the wrong entry. +Solution: Start listing the first alternative on the last line of the screen. +Files: src/eval.c, src/spell.c + +Patch 7.0.041 +Problem: cursor([1, 1]) doesn't work. (Peter Hodge) +Solution: Allow leaving out the third item of the list and use zero for the + virtual column offset. +Files: src/eval.c + +Patch 7.0.042 +Problem: When pasting a block of text in Insert mode Vim hangs or crashes. + (Noam Halevy) +Solution: Avoid that the cursor is positioned past the NUL of a line. +Files: src/ops.c + +Patch 7.0.043 +Problem: Using "%!" at the start of 'statusline' doesn't work. +Solution: Recognize the special item when the option is being set. +Files: src/option.c + +Patch 7.0.044 +Problem: Perl: setting a buffer line in another buffer may result in + changing the current buffer. +Solution: Properly change to the buffer to be changed. +Files: src/if_perl.xs + +Patch 7.0.045 (extra) +Problem: Win32: Warnings when compiling OLE version with MSVC 2005. +Solution: Move including vim.h to before windows.h. (Ilya Bobir) +Files: src/if_ole.cpp + +Patch 7.0.046 +Problem: The matchparen plugin ignores parens in strings, but not in single + quotes, often marked with "character". +Solution: Also ignore parens in syntax items matching "character". +Files: runtime/plugin/matchparen.vim + +Patch 7.0.047 +Problem: When running configure the exit status is wrong. +Solution: Handle the exit status properly. (Matthew Woehlke) +Files: configure, src/configure + +Patch 7.0.048 +Problem: Writing a compressed file fails when there are parens in the name. + (Wang Jian) +Solution: Put quotes around the temp file name. +Files: runtime/autoload/gzip.vim + +Patch 7.0.049 +Problem: Some TCL scripts are not recognized. (Steven Atkinson) +Solution: Check for "exec wish" in the file. +Files: runtime/scripts.vim + +Patch 7.0.050 +Problem: After using the netbeans interface close command a stale pointer + may be used. +Solution: Clear the pointer to the closed buffer. (Xaview de Gaye) +Files: src/netbeans.c + +Patch 7.0.051 (after 7.0.44) +Problem: The Perl interface doesn't compile or doesn't work properly. +Solution: Remove the spaces before #ifdef and avoid an empty line above it. +Files: src/if_perl.xs + +Patch 7.0.052 +Problem: The user may not be aware that the Vim server allows others more + functionality than desired. +Solution: When running Vim as root don't become a Vim server without an + explicit --servername argument. +Files: src/main.c + +Patch 7.0.053 +Problem: Shortening a directory name may fail when there are multi-byte + characters. +Solution: Copy the correct bytes. (Titov Anatoly) +Files: src/misc1.c + +Patch 7.0.054 +Problem: Mac: Using a menu name that only has a mnemonic or accelerator + causes a crash. (Elliot Shank) +Solution: Check for an empty menu name. Also delete empty submenus that + were created before detecting the error. +Files: src/menu.c + +Patch 7.0.055 +Problem: ":startinsert" in a CmdwinEnter autocommand doesn't take immediate + effect. (Bradley White) +Solution: Put a NOP key in the typeahead buffer. Also avoid that using + CTRL-C to go back to the command line moves the cursor left. +Files: src/edit.c, src/ex_getln.c + +Patch 7.0.056 +Problem: "#!something" gives an error message. +Solution: Ignore this line, so that it can be used in an executable Vim + script. +Files: src/ex_docmd.c + +Patch 7.0.057 (extra, after 7.0.45) +Problem: Win32: Compilation problem with Borland C 5.5. +Solution: Include vim.h as before. (Mark S. Williams) +Files: src/if_ole.cpp + +Patch 7.0.058 +Problem: The gbk and and gb18030 encodings are not recognized. +Solution: Add aliases to cp936. (Edward L. Fox) +Files: src/mbyte.c + +Patch 7.0.059 +Problem: The Perl interface doesn't compile with ActiveState Perl 5.8.8. +Solution: Remove the __attribute__() items. (Liu Yubao) +Files: src/if_perl.xs + +Patch 7.0.060 (after 7.0.51) +Problem: Code for temporarily switching to another buffer is duplicated in + quite a few places. +Solution: Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is + not defined. +Files: src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c, + src/if_perl.xs, src/quickfix.c, src/structs.h + +Patch 7.0.061 +Problem: Insert mode completion for Vim commands may crash if there is + nothing to complete. +Solution: Instead of freeing the pattern make it empty, so that a "not + found" error is given. (Yukihiro Nakadaira) +Files: src/edit.c + +Patch 7.0.062 +Problem: Mac: Crash when using the popup menu for spell correction. The + popup menu appears twice when letting go of the right mouse button + early. +Solution: Don't show the popup menu on the release of the right mouse + button. Also check that a menu pointer is actually valid. +Files: src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c + +Patch 7.0.063 +Problem: Tiny chance for a memory leak. (coverity) +Solution: Free pointer when next memory allocation fails. +Files: src/eval.c + +Patch 7.0.064 +Problem: Using uninitialized variable. (Tony Mechelynck) +Solution: When not used set "temp" to zero. Also avoid a warning for + "files" in ins_compl_dictionaries(). +Files: src/edit.c + +Patch 7.0.065 (extra) +Problem: Mac: left-right movement of the scrollwheel causes up-down + scrolling. +Solution: Ignore mouse wheel events that are not up-down. (Nicolas Weber) +Files: src/gui_mac.c + +Patch 7.0.066 +Problem: After the popup menu for Insert mode completion overlaps the tab + pages line it is not completely removed. +Solution: Redraw the tab pages line after removing the popup menu. (Ori + Avtalion) +Files: src/popupmnu.c + +Patch 7.0.067 +Problem: Undo doesn't always work properly when using "scim" input method. + Undo is split up when using preediting. +Solution: Reset xim_has_preediting also when preedit_start_col is not + MAXCOL. Don't split undo when is used while preediting. + (Yukihiro Nakadaira) +Files: src/edit.c, src/mbyte.c + +Patch 7.0.068 +Problem: When 'ignorecase' is set and using Insert mode completion, + typing characters to change the list of matches, case is not + ignored. (Hugo Ahlenius) +Solution: Store the 'ignorecase' flag with the matches where needed. +Files: src/edit.c, src/search.c, src/spell.c + +Patch 7.0.069 +Problem: Setting 'guitablabel' to %!expand(\%) causes Vim to free an + invalid pointer. (Kim Schulz) +Solution: Don't try freeing a constant string pointer. +Files: src/buffer.c + +Patch 7.0.070 +Problem: Compiler warnings for shadowed variables and uninitialized + variables. +Solution: Rename variables such as "index", "msg" and "dup". Initialize + variables. +Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, + src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c, + src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c, + src/memline.c, src/netbeans.c, src/normal.c, src/option.c, + src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c, + src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c, + src/version.c + +Patch 7.0.071 +Problem: Using an empty search pattern may cause a crash. +Solution: Avoid using a NULL pointer. +Files: src/search.c + +Patch 7.0.072 +Problem: When starting the GUI fails there is no way to adjust settings or + do something else. +Solution: Add the GUIFailed autocommand event. +Files: src/fileio.c, src/gui.c, src/vim.h + +Patch 7.0.073 +Problem: Insert mode completion: Typing sometimes selects the original + text instead of keeping what was typed. (Justin Constantino) +Solution: Don't let select the original text if there is no popup menu. +Files: src/edit.c + +Patch 7.0.074 (extra) +Problem: Win32: tooltips were not converted from 'encoding' to Unicode. +Solution: Set the tooltip to use Unicode and do the conversion. Also + cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira) +Files: src/gui_w32.c, src/gui_w48.c + +Patch 7.0.075 +Problem: winsaveview() did not store the actual value of the desired cursor + column. This could move the cursor in the matchparen plugin. +Solution: Call update_curswant() before using the value w_curswant. +Files: src/eval.c + +Patch 7.0.076 (after 7.0.010) +Problem: Automatic downloading of spell files only works for ftp. +Solution: Don't add login and password for non-ftp URLs. (Alexander Patrakov) +Files: runtime/autoload/spellfile.vim + +Patch 7.0.077 +Problem: ":unlet v:this_session" causes a crash. (Marius Roets) +Solution: When trying to unlet a fixed variable give an error message. +Files: src/eval.c + +Patch 7.0.078 +Problem: There are two error messages E46. +Solution: Change the number for the sandbox message to E794. +Files: src/globals.h + +Patch 7.0.079 +Problem: Russian tutor doesn't work when 'encoding' is "utf-8". +Solution: Use tutor.ru.utf-8 as the master, and generate the other encodings + from it. Select the right tutor depending on 'encoding'. (Alexey + Froloff) +Files: runtime/tutor/Makefile, runtime/tutor/tutor.vim, + runtime/tutor/tutor.ru.utf-8 + +Patch 7.0.080 +Problem: Generating auto/pathdef.c fails for CFLAGS with a backslash. +Solution: Double backslashes in the string. (Alexey Froloff) +Files: src/Makefile + +Patch 7.0.081 +Problem: Command line completion doesn't work for a shell command with an + absolute path. +Solution: Don't use $PATH when there is an absolute path. +Files: src/ex_getln.c + +Patch 7.0.082 +Problem: Calling a function that waits for input may cause List and + Dictionary arguments to be freed by the garbage collector. +Solution: Keep a list of all arguments to internal functions. +Files: src/eval.c + +Patch 7.0.083 +Problem: Clicking with the mouse on an item for inputlist() doesn't work + when 'compatible' is set and/or when 'cmdheight' is more than one. + (Christian J. Robinson) +Solution: Also decrement "lines_left" when 'more' isn't set. Set + "cmdline_row" to zero to get all mouse events. +Files: src/message.c, src/misc1.c + +Patch 7.0.084 +Problem: The garbage collector may do its work while some Lists or + Dictionaries are used internally, e.g., by ":echo" that runs into + the more-prompt or ":echo [garbagecollect()]". +Solution: Only do garbage collection when waiting for a character at the + toplevel. Let garbagecollect() set a flag that is handled at the + toplevel before waiting for a character. +Files: src/eval.c, src/getchar.c, src/globals.h, src/main.c + +Patch 7.0.085 +Problem: When doing "make test" the viminfo file is modified. +Solution: Use another viminfo file after setting 'compatible. +Files: src/testdir/test56.in + +Patch 7.0.086 +Problem: getqflist() returns entries for pattern and text with the number + zero. Passing these to setqflist() results in the string "0". +Solution: Use an empty string instead of the number zero. +Files: src/quickfix.c + +Patch 7.0.087 +Problem: After ":file fname" and ":saveas fname" the 'autochdir' option + does not take effect. (Yakov Lerner) + Commands for handling 'autochdir' are repeated many times. +Solution: Add the DO_AUTOCHDIR macro and do_autochdir(). Use it for + ":file fname" and ":saveas fname". +Files: src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h, + src/netbeans.c, src/option.c, src/window.c + +Patch 7.0.088 +Problem: When compiled with Perl the generated prototypes have "extern" + unnecessarily added. +Solution: Remove the "-pipe" argument from PERL_CFLAGS. +Files: src/auto/configure, src/configure.in + +Patch 7.0.089 +Problem: "ga" does not work properly for a non-Unicode multi-byte encoding. +Solution: Only check for composing chars for utf-8. (Taro Muraoka) +Files: src/ex_cmds.c + +Patch 7.0.090 +Problem: Cancelling the conform() dialog on the console with Esc requires + typing it twice. (Benji Fisher) +Solution: When the start of an escape sequence is found use 'timeoutlen' or + 'ttimeoutlen'. +Files: src/misc1.c + +Patch 7.0.091 +Problem: Using winrestview() while 'showcmd' is set causes the cursor to be + displayed in the wrong position. (Yakov Lerner) +Solution: Set the window topline properly. +Files: src/eval.c + +Patch 7.0.092 (after 7.0.082 and 7.0.084) +Problem: The list of internal function arguments is obsolete now that + garbage collection is only done at the toplevel. +Solution: Remove the list of all arguments to internal functions. +Files: src/eval.c + +Patch 7.0.093 +Problem: The matchparen plugin can't handle a 'matchpairs' value where a + colon is matched. +Solution: Change the split() that is used to change 'matchpairs' into a + List. +Files: runtime/plugin/matchparen.vim + +Patch 7.0.094 +Problem: When a hidden buffer is made the current buffer and another file + edited later, the file message will still be given. Using + ":silent" also doesn't prevent the file message. (Marvin Renich) +Solution: Reset the need_fileinfo flag when reading a file. Don't set + need_fileinfo when msg_silent is set. +Files: src/buffer.c, src/fileio.c + +Patch 7.0.095 +Problem: The Greek tutor is not available in utf-8. "el" is used for the + language, only "gr" for the country is recognized. +Solution: Add the utf-8 Greek tutor. Use it for conversion to iso-8859-7 + and cp737. (Lefteris Dimitroulakis) +Files: runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8, + runtime/tutor/tutor.vim + +Patch 7.0.096 +Problem: taglist() returns the filename relative to the tags file, while + the directory of the tags file is unknown. (Hari Krishna Dara) +Solution: Expand the file name. (Yegappan Lakshmanan) +Files: src/tag.c + +Patch 7.0.097 +Problem: ":tabclose N" that closes another tab page does not remove the tab + pages line. Same problem when using the mouse. +Solution: Adjust the tab pages line when needed in tabpage_close_other(). +Files: src/ex_docmd.c + +Patch 7.0.098 +Problem: Redirecting command output in a cmdline completion function + doesn't work. (Hari Krishna Dara) +Solution: Enable redirection when redirection is started. +Files: src/ex_docmd.c, src/ex_getln.c + +Patch 7.0.099 +Problem: GUI: When the popup menu is visible using the scrollbar messes up + the display. +Solution: Disallow scrolling the current window. Redraw the popup menu + after scrolling another window. +Files: src/gui.c + +Patch 7.0.100 +Problem: "zug" may report the wrong filename. (Lawrence Kesteloot) +Solution: Call home_replace() to fill NameBuff[]. +Files: src/spell.c + +Patch 7.0.101 +Problem: When the "~/.vim/spell" directory does not exist "zg" may create + a wrong directory. "zw" doesn't work. +Solution: Use the directory of the file name instead of NameBuff. For "zw" + not only remove a good word but also add the word with "!". +Files: src/spell.c + +Patch 7.0.102 +Problem: Redrawing cmdline is not correct when using SCIM. +Solution: Don't call im_get_status(). (Yukihiro Nakadaira) +Files: src/ex_getln.c + +Patch 7.0.103 (after 7.0.101) +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Init variable. +Files: src/spell.c + +Patch 7.0.104 +Problem: The CursorHoldI event only triggers once in Insert mode. It also + triggers after CTRL-V and other two-key commands. +Solution: Set "did_cursorhold" before getting a second key. Reset + "did_cursorhold" after handling a command. +Files: src/edit.c, src/fileio.c + +Patch 7.0.105 +Problem: When using incremental search the statusline ruler isn't updated. + (Christoph Koegl) +Solution: Update the statusline when it contains the ruler. +Files: src/ex_getln.c + +Patch 7.0.106 +Problem: The spell popup menu uses ":amenu", triggering mappings. Other + PopupMenu autocommands are removed. (John Little) +Solution: Use ":anoremenu" and use an autocmd group. +Files: runtime/menu.vim + +Patch 7.0.107 +Problem: Incremental search doesn't redraw the text tabline. (Ilya Bobir) + Also happens in other situations with one window in a tab page. +Solution: Redraw the tabline after clearing the screen. +Files: src/screen.c + +Patch 7.0.108 (extra) +Problem: Amiga: Compilation problem. +Solution: Have mch_mkdir() return a failure flag. (Willy Catteau) +Files: src/os_amiga.c, src/proto/os_amiga.pro + +Patch 7.0.109 +Problem: Lisp indenting is confused by escaped quotes in strings. (Dorai + Sitaram) +Solution: Check for backslash inside strings. (Sergey Khorev) +Files: src/misc1.c + +Patch 7.0.110 +Problem: Amiga: Compilation problems when not using libnix. +Solution: Change a few #ifdefs. (Willy Catteau) +Files: src/memfile.c + +Patch 7.0.111 +Problem: The gzip plugin can't handle filenames with single quotes. +Solution: Add and use the shellescape() function. (partly by Alexey Froloff) +Files: runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c, + src/mbyte.c, src/misc2.c, src/proto/misc2.pro + +Patch 7.0.112 +Problem: Python interface does not work with Python 2.5. +Solution: Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes) +Files: src/if_python.c + +Patch 7.0.113 +Problem: Using CTRL-L in Insert completion when there is no current match + may cause a crash. (Yukihiro Nakadaira) +Solution: Check for compl_leader to be NULL +Files: src/edit.c + +Patch 7.0.114 +Problem: When aborting an insert with CTRL-C an extra undo point is + created in the GUI. (Yukihiro Nakadaira) +Solution: Call gotchars() only when advancing. +Files: src/getchar.c + +Patch 7.0.115 +Problem: When 'ignorecase' is set, Insert mode completion only adds "foo" + and not "Foo" when both are found. + A found match isn't displayed right away when 'completeopt' does + not have "menu" or "menuone". +Solution: Do not ignore case when checking if a completion match already + exists. call ins_compl_check_keys() also when not using a popup + menu. (Yukihiro Nakadaira) +Files: src/edit.c + +Patch 7.0.116 +Problem: 64 bit Windows version reports "32 bit" in the ":version" output. + (M. Veerman) +Solution: Change the text for Win64. +Files: src/version.c + +Patch 7.0.117 +Problem: Using "extend" on a syntax item inside a region with "keepend", an + intermediate item may be truncated. + When applying the "keepend" and there is an offset to the end + pattern the highlighting of a contained item isn't adjusted. +Solution: Use the seen_keepend flag to remember when to apply the "keepend" + flag. Adjust the keepend highlighting properly. (Ilya Bobir) +Files: src/syntax.c + +Patch 7.0.118 +Problem: printf() does not do zero padding for strings. +Solution: Do allow zero padding for strings. +Files: src/message.c + +Patch 7.0.119 +Problem: When going back from Insert to Normal mode the CursorHold event + doesn't trigger. (Yakov Lerner) +Solution: Reset "did_cursorhold" when leaving Insert mode. +Files: src/edit.c + +Patch 7.0.120 +Problem: Crash when using CTRL-R = at the command line and entering + "getreg('=')". (James Vega) +Solution: Avoid recursiveness of evaluating the = register. +Files: src/ops.c + +Patch 7.0.121 +Problem: GUI: Dragging the last status line doesn't work when there is a + text tabline. (Markus Wolf) +Solution: Take the text tabline into account when deciding to start modeless + selection. +Files: src/gui.c + +Patch 7.0.122 +Problem: GUI: When clearing after a bold, double-wide character half a + character may be drawn. +Solution: Check for double-wide character and redraw it. (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.0.123 +Problem: On SCO Openserver configure selects the wrong terminal library. +Solution: Put terminfo before the other libraries. (Roger Cornelius) + Also fix a small problem compiling on Mac without Darwin. +Files: src/configure.in, src/auto/configure + +Patch 7.0.124 +Problem: getwinvar() obtains a dictionary with window-local variables, but + it's always for the current window. +Solution: Get the variables of the specified window. (Geoff Reedy) +Files: src/eval.c + +Patch 7.0.125 +Problem: When "autoselect" is in the 'clipboard' option then the '< and '> + marks are set while Visual mode is still active. +Solution: Don't set the '< and '> marks when yanking the selected area for + the clipboard. +Files: src/normal.c + +Patch 7.0.126 +Problem: When 'formatexpr' uses setline() and later internal formatting is + used undo information is not correct. (Jiri Cerny, Benji Fisher) +Solution: Set ins_need_undo after using 'formatexpr'. +Files: src/edit.c + +Patch 7.0.127 +Problem: Crash when swap files has invalid timestamp. +Solution: Check return value of ctime() for being NULL. +Files: src/memline.c + +Patch 7.0.128 +Problem: GUI: when closing gvim is cancelled because there is a changed + buffer the screen isn't updated to show the changed buffer in the + current window. (Krzysztof Kacprzak) +Solution: Redraw when closing gvim is cancelled. +Files: src/gui.c + +Patch 7.0.129 +Problem: GTK GUI: the GTK file dialog can't handle a relative path. +Solution: Make the initial directory a full path before passing it to GTK. + (James Vega) Also postpone adding the default file name until + after setting the directory. +Files: src/gui_gtk.c + +Patch 7.0.130 (extra) +Problem: Win32: Trying to edit or write devices may cause Vim to get stuck. +Solution: Add the 'opendevice' option, default off. Disallow + reading/writing from/to devices when it's off. + Also detect more devices by the full name starting with "\\.\". +Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h, + src/os_win32.c + +Patch 7.0.131 +Problem: Win32: "vim -r" does not list all the swap files. +Solution: Also check for swap files starting with a dot. +Files: src/memline.c + +Patch 7.0.132 (after 7.0.130) +Problem: Win32: Crash when Vim reads from stdin. +Solution: Only use mch_nodetype() when there is a file name. +Files: src/fileio.c + +Patch 7.0.133 +Problem: When searching included files messages are added to the history. +Solution: Set msg_hist_off for messages about scanning included files. + Set msg_silent to avoid message about wrapping around. +Files: src/edit.c, src/globals.h, src/message.c, src/search.c + +Patch 7.0.134 +Problem: Crash when comparing a recursively looped List or Dictionary. +Solution: Limit recursiveness for comparing to 1000. +Files: src/eval.c + +Patch 7.0.135 +Problem: Crash when garbage collecting list or dict with loop. +Solution: Don't use DEL_REFCOUNT but don't recurse into Lists and + Dictionaries when freeing them in the garbage collector. + Also add allocated Dictionaries to the list of Dictionaries to + avoid leaking memory. +Files: src/eval.c, src/proto/eval.pro, src/tag.c + +Patch 7.0.136 +Problem: Using "O" while matching parens are highlighted may not remove the + highlighting. (Ilya Bobir) +Solution: Also trigger CursorMoved when a line is inserted under the cursor. +Files: src/misc1.c + +Patch 7.0.137 +Problem: Configure check for big features is wrong. +Solution: Change "==" to "=". (Martti Kuparinen) +Files: src/auto/configure, src/configure.in + +Patch 7.0.138 (extra) +Problem: Mac: modifiers don't work with function keys. +Solution: Use GetEventParameter() to obtain modifiers. (Nicolas Weber) +Files: src/gui_mac.c + +Patch 7.0.139 +Problem: Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another + tab page does not prepare for undo properly. (Stefano Zacchiroli) +Solution: Call start_arrow() before switching tab page. +Files: src/edit.c + +Patch 7.0.140 (after 7.0.134) +Problem: Comparing recursively looped List or Dictionary doesn't work well. +Solution: Detect comparing a List or Dictionary with itself. +Files: src/eval.c + +Patch 7.0.141 +Problem: When pasting a while line on the command line an extra CR is added + literally. +Solution: Don't add the trailing CR when pasting with the mouse. +Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c + +Patch 7.0.142 +Problem: Using the middle mouse button in Select mode to paste text results + in an extra "y". (Kriton Kyrimis) +Solution: Let the middle mouse button replace the selected text with the + contents of the clipboard. +Files: src/normal.c + +Patch 7.0.143 +Problem: Setting 'scroll' to its default value was not handled correctly. +Solution: Compare the right field to PV_SCROLL. +Files: src/option.c + +Patch 7.0.144 +Problem: May compare two unrelated pointers when matching a pattern against + a string. (Dominique Pelle) +Solution: Avoid calling reg_getline() when REG_MULTI is false. +Files: src/regexp.c + +Patch 7.0.145 (after 7.0.142) +Problem: Compiler warning. +Solution: Add type cast. +Files: src/normal.c + +Patch 7.0.146 +Problem: When 'switchbuf' is set to "usetab" and the current tab has only a + quickfix window, jumping to an error always opens a new window. + Also, when the buffer is open in another tab page it's not found. +Solution: Check for the "split" value of 'switchbuf' properly. Search in + other tab pages for the desired buffer. (Yegappan Lakshmanan) +Files: src/buffer.c, src/quickfix.c + +Patch 7.0.147 +Problem: When creating a session file and there are several tab pages and + some windows have a local directory a short file name may be used + when it's not valid. (Marius Roets) + A session with multiple tab pages may result in "No Name" buffers. + (Bill McCarthy) +Solution: Don't enter tab pages when going through the list, only use a + pointer to the first window in each tab page. + Use "tabedit" instead of "tabnew | edit" when possible. +Files: src/ex_docmd.c + +Patch 7.0.148 +Problem: When doing "call a.xyz()" and "xyz" does not exist in dictionary + "a" there is no error message. (Yegappan Lakshmanan) +Solution: Add the error message. +Files: src/eval.c + +Patch 7.0.149 +Problem: When resizing a window that shows "~" lines the text sometimes + jumps down. +Solution: Remove code that uses "~" lines in some situations. Fix the + computation of the screen line of the cursor. Also set w_skipcol + to handle very long lines. +Files: src/misc1.c, src/window.c + +Patch 7.0.150 +Problem: When resizing the Vim window scrollbinding doesn't work. (Yakov + Lerner) +Solution: Do scrollbinding in set_shellsize(). +Files: src/term.c + +Patch 7.0.151 +Problem: Buttons in file dialog are not according to Gnome guidelines. +Solution: Swap Cancel and Open buttons. (Stefano Zacchiroli) +Files: src/gui_gtk.c + +Patch 7.0.152 +Problem: Crash when using lesstif 2. +Solution: Fill in the extension field. (Ben Hutchings) +Files: src/gui_xmebw.c + +Patch 7.0.153 +Problem: When using cscope and opening the temp file fails Vim crashes. + (Kaya Bekiroglu) +Solution: Check for NULL pointer returned from mch_open(). +Files: src/if_cscope.c + +Patch 7.0.154 +Problem: When 'foldnextmax' is negative Vim can hang. (James Vega) +Solution: Avoid the fold level becoming negative. +Files: src/fold.c, src/syntax.c + +Patch 7.0.155 +Problem: When getchar() returns a mouse button click there is no way to get + the mouse coordinates. +Solution: Add v:mouse_win, v:mouse_lnum and v:mouse_col. +Files: runtime/doc/eval.txt, src/eval.c, src/vim.h + +Patch 7.0.156 (extra) +Problem: Vim doesn't compile for Amiga OS 4. +Solution: Various changes for Amiga OS4. (Peter Bengtsson) +Files: src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c, + src/os_amiga.c, src/os_amiga.h, src/pty.c + +Patch 7.0.157 +Problem: When a function is used recursively the profiling information is + invalid. (Mikolaj Machowski) +Solution: Put the start time on the stack instead of in the function. +Files: src/eval.c + +Patch 7.0.158 +Problem: In a C file with ":set foldmethod=syntax", typing { on the + last line results in the cursor being in a closed fold. (Gautam + Iyer) +Solution: Open fold after inserting a new line. +Files: src/edit.c + +Patch 7.0.159 +Problem: When there is an I/O error in the swap file the cause of the error + cannot be seen. +Solution: Use PERROR() instead of EMSG() where possible. +Files: src/memfile.c + +Patch 7.0.160 +Problem: ":@a" echoes the command, Vi doesn't do that. +Solution: Set the silent flag in the typeahead buffer to avoid echoing the + command. +Files: src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro + +Patch 7.0.161 +Problem: Win32: Tab pages line popup menu isn't using the right encoding. + (Yongwei Wu) +Solution: Convert the text when necessary. Also fixes the Find/Replace + dialog title. (Yegappan Lakshmanan) +Files: src/gui_w48.c + +Patch 7.0.162 +Problem: "vim -o a b" when file "a" triggers the ATTENTION dialog, + selecting "Quit" exits Vim instead of editing "b" only. + When file "b" triggers the ATTENTION dialog selecting "Quit" or + "Abort" results in editing file "a" in that window. +Solution: When selecting "Abort" exit Vim. When selecting "Quit" close the + window. Also avoid hit-enter prompt when selecting Abort. +Files: src/buffer.c, src/main.c + +Patch 7.0.163 +Problem: Can't retrieve the position of a sign after it was set. +Solution: Add the netbeans interface getAnno command. (Xavier de Gaye) +Files: runtime/doc/netbeans.txt, src/netbeans.c + +Patch 7.0.164 +Problem: ":redir @+" doesn't work. +Solution: Accept "@+" just like "@*". (Yegappan Lakshmanan) +Files: src/ex_docmd.c + +Patch 7.0.165 +Problem: Using CTRL-L at the search prompt adds a "/" and other characters + without escaping, causing the pattern not to match. +Solution: Escape special characters with a backslash. +Files: src/ex_getln.c + +Patch 7.0.166 +Problem: Crash in cscope code when connection could not be opened. + (Kaya Bekiroglu) +Solution: Check for the file descriptor to be NULL. +Files: src/if_cscope.c + +Patch 7.0.167 +Problem: ":function" redefining a dict function doesn't work properly. + (Richard Emberson) +Solution: Allow a function name to be a number when it's a function + reference. +Files: src/eval.c + +Patch 7.0.168 +Problem: Using uninitialized memory and memory leak. (Dominique Pelle) +Solution: Use alloc_clear() instead of alloc() for w_lines. Free + b_ml.ml_stack after recovery. +Files: src/memline.c, src/window.c + +Patch 7.0.169 +Problem: With a Visual block selection, with the cursor in the left upper + corner, pressing "I" doesn't remove the highlighting. (Guopeng + Wen) +Solution: When checking if redrawing is needed also check if Visual + selection is still active. +Files: src/screen.c + +Patch 7.0.170 (extra) +Problem: Win32: Using "gvim --remote-tab foo" when gvim is minimized while + it previously was maximized, un-maximizing doesn't work properly. + And the labels are not displayed properly when 'encoding' is + utf-8. +Solution: When minimized check for SW_SHOWMINIMIZED. When updating the tab + pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu + Yubao) +Files: src/gui_w48.c + +Patch 7.0.171 (extra) +Problem: VMS: A file name with multiple paths is written in the wrong file. +Solution: Get the actually used file name. (Zoltan Arpadffy) + Also add info to the :version command about compilation. +Files: src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c + +Patch 7.0.172 +Problem: Crash when recovering and quitting at the "press-enter" prompt. +Solution: Check for "msg_list" to be NULL. (Liu Yubao) +Files: src/ex_eval.c + +Patch 7.0.173 +Problem: ":call f().TT()" doesn't work. (Richard Emberson) +Solution: When a function returns a Dictionary or another composite continue + evaluating what follows. +Files: src/eval.c + +Patch 7.0.174 +Problem: ":mksession" doesn't restore window layout correctly in tab pages + other than the current one. (Zhibin He) +Solution: Use the correct topframe for producing the window layout commands. +Files: src/ex_docmd.c + +Patch 7.0.175 +Problem: The result of tr() is missing the terminating NUL. (Ingo Karkat) +Solution: Add the NUL. +Files: src/eval.c + +Patch 7.0.176 +Problem: ":emenu" isn't executed directly, causing the encryption key + prompt to fail. (Life Jazzer) +Solution: Fix wrong #ifdef. +Files: src/menu.c + +Patch 7.0.177 +Problem: When the press-enter prompt gets a character from a non-remappable + mapping, it's put back in the typeahead buffer as remappable, + which may cause an endless loop. +Solution: Restore the non-remappable flag and the silent flag when putting a + char back in the typeahead buffer. +Files: src/getchar.c, src/message.c, src/normal.c + +Patch 7.0.178 +Problem: When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo + ("\xe4" == "\xe4")" varies. +Solution: In mb_strnicmp() avoid looking past NUL bytes. +Files: src/mbyte.c + +Patch 7.0.179 +Problem: Using ":recover" or "vim -r" without a swapfile crashes Vim. +Solution: Check for "buf" to be unequal NULL. (Yukihiro Nakadaira) +Files: src/memline.c + +Patch 7.0.180 (extra, after 7.0.171) +Problem: VMS: build failed. Problem with swapfiles. +Solution: Add "compiled_arch". Always expand path and pass it to + buf_modname(). (Zoltan Arpadffy) +Files: src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim + +Patch 7.0.181 +Problem: When reloading a file that starts with an empty line, the reloaded + buffer has an extra empty line at the end. (Motty Lentzitzky) +Solution: Delete all lines, don't use bufempty(). +Files: src/fileio.c + +Patch 7.0.182 +Problem: When using a mix of undo and "g-" it may no longer be possible to + go to every point in the undo tree. (Andy Wokula) +Solution: Correctly update pointers in the undo tree. +Files: src/undo.c + +Patch 7.0.183 +Problem: Crash in ":let" when redirecting to a variable that's being + displayed. (Thomas Link) +Solution: When redirecting to a variable only do the assignment when + stopping redirection to avoid that setting the variable causes a + freed string to be accessed. +Files: src/eval.c + +Patch 7.0.184 +Problem: When the cscope program is called "mlcscope" the Cscope interface + doesn't work. +Solution: Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik) +Files: src/if_cscope.c + +Patch 7.0.185 +Problem: Multi-byte characters in a message are displayed with attributes + from what comes before it. +Solution: Don't use the attributes for a multi-byte character. Do use + attributes for special characters. (Yukihiro Nakadaira) +Files: src/message.c + +Patch 7.0.186 +Problem: Get an ml_get error when 'encoding' is "utf-8" and searching for + "/\_s*/e" in an empty buffer. (Andrew Maykov) +Solution: Don't try getting the line just below the last line. +Files: src/search.c + +Patch 7.0.187 +Problem: Can't source a remote script properly. +Solution: Add the SourceCmd event. (Charles Campbell) +Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h + +Patch 7.0.188 (after 7.0.186) +Problem: Warning for wrong pointer type. +Solution: Add a type cast. +Files: src/search.c + +Patch 7.0.189 +Problem: Translated message about finding matches is truncated. (Yukihiro + Nakadaira) +Solution: Enlarge the buffer. Also use vim_snprintf(). +Files: src/edit.c + +Patch 7.0.190 +Problem: "syntax spell default" results in an error message. +Solution: Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado) +Files: src/syntax.c + +Patch 7.0.191 +Problem: The items used by getqflist() and setqflist() don't match. +Solution: Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan) +Files: runtime/doc/eval.txt, src/quickfix.c + +Patch 7.0.192 +Problem: When 'swapfile' is switched off in an empty file it is possible + that not all blocks are loaded into memory, causing ml_get errors + later. +Solution: Rename "dont_release" to "mf_dont_release" and also use it to + avoid using the cached line and locked block. +Files: src/globals.h, src/memfile.c, src/memline.c + +Patch 7.0.193 +Problem: Using --remote or --remote-tab with an argument that matches + 'wildignore' causes a crash. +Solution: Check the argument count before using ARGLIST[0]. +Files: src/ex_cmds.c + +Patch 7.0.194 +Problem: Once an ml_get error is given redrawing part of the screen may + cause it again, resulting in an endless loop. +Solution: Don't give the error message for a recursive call. +Files: src/memline.c + +Patch 7.0.195 +Problem: When a buffer is modified and 'autowriteall' is set, ":quit" + results in an endless loop when there is a conversion error while + writing. (Nikolai Weibull) +Solution: Make autowrite() return FAIL if the buffer is still changed after + writing it. + /* put the cursor on the last char, for 'tw' formatting */ +Files: src/ex_cmds2.c + +Patch 7.0.196 +Problem: When using ":vert ball" the computation of the mouse pointer + position may be off by one column. (Stefan Karlsson) +Solution: Recompute the frame width when moving the vertical separator from + one window to another. +Files: src/window.c + +Patch 7.0.197 (extra) +Problem: Win32: Compiling with EXITFREE doesn't work. +Solution: Adjust a few #ifdefs. (Alexei Alexandrof) +Files: src/misc2.c, src/os_mswin.c + +Patch 7.0.198 (extra) +Problem: Win32: Compiler warnings. No need to generate gvim.exe.mnf. +Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly) +Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c + +Patch 7.0.199 +Problem: When using multi-byte characters the combination of completion and + formatting may result in a wrong cursor position. +Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro + Nakadaira) Also check for the column to be zero. +Files: src/edit.c + +Patch 7.0.200 +Problem: Memory leaks when out of memory. +Solution: Free the memory. +Files: src/edit.c, src/diff.c + +Patch 7.0.201 +Problem: Message for ":diffput" about buffer not being in diff mode may be + wrong. +Solution: Check for buffer in diff mode but not modifiable. +Files: src/diff.c + +Patch 7.0.202 +Problem: Problems on Tandem systems while compiling and at runtime. +Solution: Recognize root uid is 65535. Check select() return value for it + not being supported. Avoid wrong function prototypes. Mention + use of -lfloss. (Matthew Woehlke) +Files: src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c, + src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c, + src/vim.h + +Patch 7.0.203 +Problem: 0x80 characters in a register are not handled correctly for the + "@" command. +Solution: Escape CSI and 0x80 characters. (Yukihiro Nakadaira) +Files: src/ops.c + +Patch 7.0.204 +Problem: Cscope: Parsing matches for listing isn't done properly. +Solution: Check for line number being found. (Yu Zhao) +Files: src/if_cscope.c + +Patch 7.0.205 (after 7.0.203) +Problem: Can't compile. +Solution: Always include the vim_strsave_escape_csi function. +Files: src/getchar.c + +Patch 7.0.206 (after 7.0.058) +Problem: Some characters of the "gb18030" encoding are not handled + properly. +Solution: Do not use "cp936" as an alias for "gb18030" encoding. Instead + initialize 'encoding' to "cp936". +Files: src/mbyte.c, src/option.c + +Patch 7.0.207 +Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when + recorded and then again when the register is executed. +Solution: Remove escaping before putting the recorded characters in a + register. (Yukihiro Nakadaira) +Files: src/getchar.c, src/ops.c, src/proto/getchar.pro + +Patch 7.0.208 (after 7.0.171 and 7.0.180) +Problem: VMS: changes to path handling cause more trouble than they solve. +Solution: Revert changes. +Files: src/buffer.c, src/memline.c, src/os_unix.c + +Patch 7.0.209 +Problem: When replacing a line through Python the cursor may end up beyond + the end of the line. +Solution: Check the cursor column after replacing the line. +Files: src/if_python.c + +Patch 7.0.210 +Problem: ":cbuffer" and ":lbuffer" always fail when the buffer is modified. + (Gary Johnson) +Solution: Support adding a !. (Yegappan Lakshmanan) +Files: runtime/doc/quickfix.txt, src/ex_cmds.h + +Patch 7.0.211 +Problem: With ":set cindent noai bs=0" using CTRL-U in Insert mode will + delete auto-indent. After ":set ai" it doesn't. +Solution: Also check 'cindent' being set. (Ryan Lortie) +Files: src/edit.c + +Patch 7.0.212 +Problem: The GUI can't be terminated with SIGTERM. (Mark Logan) +Solution: Use the signal protection in the GUI as in the console, allow + signals when waiting for 100 msec or longer. +Files: src/ui.c + +Patch 7.0.213 +Problem: When 'spellfile' has two regions that use the same sound folding + using "z=" will cause memory to be freed twice. (Mark Woodward) +Solution: Clear the hashtable properly so that the items are only freed once. +Files: src/spell.c + +Patch 7.0.214 +Problem: When using in a user command it's not possible to have an + argument end in '\ '. +Solution: Change the handling of backslashes. (Yakov Lerner) +Files: runtime/doc/map.txt, src/ex_docmd.c + +Patch 7.0.215 (extra) +Problem: Mac: Scrollbar size isn't set. Context menu has disabled useless + Help entry. Call to MoreMasterPointers() is ignored. +Solution: Call SetControlViewSize() in gui_mch_set_scrollbar_thumb(). Use + kCMHelpItemRemoveHelp for ContextualMenuSelect(). Remove call to + MoreMasterPointers(). (Nicolas Weber) +Files: src/gui_mac.c + +Patch 7.0.216 +Problem: ":tab wincmd ]" does not open a tab page. (Tony Mechelynck) +Solution: Copy the cmdmod.tab value to postponed_split_tab and use it. +Files: src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c + +Patch 7.0.217 +Problem: This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion) +Solution: Set "skip_match" to advance to the next line. +Files: src/ex_cmds.c + +Patch 7.0.218 +Problem: "%B" in 'statusline' always shows zero in Insert mode. (DervishD) +Solution: Remove the exception for Insert mode, check the column for being + valid instead. +Files: src/buffer.c + +Patch 7.0.219 +Problem: When using the 'editexisting.vim' script and a file is being + edited in another tab page the window is split. The "+123" + argument is not used. +Solution: Make the tab page with the file the current tab page. Set + v:swapcommand when starting up to the first "+123" or "-c" command + line argument. +Files: runtime/macros/editexisting.vim, src/main.c + +Patch 7.0.220 +Problem: Crash when using winnr('#') in a new tab page. (Andy Wokula) +Solution: Check for not finding the window. +Files: src/eval.c + +Patch 7.0.221 +Problem: finddir() uses 'path' by default, where "." means relative to the + current file. But it works relative to the current directory. + (Tye Zdrojewski) +Solution: Add the current buffer name to find_file_in_path_option() for the + relative file name. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.0.222 +Problem: Perl indenting using 'cindent' works almost right. +Solution: Recognize '#' to start a comment. (Alex Manoussakis) Added '#' + flag in 'cinoptions'. +Files: runtime/doc/indent.txt, src/misc1.c + +Patch 7.0.223 +Problem: Unprintable characters in completion text mess up the popup menu. + (Gombault Damien) +Solution: Use strtrans() to make the text printable. +Files: src/charset.c, src/popupmnu.c + +Patch 7.0.224 +Problem: When expanding "##" spaces are escaped twice. (Pavol Juhas) +Solution: Don't escape the spaces that separate arguments. +Files: src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro + +Patch 7.0.225 +Problem: When using setline() in an InsertEnter autocommand and doing "A" + the cursor ends up on the last byte in the line. (Yukihiro + Nakadaira) +Solution: Only adjust the column when using setline() for the cursor line. + Move it back to the head byte if necessary. +Files: src/eval.c, src/misc2.c + +Patch 7.0.226 +Problem: Display flickering when updating signs through the netbeans + interface. (Xavier de Gaye) +Solution: Remove the redraw_later(CLEAR) call. +Files: src/netbeans.c + +Patch 7.0.227 +Problem: Crash when closing a window in the GUI. (Charles Campbell) +Solution: Don't call out_flush() from win_free(). +Files: src/window.c + +Patch 7.0.228 +Problem: Cygwin: problem with symlink to DOS style path. +Solution: Invoke cygwin_conv_to_posix_path(). (Luca Masini) +Files: src/os_unix.c + +Patch 7.0.229 +Problem: When 'pastetoggle' starts with Esc then pressing Esc in Insert + mode will not time out. (Jeffery Small) +Solution: Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies + to the 'pastetoggle' key. +Files: src/getchar.c + +Patch 7.0.230 +Problem: After using ":lcd" a script doesn't know how to restore the + current directory. +Solution: Add the haslocaldir() function. (Bob Hiestand) +Files: runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c + +Patch 7.0.231 +Problem: When recovering from a swap file the page size is likely to be + different from the minimum. The block used for the first page + then has a buffer of the wrong size, causing a crash when it's + reused later. (Zephaniah Hull) +Solution: Reallocate the buffer when the page size changes. Also check that + the page size is at least the minimum value. +Files: src/memline.c + +Patch 7.0.232 (extra) +Problem: Mac: doesn't support GUI tab page labels. +Solution: Add GUI tab page labels. (Nicolas Weber) +Files: src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c, + src/proto/gui_mac.pro + +Patch 7.0.233 (extra) +Problem: Mac: code formatted badly. +Solution: Fix code formatting +Files: src/gui_mac.c + +Patch 7.0.234 +Problem: It's possible to use feedkeys() from a modeline. That is a + security issue, can be used for a trojan horse. +Solution: Disallow using feedkeys() in the sandbox. +Files: src/eval.c + +Patch 7.0.235 +Problem: It is possible to use writefile() in the sandbox. +Solution: Add a few more checks for the sandbox. +Files: src/eval.c + +Patch 7.0.236 +Problem: Linux 2.4 uses sysinfo() with a mem_unit field, which is not + backwards compatible. +Solution: Add an autoconf check for sysinfo.mem_unit. Let mch_total_mem() + return Kbyte to avoid overflow. +Files: src/auto/configure, src/configure.in, src/config.h.in, + src/option.c, src/os_unix.c + +Patch 7.0.237 +Problem: For root it is recommended to not use 'modeline', but in + not-compatible mode the default is on. +Solution: Let 'modeline' default to off for root. +Files: runtime/doc/options.txt, src/option.c + +Patch 7.0.238 +Problem: Crash when ":match" pattern runs into 'maxmempattern'. (Yakov + Lerner) +Solution: Don't free the regexp program of match_hl. +Files: src/screen.c + +Patch 7.0.239 +Problem: When using local directories and tab pages ":mksession" uses a + short file name when it shouldn't. Window-local options from a + modeline may be applied to the wrong window. (Teemu Likonen) +Solution: Add the did_lcd flag, use the full path when it's set. Don't use + window-local options from the modeline when using the current + window for another buffer in ":doautoall". +Files: src/fileio.c, src/ex_docmd.c + +Patch 7.0.240 +Problem: Crash when splitting a window in the GUI. (opposite of 7.0.227) +Solution: Don't call out_flush() from win_alloc(). Also avoid this for + win_delete(). Also block autocommands while the window structure + is invalid. +Files: src/window.c + +Patch 7.0.241 +Problem: ":windo throw 'foo'" loops forever. (Andy Wokula) +Solution: Detect that win_goto() doesn't work. +Files: src/ex_cmds2.c + +Patch 7.0.242 (extra) +Problem: Win32: Using "-register" in a Vim that does not support OLE causes + a crash. +Solution: Don't use EMSG() but mch_errmsg(). Check p_go for being NULL. + (partly by Michael Wookey) +Files: src/gui_w32.c + +Patch 7.0.243 (extra) +Problem: Win32: When GvimExt is built with MSVC 2005 or later, the "Edit + with vim" context menu doesn't appear in the Windows Explorer. +Solution: Embed the linker manifest file into the resources of GvimExt.dll. + (Mathias Michaelis) +Files: src/GvimExt/Makefile + + vim:tw=78:ts=8:ft=help:norl: 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.0. Last change: 2006 Apr 24 +*workshop.txt* For Vim version 7.1a. Last change: 2006 Apr 24 VIM REFERENCE MANUAL by Gordon Prieur diff --git a/runtime/doc/xxd-it.UTF-8.1 b/runtime/doc/xxd-it.UTF-8.1 --- a/runtime/doc/xxd-it.UTF-8.1 +++ b/runtime/doc/xxd-it.UTF-8.1 @@ -226,7 +226,7 @@ Stampa 3 linee (0x30 bytes esadecimali) \fI% xxd \-s \-0x30 file .PP .br -Stampa 120 bytes come immagine esadecimale continua con 40 bytes per linea. +Stampa 120 bytes come immagine esadecimale continua con 20 bytes per linea. .br \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR diff --git a/runtime/doc/xxd-ru.1 b/runtime/doc/xxd-ru.1 --- a/runtime/doc/xxd-ru.1 +++ b/runtime/doc/xxd-ru.1 @@ -231,7 +231,7 @@ xxd Ó ÐÏÍÏÝØÀ strace(1) ÉÌÉ truss(1) × ÔÅÈ ÓÌÕÞÁÑÈ, ËÏÇÄÁ ÐÒÉÍÅÎÑÅÔÓÑ ËÌÀÞ .PP .br ÷Ù×ÅÓÔÉ 120 ÂÁÊÔÏ× × ×ÉÄÅ ÎÅÐÒÅÒÙ×ÎÏÇÏ ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÏÇÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ -ÐÏ 40 ÏËÔÅÔÏ× × ÓÔÒÏËÅ: +ÐÏ 20 ÏËÔÅÔÏ× × ÓÔÒÏËÅ: .PP \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR .br diff --git a/runtime/doc/xxd.1 b/runtime/doc/xxd.1 --- a/runtime/doc/xxd.1 +++ b/runtime/doc/xxd.1 @@ -123,7 +123,7 @@ added to file positions found in hexdump start at .RI < seek > bytes abs. (or rel.) infile offset. -\fI+ fRindicates that the seek is relative to the current stdin file position +\fI+ \fRindicates that the seek is relative to the current stdin file position (meaningless when not reading from stdin). \fI\- \fRindicates that the seek should be that many characters from the end of the input (or if combined with \fI+\fR: before the current stdin file position). @@ -172,17 +172,17 @@ The following examples may help to clari Rewind stdin before reading; needed because the `cat' has already read to the end of stdin. .br -\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file +\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR .PP Hexdump from file position 0x480 (=1024+128) onwards. The `+' sign means "relative to the current position", thus the `128' adds to the 1k where dd left off. .br -\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file +\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR .PP Hexdump from file position 0x100 ( = 1024\-768) on. .br -\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file +\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR .PP However, this is a rare situation and the use of `+' is rarely needed. The author prefers to monitor the effect of xxd with strace(1) or truss(1), whenever \-s is used. @@ -192,16 +192,16 @@ The author prefers to monitor the effect Print everything but the first three lines (hex 0x30 bytes) of .BR file . .br -\fI% xxd \-s 0x30 file +\fI% xxd \-s 0x30 file\fR .PP .br Print 3 lines (hex 0x30 bytes) from the end of .BR file . .br -\fI% xxd \-s \-0x30 file +\fI% xxd \-s \-0x30 file\fR .PP .br -Print 120 bytes as continuous hexdump with 40 octets per line. +Print 120 bytes as continuous hexdump with 20 octets per line. .br \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR .br diff --git a/runtime/filetype.vim b/runtime/filetype.vim --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar -" Last Change: 2006 May 02 +" Last Change: 2007 Apr 26 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -88,6 +88,11 @@ au BufNewFile,BufRead *.wrm setf acedb " Ada (83, 9X, 95) au BufNewFile,BufRead *.adb,*.ads,*.ada setf ada +if has("vms") + au BufNewFile,BufRead *.gpr,*.ada_m,*.adc setf ada +else + au BufNewFile,BufRead *.gpr setf ada +endif " AHDL au BufNewFile,BufRead *.tdf setf ahdl @@ -194,6 +199,9 @@ au BufNewFile,BufRead *.mar setf vmasm " Atlas au BufNewFile,BufRead *.atl,*.as setf atlas +" Autoit v3 +au BufNewFile,BufRead *.au3 setf autoit + " Automake au BufNewFile,BufRead [mM]akefile.am,GNUmakefile.am setf automake @@ -225,6 +233,12 @@ endfun " Visual Basic Script (close to Visual Basic) au BufNewFile,BufRead *.vbs,*.dsm,*.ctl setf vb +" IBasic file (similar to QBasic) +au BufNewFile,BufRead *.iba,*.ibi setf ibasic + +" FreeBasic file (similar to QBasic) +au BufNewFile,BufRead *.fb,*.bi setf freebasic + " Batch file for MSDOS. au BufNewFile,BufRead *.bat,*.sys setf dosbatch " *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd. @@ -303,6 +317,9 @@ au BufNewFile,BufRead cfengine.conf set " Comshare Dimension Definition Language au BufNewFile,BufRead *.cdl setf cdl +" Conary Recipe +au BufNewFile,BufRead *.recipe setf conaryrecipe + " Controllable Regex Mutilator au BufNewFile,BufRead *.crm setf crm @@ -436,6 +453,10 @@ au BufNewFile,BufRead *.prg " Cmake au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake +" Cmusrc +au BufNewFile,BufRead ~/.cmus/{autosave,rc,command-history,*.theme} setf cmusrc +au BufNewFile,BufRead */cmus/{rc,*.theme} setf cmusrc + " Cobol au BufNewFile,BufRead *.cbl,*.cob,*.lib setf cobol " cobol or zope form controller python script? (heuristic) @@ -614,7 +635,10 @@ au BufNewFile,BufRead *.mas,*.master se au BufNewFile,BufRead *.fs,*.ft setf forth " Fortran -au BufNewFile,BufRead *.f,*.F,*.for,*.fpp,*.FPP,*.ftn,*.f77,*.F77,*.f90,*.F90,*.f95,*.F95 setf fortran +if has("fname_case") + au BufNewFile,BufRead *.F,*.FOR,*.FPP,*.FTN,*.F77,*.F90,*.F95 setf fortran +endif +au BufNewFile,BufRead *.f,*.for,*.fpp,*.ftn,*.f77,*.f90,*.f95 setf fortran " FStab au BufNewFile,BufRead fstab,mtab setf fstab @@ -660,6 +684,9 @@ au BufNewFile,BufRead /etc/group setf g " GTK RC au BufNewFile,BufRead .gtkrc,gtkrc setf gtkrc +" Hamster Classic | Playground files +au BufNewFile,BufRead *.hsc,*.hsm setf hamster + " Haskell au BufNewFile,BufRead *.hs setf haskell au BufNewFile,BufRead *.lhs setf lhaskell @@ -744,8 +771,11 @@ au BufNewFile,BufRead .indent.pro setf " Inform au BufNewFile,BufRead *.inf,*.INF setf inform +" Initng +au BufNewFile,BufRead /etc/initng/**/*.i,*.ii setf initng + " Ipfilter -au BufNewFile,BufRead ipf.conf,ipf.rules setf ipfilter +au BufNewFile,BufRead ipf.conf,ipf6.conf,ipf.rules setf ipfilter " Informix 4GL (source - canonical, include file, I4GL+M4 preproc.) au BufNewFile,BufRead *.4gl,*.4gh,*.m4gl setf fgl @@ -771,8 +801,8 @@ au BufNewFile,BufRead *.java,*.jav setf " JavaCC au BufNewFile,BufRead *.jj,*.jjt setf javacc -" JavaScript -au BufNewFile,BufRead *.js,*.javascript setf javascript +" JavaScript, ECMAScript +au BufNewFile,BufRead *.js,*.javascript,*.es setf javascript " Java Server Pages au BufNewFile,BufRead *.jsp setf jsp @@ -876,7 +906,7 @@ au BufNewFile,BufRead *.m4 " MaGic Point au BufNewFile,BufRead *.mgp setf mgp -" Mail (for Elm, trn, mutt, rn, slrn) +" Mail (for Elm, trn, mutt, muttng, rn, slrn) au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt{ng,}-*-\w\+,mutt\w\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail " Mail aliases @@ -934,6 +964,9 @@ endfun " Maya Extension Language au BufNewFile,BufRead *.mel setf mel +" Messages +au BufNewFile,BufRead /var/log/messages,/var/log/messages.*[0-9] setf messages + " Metafont au BufNewFile,BufRead *.mf setf mf @@ -1015,7 +1048,7 @@ au BufRead,BufNewFile *.mu setf mupad " Mush au BufNewFile,BufRead *.mush setf mush -" Mutt setup file +" Mutt setup file (also for Muttng) au BufNewFile,BufRead Mutt{ng,}rc setf muttrc au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc') @@ -1232,6 +1265,9 @@ au BufNewFile,BufRead *.it,*.ih setf p " Oracle Pro*C/C++ au BufNewFile,BufRead .pc setf proc +" Privoxy actions file +au BufNewFile,BufRead *.action setf privoxy + " Procmail au BufNewFile,BufRead .procmail,.procmailrc setf procmail @@ -1371,31 +1407,31 @@ endif au BufNewFile,BufRead *.r,*.R call s:FTr() fun! s:FTr() - if getline(1) =~ '^REBOL' - setf rebol - else - let n = 1 - let max = line("$") - if max > 50 - let max = 50 + let max = line("$") > 50 ? 50 : line("$") + + for n in range(1, max) + " Rebol is easy to recognize, check for that first + if getline(n) =~ '\' + setf rebol + return endif - while n < max - " R has # comments - if getline(n) =~ '^\s*#' - setf r - break - endif - " Rexx has /* comments */ - if getline(n) =~ '^\s*/\*' - setf rexx - break - endif - let n = n + 1 - endwhile - if n >= max + endfor + + for n in range(1, max) + " R has # comments + if getline(n) =~ '^\s*#' + setf r + return + endif + " Rexx has /* comments */ + if getline(n) =~ '^\s*/\*' setf rexx + return endif - endif + endfor + + " Nothing recognized, assume Rexx + setf rexx endfun " Remind @@ -1443,6 +1479,9 @@ au BufNewFile,BufRead *.sa setf sather " Scilab au BufNewFile,BufRead *.sci,*.sce setf scilab +" SD: Streaming Descriptors +au BufNewFile,BufRead *.sd setf sd + " SDL au BufNewFile,BufRead *.sdl,*.pr setf sdl @@ -1922,6 +1961,9 @@ au BufNewFile,BufRead *.web " Windows Scripting Host and Windows Script Component au BufNewFile,BufRead *.ws[fc] setf wsh +" XHTML +au BufNewFile,BufRead *.xhtml,*.xht setf xhtml + " X Pixmap (dynamically sets colors, use BufEnter to make it work better) au BufEnter *.xpm \ if getline(1) =~ "XPM2" | @@ -1973,6 +2015,9 @@ au BufNewFile,BufRead *.csproj,*.csproj. " Qt Linguist translation source and Qt User Interface Files are XML au BufNewFile,BufRead *.ts,*.ui setf xml +" TPM's are RDF-based descriptions of TeX packages (Nikolai Weibull) +au BufNewFile,BufRead *.tpm setf xml + " Xdg menus au BufNewFile,BufRead /etc/xdg/menus/*.menu setf xml @@ -2052,6 +2097,9 @@ au StdinReadPost * if !did_filetype() | au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') +" Bazaar version control +au BufNewFile,BufRead bzr_log.* setf bzr + " BIND zone au BufNewFile,BufRead */named/db.*,*/bind/db.* call s:StarSetf('bindzone') @@ -2073,6 +2121,7 @@ au BufNewFile,BufRead /etc/apt/sources.l au BufNewFile,BufRead drac.* call s:StarSetf('dracula') " Fvwm +au BufNewFile,BufRead */.fvwm/* call s:StarSetf('fvwm') au BufNewFile,BufRead *fvwmrc*,*fvwm95*.hook \ let b:fvwm_version = 1 | call s:StarSetf('fvwm') au BufNewFile,BufRead *fvwm2rc* diff --git a/runtime/ftplugin/fvwm.vim b/runtime/ftplugin/fvwm.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/fvwm.vim @@ -0,0 +1,14 @@ +" Created : Tue 09 May 2006 02:07:31 PM CDT +" Modified : Tue 09 May 2006 02:07:31 PM CDT +" Author : Gautam Iyer +" Description : ftplugin for fvwm config files + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl com< cms< fo<" + +setlocal comments=:# commentstring=#\ %s +setlocal formatoptions-=t formatoptions+=croql diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim --- a/runtime/ftplugin/help.vim +++ b/runtime/ftplugin/help.vim @@ -8,6 +8,6 @@ if exists("b:did_ftplugin") endif let b:did_ftplugin = 1 -let b:undo_plugin = "setl fo< tw<" +let b:undo_ftplugin = "setl fo< tw<" setlocal formatoptions+=tcroql textwidth=78 diff --git a/runtime/ftplugin/htmldjango.vim b/runtime/ftplugin/htmldjango.vim new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/htmldjango.vim @@ -0,0 +1,13 @@ +" Vim filetype plugin file +" Language: Django HTML template +" Maintainer: Dave Hodder +" Last Change: 2007 Jan 25 + +" Only use this filetype plugin when no other was loaded. +if exists("b:did_ftplugin") + finish +endif + +" Use HTML and Django template ftplugins. +runtime! ftplugin/html.vim +runtime! ftplugin/django.vim diff --git a/runtime/ftplugin/javascript.vim b/runtime/ftplugin/javascript.vim --- a/runtime/ftplugin/javascript.vim +++ b/runtime/ftplugin/javascript.vim @@ -1,13 +1,38 @@ " Vim filetype plugin file " Language: Javascript -" Maintainer: Bram Moolenaar (for now) -" Last Change: 2006 Jan 30 +" Maintainer: Doug Kearns +" Last Change: 2007 Feb 21 +" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/ftplugin/javascript.vim if exists("b:did_ftplugin") finish endif let b:did_ftplugin = 1 +let s:cpo_save = &cpo +set cpo-=C + +" Set 'formatoptions' to break comment lines but not other lines, +" " and insert the comment leader when hitting or using "o". +setlocal formatoptions-=t formatoptions+=croql + +" Set completion with CTRL-X CTRL-O to autoloaded function. if exists('&ofu') - setlocal ofu=javascriptcomplete#CompleteJS + setlocal omnifunc=javascriptcomplete#CompleteJS endif + +" Set 'comments' to format dashed lists in comments. +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +setlocal commentstring=//%s + +" Change the :browse e filter to primarily show Java-related files. +if has("gui_win32") + let b:browsefilter="Javascript Files (*.js)\t*.js\n" + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setl fo< ofu< com< cms<" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim --- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: man " Maintainer: Nam SungHyun -" Last Change: 2006 Mar 28 +" Last Change: 2006 Dec 04 " To make the ":Man" command available before editing a manual page, source " this script from your startup vimrc file. @@ -119,9 +119,7 @@ func GetPage(...) if &filetype != "man" let thiswin = winnr() exe "norm! \b" - if winnr() == 1 - new - else + if winnr() > 1 exe "norm! " . thiswin . "\w" while 1 if &filetype == "man" @@ -129,11 +127,14 @@ func GetPage(...) endif exe "norm! \w" if thiswin == winnr() - new break endif endwhile endif + if &filetype != "man" + new + setl nonu fdc=0 + endif endif silent exec "edit $HOME/".page.".".sect."~" " Avoid warning for editing the dummy file twice diff --git a/runtime/ftplugin/php.vim b/runtime/ftplugin/php.vim --- a/runtime/ftplugin/php.vim +++ b/runtime/ftplugin/php.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: php " Maintainer: Dan Sharp -" Last Changed: 2005 Sep 05 +" Last Changed: 2006 Jul 15 " URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin if exists("b:did_ftplugin") | finish | endif @@ -30,6 +30,9 @@ endif if exists("b:match_words") let s:match_words = b:match_words endif +if exists("b:match_skip") + unlet b:match_skip +endif " Change the :browse e filter to primarily show PHP-related files. if has("gui_win32") @@ -41,12 +44,13 @@ endif setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\? setlocal iskeyword+=$ if exists("loaded_matchit") - let b:match_words = ',\:\,' . + let b:match_words = ',\:\,' . \ '\:\:\:\,' . \ '\:\,' . \ '\:\,' . \ '\:\,' . \ '\:\,' . + \ '(:),[:],{:},' . \ s:match_words endif " ### diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim --- a/runtime/ftplugin/vim.vim +++ b/runtime/ftplugin/vim.vim @@ -1,7 +1,7 @@ " Vim filetype plugin " Language: Vim " Maintainer: Bram Moolenaar -" Last Change: 2005 Feb 14 +" Last Change: 2006 Sep 26 " Only do this when not done yet for this buffer if exists("b:did_ftplugin") @@ -48,6 +48,7 @@ if exists("loaded_matchit") let b:match_words = \ '\:\:\,' . \ '\:\:\:\,' . + \ '\:\:\:\,' . \ '\:\:\,' . \ '\:\:\:\,' . \ '\\)\@!\S:\,' . diff --git a/runtime/indent/bst.vim b/runtime/indent/bst.vim new file mode 100644 --- /dev/null +++ b/runtime/indent/bst.vim @@ -0,0 +1,75 @@ +" Vim indent file +" Language: bst +" Author: Tim Pope +" $Id$ + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal expandtab +setlocal indentexpr=GetBstIndent(v:lnum) +"setlocal smartindent +setlocal cinkeys& +setlocal cinkeys-=0# +setlocal indentkeys& +"setlocal indentkeys+=0% + +" Only define the function once. +if exists("*GetBstIndent") + finish +endif + +function! s:prevgood(lnum) + " Find a non-blank line above the current line. + " Skip over comments. + let lnum = a:lnum + while lnum > 0 + let lnum = prevnonblank(lnum - 1) + if getline(lnum) !~ '^\s*%.*$' + break + endif + endwhile + return lnum +endfunction + +function! s:strip(lnum) + let line = getline(a:lnum) + let line = substitute(line,'"[^"]*"','""','g') + let line = substitute(line,'%.*','','') + let line = substitute(line,'^\s\+','','') + return line +endfunction + +function! s:count(string,char) + let str = substitute(a:string,'[^'.a:char.']','','g') + return strlen(str) +endfunction + +function! GetBstIndent(lnum) abort + if a:lnum == 1 + return 0 + endif + let lnum = s:prevgood(a:lnum) + if lnum <= 0 + return indent(a:lnum - 1) + endif + let line = s:strip(lnum) + let cline = s:strip(a:lnum) + if cline =~ '^}' && exists("b:current_syntax") + call cursor(a:lnum,indent(a:lnum)) + if searchpair('{','','}','bW',"synIDattr(synID(line('.'),col('.'),1),'name') =~? 'comment\\|string'") + if col('.')+1 == col('$') + return indent('.') + else + return virtcol('.')-1 + endif + endif + endif + let fakeline = substitute(line,'^}','','').matchstr(cline,'^}') + let ind = indent(lnum) + let ind = ind + &sw * s:count(line,'{') + let ind = ind - &sw * s:count(fakeline,'}') + return ind +endfunction diff --git a/runtime/indent/cobol.vim b/runtime/indent/cobol.vim new file mode 100644 --- /dev/null +++ b/runtime/indent/cobol.vim @@ -0,0 +1,216 @@ +" Vim indent file +" Language: cobol +" Author: Tim Pope +" $Id$ + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal expandtab +setlocal indentexpr=GetCobolIndent(v:lnum) +setlocal indentkeys& +setlocal indentkeys+=0<*>,0/,0$,0=01,=~division,=~section,0=~end,0=~then,0=~else,0=~when,*,. + +" Only define the function once. +if exists("*GetCobolIndent") + finish +endif + +let s:skip = 'getline(".") =~ "^.\\{6\\}[*/$-]\\|\"[^\"]*\""' + +function! s:prevgood(lnum) + " Find a non-blank line above the current line. + " Skip over comments. + let lnum = a:lnum + while lnum > 0 + let lnum = prevnonblank(lnum - 1) + let line = getline(lnum) + if line !~? '^\s*[*/$-]' && line !~? '^.\{6\}[*/$CD-]' + break + endif + endwhile + return lnum +endfunction + +function! s:stripped(lnum) + return substitute(strpart(getline(a:lnum),0,72),'^\s*','','') +endfunction + +function! s:optionalblock(lnum,ind,blocks,clauses) + let ind = a:ind + let clauses = '\c\<\%(\' + let beginfull = begin.'\ze.*\%(\n\%(\s*\%([*/$-].*\)\=\n\)*\)\=\s*\%('.clauses.'\)' + let end = '\c\\|\%(\.\%( \|$\)\)\@=' + let cline = s:stripped(a:lnum) + let line = s:stripped(s:prevgood(a:lnum)) + if cline =~? clauses "&& line !~? '^search\>' + call cursor(a:lnum,1) + let lastclause = searchpair(beginfull,clauses,end,'bWr',s:skip) + if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin + let ind = indent(lastclause) + elseif lastclause > 0 + let ind = indent(lastclause) + &sw + "let ind = ind + &sw + endif + elseif line =~? clauses && cline !~? end + let ind = ind + &sw + endif + return ind +endfunction + +function! GetCobolIndent(lnum) abort + let minshft = 6 + let ashft = minshft + 1 + let bshft = ashft + 4 + " (Obsolete) numbered lines + if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)' + return 0 + endif + let cline = s:stripped(a:lnum) + " Comments, etc. must start in the 7th column + if cline =~? '^[*/$-]' + return minshft + elseif cline =~# '^[CD]' && indent(a:lnum) == minshft + return minshft + endif + " Divisions, sections, and file descriptions start in area A + if cline =~? '\<\(DIVISION\|SECTION\)\%($\|\.\)' || cline =~? '^[FS]D\>' + return ashft + endif + " Fields + if cline =~? '^0*\(1\|77\)\>' + return ashft + endif + if cline =~? '^\d\+\>' + let cnum = matchstr(cline,'^\d\+\>') + let default = 0 + let step = -1 + while step < 2 + let lnum = a:lnum + while lnum > 0 && lnum < line('$') && lnum > a:lnum - 500 && lnum < a:lnum + 500 + let lnum = step > 0 ? nextnonblank(lnum + step) : prevnonblank(lnum + step) + let line = getline(lnum) + let lindent = indent(lnum) + if line =~? '^\s*\d\+\>' + let num = matchstr(line,'^\s*\zs\d\+\>') + if 0+cnum == num + return lindent + elseif 0+cnum > num && default < lindent + &sw + let default = lindent + &sw + endif + elseif lindent < bshft && lindent >= ashft + break + endif + endwhile + let step = step + 2 + endwhile + return default ? default : bshft + endif + let lnum = s:prevgood(a:lnum) + " Hit the start of the file, use "zero" indent. + if lnum == 0 + return ashft + endif + " Initial spaces are ignored + let line = s:stripped(lnum) + let ind = indent(lnum) + " Paragraphs. There may be some false positives. + if cline =~? '^\(\a[A-Z0-9-]*[A-Z0-9]\|\d[A-Z0-9-]*\a\)\.' "\s*$' + if cline !~? '^EXIT\s*\.' && line =~? '\.\s*$' + return ashft + endif + endif + " Paragraphs in the identification division. + "if cline =~? '^\(PROGRAM-ID\|AUTHOR\|INSTALLATION\|' . + "\ 'DATE-WRITTEN\|DATE-COMPILED\|SECURITY\)\>' + "return ashft + "endif + if line =~? '\.$' + " XXX + return bshft + endif + if line =~? '^PERFORM\>' + let perfline = substitute(line, '\c^PERFORM\s*', "", "") + if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$' + let ind = ind + &sw + elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$' + let ind = ind + &sw + endif + endif + if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>' + let ind = ind + &sw + endif + let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR') + let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION') + if cline !~? '^AT\s\+END\>' || line !~? '^SEARCH\>' + let ind = s:optionalblock(a:lnum,ind,'DELETE\|REWRITE\|START\|WRITE\|READ','INVALID\s\+KEY\|AT\s\+END\|NO\s\+DATA\|AT\s\+END-OF-PAGE') + endif + if cline =~? '^WHEN\>' + call cursor(a:lnum,1) + " We also search for READ so that contained AT ENDs are skipped + let lastclause = searchpair('\c-\@','\c\<\%(WHEN\|AT\s\+END\)\>','\c\','bW',s:skip) + let g:foo = s:stripped(lastclause) + if s:stripped(lastclause) =~? '\c\<\%(WHEN\|AT\s\+END\)\>' + "&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>' + let ind = indent(lastclause) + elseif lastclause > 0 + let ind = indent(lastclause) + &sw + endif + elseif line =~? '^WHEN\>' + let ind = ind + &sw + endif + "I'm not sure why I had this + "if line =~? '^ELSE\>-\@!' && line !~? '\.$' + "let ind = indent(s:prevgood(lnum)) + "endif + if cline =~? '^\(END\)\>-\@!' + " On lines with just END, 'guess' a simple shift left + let ind = ind - &sw + elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!' + call cursor(a:lnum,indent(a:lnum)) + let match = searchpair('\c-\@','\c-\@','\c-\@\zs','bnW',s:skip) + if match > 0 + let ind = indent(match) + endif + elseif cline =~? '^END-[A-Z]' + let beginword = matchstr(cline,'\c\','','\c\<'.endword.'\>\zs','bnW'.(first? 'r' : ''),s:skip) + if match > 0 + let ind = indent(match) + elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>' + let ind = ind - &sw + endif + endif + return ind < bshft ? bshft : ind +endfunction diff --git a/runtime/indent/fortran.vim b/runtime/indent/fortran.vim --- a/runtime/indent/fortran.vim +++ b/runtime/indent/fortran.vim @@ -2,7 +2,7 @@ " Language: Fortran95 (and Fortran90, Fortran77, F and elf90) " Version: 0.37 " URL: http://www.unb.ca/chem/ajit/indent/fortran.vim -" Last Change: 2006 Apr. 22 +" Last Change: 2006 Nov 16 " Maintainer: Ajit J. Thakkar ; " Usage: Do :help fortran-indent from Vim @@ -72,7 +72,7 @@ function FortranGetIndent(lnum) let prevstat=substitute(prevline, '!.*$', '', '') "Indent do loops only if they are all guaranteed to be of do/end do type - if exists("b:fortran_do_enddo") || exists("fortran_do_enddo") + if exists("b:fortran_do_enddo") || exists("g:fortran_do_enddo") if prevstat =~? '^\s*\(\d\+\s\)\=\s*\(\a\w*\s*:\)\=\s*do\>' let ind = ind + &sw endif diff --git a/runtime/indent/hamster.vim b/runtime/indent/hamster.vim new file mode 100644 --- /dev/null +++ b/runtime/indent/hamster.vim @@ -0,0 +1,55 @@ +" Vim indent file +" Language: Hamster Script +" Version: 2.0.6.0 +" Last Change: Wed Nov 08 2006 12:02:42 PM +" Maintainer: David Fishburn + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal indentkeys+==~if,=~else,=~endif,=~endfor,=~endwhile +setlocal indentkeys+==~do,=~until,=~while,=~repeat,=~for,=~loop +setlocal indentkeys+==~sub,=~endsub + +" Define the appropriate indent function but only once +setlocal indentexpr=HamGetFreeIndent() +if exists("*HamGetFreeIndent") + finish +endif + +function HamGetIndent(lnum) + let ind = indent(a:lnum) + let prevline=getline(a:lnum) + + " Add a shiftwidth to statements following if, else, elseif, + " case, select, default, do, until, while, for, start + if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>' + let ind = ind + &sw + endif + + " Subtract a shiftwidth from else, elseif, end(if|while|for), until + let line = getline(v:lnum) + if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>' + let ind = ind - &sw + endif + + return ind +endfunction + +function HamGetFreeIndent() + " Find the previous non-blank line + let lnum = prevnonblank(v:lnum - 1) + + " Use zero indent at the top of the file + if lnum == 0 + return 0 + endif + + let ind=HamGetIndent(lnum) + return ind +endfunction + +" vim:sw=2 tw=80 diff --git a/runtime/lang/menu_chinese_gb.936.vim b/runtime/lang/menu_chinese_gb.936.vim --- a/runtime/lang/menu_chinese_gb.936.vim +++ b/runtime/lang/menu_chinese_gb.936.vim @@ -109,7 +109,7 @@ menutrans &Keymap ¼üÅÌÓ³Éä(&K) menutrans &Tools ¹¤¾ß(&T) menutrans &Jump\ to\ this\ tagg^] Ìøתµ½Õâ¸ö\ tag(&J)g^] menutrans Jump\ &back^T Ìøת·µ»Ø(&B)^T -menutrans Build\ &Tags\ File ½¨Á¢ Tags Îļþ(&T) +menutrans Build\ &Tags\ File ½¨Á¢\ Tags\ Îļþ(&T) " Tools.Spelling Menu menutrans &Spelling ƴд¼ì²é(&S) @@ -209,7 +209,7 @@ menutrans Min\ Widt&h^W1\| ×îС¿í¶È(&H)^W1\| menutrans &Undo ³·Ïú(&U) menutrans Cu&t ¼ôÇÐ(&T) menutrans &Copy ¸´ÖÆ(&C) -menutrans &Paste Õ³Ìû(&P) +menutrans &Paste Õ³Ìù(&P) menutrans &Delete ɾ³ý(&D) menutrans Select\ Blockwise Ñ¡Ôñ¿é menutrans Select\ &Word Ñ¡Ôñµ¥´Ê(&W) @@ -233,7 +233,7 @@ if has("toolbar") tmenu ToolBar.Redo ÖØ×ö tmenu ToolBar.Cut ¼ôÇе½¼ôÌù°å tmenu ToolBar.Copy ¸´ÖƵ½¼ôÌù°å - tmenu ToolBar.Paste ´Ó¼ôÌù°åÕ³Ìû + tmenu ToolBar.Paste ´Ó¼ôÌù°åÕ³Ìù tmenu ToolBar.Find ²éÕÒ... tmenu ToolBar.FindNext ²éÕÒÏÂÒ»¸ö tmenu ToolBar.FindPrev ²éÕÒÉÏÒ»¸ö diff --git a/runtime/lang/menu_pt_br.vim b/runtime/lang/menu_pt_br.vim --- a/runtime/lang/menu_pt_br.vim +++ b/runtime/lang/menu_pt_br.vim @@ -1,6 +1,6 @@ -" Menu Translations: Português -" Maintainer: José de Paula -" Last Change: 2003 Jun 12 +" Menu Translations: Português do Brasil +" Maintainer: José de Paula +" Last Change: 2006-09-19 02:30:00-03:00 " " Quit when menu translations have already been done. @@ -25,6 +25,7 @@ menutrans &Find\.\.\. &Procurar\.\.\. menutrans &Credits &Créditos menutrans O&rphans &Órfãos menutrans Co&pying &Licença +menutrans &Sponsor/Register &Doar/Registrar menutrans &Version &Versão menutrans &About &Sobre @@ -58,7 +59,8 @@ menutrans Find\ and\ Rep&lace\.\.\. Proc menutrans Find\ and\ Rep&lace:%s Procurar\ e\ substit&uir:%s menutrans Find\ and\ Rep&lace Procurar\ e\ substit&uir menutrans Find\ and\ Rep&lace:s Procurar\ e\ substituir:s -menutrans Settings\ &Window Op&ções +menutrans Settings\ &Window &Opções +menutrans Startup\ &Settings &Inicialização " Edit/Global Settings menutrans &Global\ Settings Opções\ &Globais @@ -117,7 +119,7 @@ menutrans default padrão menutrans Select\ Fo&nt\.\.\. Selecionar\ fo&nte\.\.\. -menutrans &Keymap Mapa\ de\ teclado +menutrans &Keymap &Mapa\ de\ teclado menutrans None Nenhum " Programming menu @@ -125,6 +127,7 @@ menutrans &Tools &Ferramentas menutrans &Jump\ to\ this\ tagg^] &Pular\ para\ este\ tagg^] menutrans Jump\ &back^T &Voltar^T menutrans Build\ &Tags\ File &Construir\ Arquivo\ de\ tags +menutrans &Spelling &Ortografia menutrans &Folding &Dobra menutrans &Make:make &Make:make menutrans &List\ Errors:cl &Lista\ de\ erros:cl @@ -134,10 +137,27 @@ menutrans &Previous\ Error:cp &Erro menutrans &Older\ List:cold Listar\ erros\ &antigos:cold menutrans N&ewer\ List:cnew Listar\ erros\ &novos:cnew menutrans Error\ &Window &Janela\ de\ erros -menutrans &Set\ Compiler Def&inir\ Compilador +menutrans Se&T\ Compiler Def&inir\ Compilador menutrans &Convert\ to\ HEX:%!xxd Converter\ para\ hexadecimal:%!xxd menutrans Conve&rt\ back:%!xxd\ -r Conver&ter\ de\ volta:%!xxd\ -r +" Tools.Spelling menu +menutrans &Spell Check On &Ativar Correção Ortográfica +menutrans &Spell Check Off &Desativar Correção Ortográfica +menutrans To &Next error]s &Próximo Erro]s +menutrans To &Previous Error[s Erro A&nterior[s +menutrans Suggest &Correctionsz= &Sugerir Correçõesz= +menutrans &Repeat correction:spellrepall &Repetir Correção:spellrepall + +menutrans Set\ language\ to\ "en" Inglês +menutrans Set\ language\ to\ "en_au" Inglês\ (en_au) +menutrans Set\ language\ to\ "en_ca" Inglês\ (en_ca) +menutrans Set\ language\ to\ "en_gb" Inglês\ (en_gb) +menutrans Set\ language\ to\ "en_nz" Inglês\ (en_nz) +menutrans Set\ language\ to\ "en_us" Inglês\ (en_us) + +menutrans &Find\ More\ Languages &Buscar mais idiomas + " Tools.Fold Menu menutrans &Enable/Disable\ foldszi &Ativar/Desativar\ dobraszi menutrans &View\ Cursor\ Linezv &Ver\ linha\ do\ cursorzv diff --git a/runtime/lang/menu_sl_si.utf-8.vim b/runtime/lang/menu_sl_si.utf-8.vim new file mode 100644 --- /dev/null +++ b/runtime/lang/menu_sl_si.utf-8.vim @@ -0,0 +1,294 @@ +" Menu Translations: Slovenian / Slovensko +" Maintainer: Mojca Miklavec +" Originally By: Mojca Miklavec +" Last Change: Sat, 17 Jun 2006 +" vim:set foldmethod=marker tabstop=8: + +" TODO: add/check all '&'s + +" Quit when menu translations have already been done. +if exists("did_menu_trans") + finish +endif +let did_menu_trans = 1 + +scriptencoding utf-8 + +" {{{ FILE / DATOTEKA +menutrans &File &Datoteka +menutrans &Open\.\.\.:e &Odpri\ \.\.\.:e +menutrans Sp&lit-Open\.\.\.:sp Odpri\ de&ljeno\ \.\.\.:sp +menutrans Open\ Tab\.\.\.:tabnew Odpri\ v\ zavi&hku\ \.\.\.:tabnew +menutrans &New:enew &Nova:enew +menutrans &Close:close &Zapri:close +menutrans &Save:w &Shrani:w +menutrans Save\ &As\.\.\.:sav Shrani\ &kot\ \.\.\.:sav +menutrans &Print Na&tisni +menutrans Sa&ve-Exit:wqa Shrani\ in\ &konÄaj:wqa +menutrans E&xit:qa &Izhod:qa + +if has("diff") + menutrans Split\ &Diff\ with\.\.\. Primerjaj\ z\ (di&ff)\ \.\.\. + menutrans Split\ Patched\ &By\.\.\. &Popravi\ z\ (patch)\ \.\.\. +endif +" }}} FILE / DATOTEKA + +" {{{ EDIT / UREDI +menutrans &Edit &Uredi +menutrans &Undou &Razveljaviu +menutrans &Redo^R &Obnovi^R +menutrans Rep&eat\. Po&novi\. +menutrans Cu&t"+x &Izreži"+x +menutrans &Copy"+y &Kopiraj"+y +menutrans &Paste"+gP &Prilepi"+gP +menutrans Put\ &Before[p Vrini\ pred[p +menutrans Put\ &After]p Vrini\ za]p +menutrans &Deletex Iz&briÅ¡ix +menutrans &Select\ allggVG Izberi\ vseggVG +menutrans &Find\.\.\. Po&iÅ¡Äi\ \.\.\. +menutrans Find\ and\ Rep&lace\.\.\. PoiÅ¡Äi\ in\ &zamenjaj\ \.\.\. + +" [-- SETTINGS --] +menutrans Settings\ &Window Nastavitve\ \.\.\. +menutrans Startup\ &Settings ZaÄetne\ nastavitve +menutrans &Global\ Settings &Globalne\ nastavitve + +menutrans Toggle\ Pattern\ &Highlight:set\ hls! VkljuÄi/izkljuÄi\ poudarjanje\ iskanega\ niza:set\ hls! +menutrans Toggle\ &Ignore-case:set\ ic! VkljuÄi/izkljuÄi\ loÄevanje\ velikih\ in\ malih\ Ärk:set\ ic! +menutrans Toggle\ &Showmatch:set\ sm! VkljuÄi/izkljuÄi\ kratek\ skok\ na\ pripadajoÄi\ oklepaj:set\ sm! + +menutrans &Context\ lines Å t\.\ vidnih\ vrstic\ pred/za\ kurzorjem + +menutrans &Virtual\ Edit Dovoli\ položaj\ kazalÄka,\ kjer\ ni\ besedila +menutrans Never Nikoli +menutrans Block\ Selection Le\ med\ izbiranjem\ bloka +menutrans Insert\ mode Le\ v\ naÄinu\ za\ pisanje +menutrans Block\ and\ Insert Pri\ obojem +menutrans Always Vedno +menutrans Toggle\ Insert\ &Mode:set\ im! VkljuÄi/izkljuÄi\ naÄin\ za\ pisanje:set\ im! +menutrans Toggle\ Vi\ C&ompatible:set\ cp! VkljuÄi/izkljuÄi\ združljivost\ z\ Vi-jem:set\ cp! + +menutrans Search\ &Path\.\.\. Pot\ za\ iskanje\ \.\.\. +menutrans Ta&g\ Files\.\.\. Ta&g-datoteke\.\.\. + +menutrans Toggle\ &Toolbar Pokaži/skrij\ Orodja +menutrans Toggle\ &Bottom\ Scrollbar Pokaži/skrij\ spodnji\ drsnik +menutrans Toggle\ &Left\ Scrollbar Pokaži/skrij\ levi\ drsnik +menutrans Toggle\ &Right\ Scrollbar Pokaži/skrij\ desni\ drsnik + +" Edit/File Settings +menutrans F&ile\ Settings &Nastavitve\ datoteke + +" Boolean options +menutrans Toggle\ Line\ &Numbering:set\ nu! Pokaži/skrij\ Å¡tevilke\ vrstic:set\ nu! +menutrans Toggle\ &List\ Mode:set\ list! Pokaži/skrij\ nevidne\ znake:set\ list! " space/tab +menutrans Toggle\ Line\ &Wrap:set\ wrap! VkljuÄi/izkljuÄi\ prelome\ vrstic:set\ wrap! +menutrans Toggle\ W&rap\ at\ word:set\ lbr! VkljuÄi/izkljuÄi\ prelome\ vrstic\ med\ besedami:set\ lbr! +menutrans Toggle\ &expand-tab:set\ et! VkljuÄi/izkljuÄi\ zamenjavo\ tabulatorjev\ s\ presledki:set\ et! +menutrans Toggle\ &auto-indent:set\ ai! VkljuÄi/izkljuÄi\ avtomatsko\ zamikanje\ vrstic:set\ ai! +menutrans Toggle\ &C-indenting:set\ cin! VkljuÄi/izkljuÄi\ C-jevski\ naÄin\ zamikanja\ vrstic:set\ cin! + +" other options +menutrans &Shiftwidth Å irina\ zamika\ vrstic +menutrans Soft\ &Tabstop Å irina\ &tabulatorja +menutrans Te&xt\ Width\.\.\. Å irina\ besedila\ \.\.\. +menutrans &File\ Format\.\.\. Format\ &datoteke\ \.\.\. +menutrans C&olor\ Scheme &Barvna\ shema\ \.\.\. +menutrans &Keymap &Keymap +menutrans Select\ Fo&nt\.\.\. Pisava\ \.\.\. +" }}} EDIT / UREDI + +" {{{ TOOLS / ORODJA +menutrans &Tools &Orodja +menutrans &Jump\ to\ this\ tagg^] &SkoÄi\ k\ tej\ znaÄkig^] +menutrans Jump\ &back^T SkoÄi\ Na&zaj^T +menutrans Build\ &Tags\ File Napravi\ datoteke\ z\ znaÄkami\ (tag) +if has("spell") + menutrans &Spelling ÄŒrkovalnik + menutrans &Spell\ Check\ On &VkljuÄi + menutrans Spell\ Check\ &Off &IzkljuÄi + menutrans To\ &Next\ error]s K\ &naslednji\ napaki]s + menutrans To\ &Previous\ error[s K\ &prejÅ¡nji\ napaki[s + menutrans Suggest\ &Correctionsz= Predlagaj\ popravekz= + menutrans &Repeat\ correction:spellrepall Po&novi\ popravke\ na\ vseh\ besedah:spellrepall + menutrans Set\ language\ to\ "en" AngleÅ¡ki\ "en" + menutrans Set\ language\ to\ "en_au" AngleÅ¡ki\ "en_au" + menutrans Set\ language\ to\ "en_ca" AngleÅ¡ki\ "en_ca" + menutrans Set\ language\ to\ "en_gb" AngleÅ¡ki\ "en_gb" + menutrans Set\ language\ to\ "en_nz" AngleÅ¡ki\ "en_nz" + menutrans Set\ language\ to\ "en_us" AngleÅ¡ki\ "en_us" + menutrans Set\ language\ to\ "sl" Slovenski\ "sl" + menutrans Set\ language\ to\ "de" NemÅ¡ki\ "de" + menutrans Set\ language\ to\ ÄŒrkovalnik:\ + menutrans &Find\ More\ Languages &Ostali\ jeziki +endif +if has("folding") + menutrans &Folding Zvijanje\ kode + " open close folds + menutrans &Enable/Disable\ foldszi OmogoÄi/onemogoÄi\ zvijanjezi " OmogoÄi/onemogoÄi\ zavihke + menutrans &View\ Cursor\ Linezv Pokaži\ vrstico\ s\ kazalÄkomzv " kjer je kazalec + menutrans Vie&w\ Cursor\ Line\ onlyzMzx Pokaži\ samo\ vrstico\ s\ kazalÄkomzMzx + menutrans C&lose\ more\ foldszm Zvij\ naslednji\ nivozm " Zapri\ veÄ\ zavihkov + menutrans &Close\ all\ foldszM Zvij\ vso\ kodozM " Zapri\ vse\ zavihke + menutrans O&pen\ more\ foldszr Razvij\ en\ nivozr " Odpri\ veÄ\ zavihkov + menutrans &Open\ all\ foldszR Razvij\ vso\ kodozR " Odpri\ vse\ zavihke + " fold method + menutrans Fold\ Met&hod Kriterij\ za\ zvijanje " Ustvarjanje\ zavihkov + menutrans M&anual &RoÄno + menutrans I&ndent Glede\ na\ &poravnavo + menutrans E&xpression Z\ &izrazi\ (foldexpr) + menutrans S&yntax Glede\ na\ &sintakso + menutrans &Diff Razlike\ (&diff) + menutrans Ma&rker Z\ &markerji/oznaÄbami + " create and delete folds + " TODO accelerators + menutrans Create\ &Foldzf Ustvari\ zvitekzf + menutrans &Delete\ Foldzd IzbriÅ¡i\ zvitekzd + menutrans Delete\ &All\ FoldszD IzbriÅ¡i\ vse\ zvitkezD + " moving around in folds + menutrans Fold\ column\ &width Å irina\ drevesa\ z\ zvitki +endif " has folding + +if has("diff") + menutrans &Diff Razlike\ (&Diff) + menutrans &Update &Posodobi + menutrans &Get\ Block &Sprejmi\ (spremeni\ to\ okno) " XXX: check if translation is OK + menutrans &Put\ Block &PoÅ¡lji\ (spremeni\ drugo\ okno) +endif + +menutrans &Make:make Napravi\ (&make):make +menutrans &List\ Errors:cl Pokaži\ napake:cl +menutrans L&ist\ Messages:cl! Pokaži\ sporoÄila:cl! +menutrans &Next\ Error:cn K\ &naslednji\ napaki:cn +menutrans &Previous\ Error:cp K\ &prejÅ¡nji\ napaki:cp +menutrans &Older\ List:cold K\ &starejÅ¡emu\ seznamu\ napak:cold +menutrans N&ewer\ List:cnew K\ &novejÅ¡emu\ seznamu\ napak:cnew + +menutrans Error\ &Window Okno\ z\ napakami +menutrans &Update:cwin &Posodobi:cwin +menutrans &Open:copen &Odpri:copen +menutrans &Close:cclose &Zapri:cclose + +menutrans &Set\ Compiler Nastavi\ &prevajalnik +menutrans Se&T\ Compiler Nastavi\ &prevajalnik " bug in original translation? + +menutrans &Convert\ to\ HEX:%!xxd Pretvori\ v\ HE&X:%!xxd +menutrans Conve&rt\ back:%!xxd\ -r Pretvori\ nazaj:%!xxd\ -r +" }}} TOOLS / ORODJA + +" {{{ SYNTAX / BARVANJE KODE +menutrans &Syntax &Barvanje\ kode +menutrans &Show\ filetypes\ in\ menu Podprte\ vrste\ datotek +menutrans Set\ '&syntax'\ only Samo\ barvanje\ ('&syntax') +menutrans Set\ '&filetype'\ too Tudi\ obnaÅ¡anje\ ('&filetype') +menutrans &Off &IzkljuÄeno +menutrans &Manual &RoÄno +menutrans A&utomatic &Avtomatsko +menutrans on/off\ for\ &This\ file VkljuÄi/izkljuÄi\ za\ to\ datoteko +menutrans Co&lor\ test Preizkus\ barv +menutrans &Highlight\ test Preizkus\ barvanja\ kode +menutrans &Convert\ to\ HTML Pretvori\ v\ &HTML +" }}} SYNTAX / BARVANJE KODE + +" {{{ BUFFERS / MEDPOMNILNIK +menutrans &Buffers &Medpomnilnik " XXX: ni najbolje: okno bi bolj pristajalo, ampak okno je že +menutrans &Refresh\ menu &Osveži +menutrans Delete &BriÅ¡i +menutrans &Alternate &Menjaj +menutrans &Next &Naslednji +menutrans &Previous &PrejÅ¡nji +menutrans [No\ File] [Brez\ datoteke] +" }}} BUFFERS / MEDPOMNILNIK + +" {{{ WINDOW / OKNO +menutrans &Window &Okno +menutrans &New^Wn &Novo^Wn +menutrans S&plit^Ws Razdeli^Ws +menutrans Split\ &Vertically^Wv Razdeli\ navpiÄno^Ws +menutrans Split\ File\ E&xplorer Razdeli:\ Vsebina\ mape +menutrans Sp&lit\ To\ #^W^^ Razdeli\ v\ #^W^^ +menutrans &Close^Wc &Zapri^Wc +menutrans Close\ &Other(s)^Wo Zapri\ &ostala^Wo +menutrans Move\ &To Premakni +menutrans &Top^WK &Gor^WK +menutrans &Bottom^WJ &Dol^WJ +menutrans &Left\ side^WH &Levo^WH +menutrans &Right\ side^WL &Desno^WL +menutrans Rotate\ &Up^WR Zavrti\ navzgor^WR +menutrans Rotate\ &Down^Wr Zavrti\ navzdol^Wr +menutrans &Equal\ Size^W= &Enaka\ velikost^W= +menutrans &Max\ Height^W_ NajviÅ¡je^W_ +menutrans M&in\ Height^W1_ Najnižje^W1_ +menutrans Max\ &Width^W\| NajÅ¡irÅ¡e^W\| +menutrans Min\ Widt&h^W1\| Najožje^W1\| +" }}} WINDOW / OKNO + +" {{{ HELP / POMOÄŒ +menutrans &Help &PomoÄ +menutrans &Overview Hitri\ pregled +menutrans &User\ Manual P&riroÄnik +menutrans &How-to\ links &How-to\ kazalo +menutrans &Find\.\.\. Po&iÅ¡Äi\ \.\.\. " conflicts with Edit.Find +menutrans &Credits &Avtorji +menutrans Co&pying &Licenca +menutrans &Sponsor/Register Registracija\ in\ &donacije +menutrans O&rphans &Sirotam +menutrans &Version &Verzija +menutrans &About &O\ programu +" }}} HELP / POMOÄŒ + +" {{{ POPUP +menutrans &Undo &Razveljavi +menutrans Cu&t &Izreži +menutrans &Copy &Kopieraj +menutrans &Paste &Prilepi +menutrans &Delete &ZbriÅ¡i +menutrans Select\ Blockwise Izbiraj\ po\ blokih +menutrans Select\ &Word Izberi\ &besedo +menutrans Select\ &Sentence Izberi\ &stavek +menutrans Select\ Pa&ragraph Izberi\ &odstavek +menutrans Select\ &Line Izberi\ vrs&tico +menutrans Select\ &Block Izberi\ b&lok +menutrans &Select\ AllggVG Izberi\ &vseggVG +" }}} POPUP + +" {{{ TOOLBAR +if has("toolbar") + if exists("*Do_toolbar_tmenu") + delfun Do_toolbar_tmenu + endif + fun Do_toolbar_tmenu() + tmenu ToolBar.Open Odpri datoteko + tmenu ToolBar.Save Shrani datoteko + tmenu ToolBar.SaveAll Shrani vse datoteke + tmenu ToolBar.Print Natisni + tmenu ToolBar.Undo Razveljavi + tmenu ToolBar.Redo Obnovi + tmenu ToolBar.Cut Izreži + tmenu ToolBar.Copy Kopiraj + tmenu ToolBar.Paste Prilepi + tmenu ToolBar.Find Najdi ... + tmenu ToolBar.FindNext Najdi naslednje + tmenu ToolBar.FindPrev Najdi prejÅ¡nje + tmenu ToolBar.Replace Najdi in zamenjaj ... + tmenu ToolBar.LoadSesn Naloži sejo + tmenu ToolBar.SaveSesn Shrani trenutno sejo + tmenu ToolBar.RunScript Izberi Vim skripto za izvajanje + tmenu ToolBar.Make Napravi trenutni projekt (:make) + tmenu ToolBar.RunCtags Napravi znaÄke v trenutnem direktoriju (!ctags -R.) + tmenu ToolBar.TagJump SkoÄi k znaÄki pod kurzorjem + tmenu ToolBar.Help PomoÄ za Vim + tmenu ToolBar.FindHelp IÅ¡Äi v pomoÄi za Vim + endfun +endif +" }}} TOOLBAR + +" {{{ DIALOG TEXTS +let g:menutrans_no_file = "[Brez datoteke]" +let g:menutrans_help_dialog = "Vnesite ukaz ali besedo, za katero želite pomoÄ:\n\nUporabite predpono i_ za ukaze v naÄinu za pisanje (npr.: i_CTRL-X)\nUporabite predpono c_ za ukaze v ukazni vrstici (command-line) (npr.: c_)\nUporabite predpono ' za imena opcij (npr.: 'shiftwidth')" +let g:menutrans_path_dialog = "Vnesite poti za iskanje datotek.\nImena direktorijev loÄite z vejico." +let g:menutrans_tags_dialog = "Vnesite imena datotek z znaÄkami ('tag').\nImana loÄite z vejicami." +let g:menutrans_textwidth_dialog = "Vnesite novo Å¡irino besedila (ali 0 za izklop formatiranja): " +let g:menutrans_fileformat_dialog = "Izberite format datoteke" +let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&PrekliÄi" +" }}} diff --git a/runtime/lang/menu_zh_cn.gb2312.vim b/runtime/lang/menu_zh_cn.gb2312.vim --- a/runtime/lang/menu_zh_cn.gb2312.vim +++ b/runtime/lang/menu_zh_cn.gb2312.vim @@ -10,7 +10,10 @@ if exists("did_menu_trans") endif let did_menu_trans = 1 -scriptencoding gb2312 +" This causes trouble for a broken iconv (symptom: last character is always +" ??). Without this it works fine anyway, because gbk/cp936 is a superset of +" gb2312. (suggested by Edward L. Fox) +" scriptencoding gb2312 " Help menu menutrans &Help °ïÖú(&H) @@ -109,7 +112,7 @@ menutrans &Keymap ¼üÅÌÓ³Éä(&K) menutrans &Tools ¹¤¾ß(&T) menutrans &Jump\ to\ this\ tagg^] Ìøתµ½Õâ¸ö\ tag(&J)g^] menutrans Jump\ &back^T Ìøת·µ»Ø(&B)^T -menutrans Build\ &Tags\ File ½¨Á¢ Tags Îļþ(&T) +menutrans Build\ &Tags\ File ½¨Á¢\ Tags\ Îļþ(&T) " Tools.Spelling Menu menutrans &Spelling ƴд¼ì²é(&S) @@ -209,7 +212,7 @@ menutrans Min\ Widt&h^W1\| ×îС¿í¶È(&H)^W1\| menutrans &Undo ³·Ïú(&U) menutrans Cu&t ¼ôÇÐ(&T) menutrans &Copy ¸´ÖÆ(&C) -menutrans &Paste Õ³Ìû(&P) +menutrans &Paste Õ³Ìù(&P) menutrans &Delete ɾ³ý(&D) menutrans Select\ Blockwise Ñ¡Ôñ¿é menutrans Select\ &Word Ñ¡Ôñµ¥´Ê(&W) @@ -233,7 +236,7 @@ if has("toolbar") tmenu ToolBar.Redo ÖØ×ö tmenu ToolBar.Cut ¼ôÇе½¼ôÌù°å tmenu ToolBar.Copy ¸´ÖƵ½¼ôÌù°å - tmenu ToolBar.Paste ´Ó¼ôÌù°åÕ³Ìû + tmenu ToolBar.Paste ´Ó¼ôÌù°åÕ³Ìù tmenu ToolBar.Find ²éÕÒ... tmenu ToolBar.FindNext ²éÕÒÏÂÒ»¸ö tmenu ToolBar.FindPrev ²éÕÒÉÏÒ»¸ö diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim --- a/runtime/macros/less.vim +++ b/runtime/macros/less.vim @@ -1,6 +1,6 @@ " Vim script to work like "less" " Maintainer: Bram Moolenaar -" Last Change: 2006 May 07 +" Last Change: 2006 Dec 05 " Avoid loading this file twice, allow the user to define his own script. if exists("loaded_less") @@ -168,7 +168,7 @@ fun! s:Forward() else noremap