0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

updated for version 7.0132

This commit is contained in:
Bram Moolenaar 2005-08-19 20:40:30 +00:00
parent 5195e45609
commit 8aff23a13e
22 changed files with 426 additions and 190 deletions

View File

@ -1,8 +1,8 @@
" netrw.vim: Handles file transfer and remote directory listing across a network " netrw.vim: Handles file transfer and remote directory listing across a network
" AUTOLOAD PORTION " AUTOLOAD PORTION
" Last Change: Aug 16, 2005 " Last Change: Aug 19, 2005
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 63 " Version: 65
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
@ -690,8 +690,6 @@ fun! s:NetGetFile(readcmd, fname, method)
exe a:readcmd." ".v:cmdarg." ".fname exe a:readcmd." ".v:cmdarg." ".fname
let line1 = curline + 1 let line1 = curline + 1
let line2 = line("$") - lastline + 1 let line2 = line("$") - lastline + 1
let s:netrw_line = s:netrw_line + 1
let s:netrw_col = 1
else else
" not readable " not readable
" call Dret("NetGetFile : fname<".fname."> not readable") " call Dret("NetGetFile : fname<".fname."> not readable")
@ -1025,6 +1023,8 @@ fun! s:NetBrowse(dirname)
return return
endif endif
call s:NetOptionSave()
" sanity check " sanity check
if exists("b:netrw_method") && b:netrw_method =~ '[235]' if exists("b:netrw_method") && b:netrw_method =~ '[235]'
" call Decho("b:netrw_method=".b:netrw_method) " call Decho("b:netrw_method=".b:netrw_method)
@ -1033,6 +1033,7 @@ fun! s:NetBrowse(dirname)
echohl Error | echo "***netrw*** this system doesn't support remote directory listing via ftp" | echohl None echohl Error | echo "***netrw*** this system doesn't support remote directory listing via ftp" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore() call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif endif
call s:NetOptionRestore()
" call Dret("NetBrowse") " call Dret("NetBrowse")
return return
endif endif
@ -1042,6 +1043,7 @@ fun! s:NetBrowse(dirname)
call inputsave()|call input("Press <cr> to continue")|call inputrestore() call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif endif
call s:NetOptionRestore()
" call Dret("NetBrowse") " call Dret("NetBrowse")
return return
endif endif
@ -1061,6 +1063,7 @@ fun! s:NetBrowse(dirname)
echohl Error | echo "***netrw*** netrw doesn't understand your dirname<".dirname.">" | echohl None echohl Error | echo "***netrw*** netrw doesn't understand your dirname<".dirname.">" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore() call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif endif
call s:NetOptionRestore()
" call Dret("NetBrowse : badly formatted dirname<".dirname.">") " call Dret("NetBrowse : badly formatted dirname<".dirname.">")
return return
endif endif
@ -1109,6 +1112,7 @@ fun! s:NetBrowse(dirname)
" call Decho("attempt transfer of symlink as file") " call Decho("attempt transfer of symlink as file")
call s:NetBrowse(substitute(dirname,'@$','','e')) call s:NetBrowse(substitute(dirname,'@$','','e'))
redraw! redraw!
call s:NetOptionRestore()
" call Dret("NetBrowse : symlink") " call Dret("NetBrowse : symlink")
return return
@ -1119,7 +1123,7 @@ fun! s:NetBrowse(dirname)
" remove any filetype indicator from end of dirname, except for the " remove any filetype indicator from end of dirname, except for the
" "this is a directory" indicator (/). There shouldn't be one of those, " "this is a directory" indicator (/). There shouldn't be one of those,
" anyway. " anyway.
let path= substitute(path,'[*=@|]$','','e') let path= substitute(path,'[*=@|]\r\=$','','e')
" call Decho("new path<".path.">") " call Decho("new path<".path.">")
" remote-read the requested file into current buffer " remote-read the requested file into current buffer
@ -1133,7 +1137,7 @@ fun! s:NetBrowse(dirname)
" save certain window-oriented variables into buffer-oriented variables " save certain window-oriented variables into buffer-oriented variables
call s:BufWinVars() call s:BufWinVars()
call s:NetOptionRestore()
setlocal nonu nomod noma setlocal nonu nomod noma
" call Dret("NetBrowse : file<".fname.">") " call Dret("NetBrowse : file<".fname.">")
@ -1152,6 +1156,7 @@ fun! s:NetBrowse(dirname)
" call Decho("buffer already exists, switching to it") " call Decho("buffer already exists, switching to it")
exe "b ".bufnamenr exe "b ".bufnamenr
if line("$") >= 5 if line("$") >= 5
call s:NetOptionRestore()
" call Dret("NetBrowse") " call Dret("NetBrowse")
return return
endif endif
@ -1166,7 +1171,7 @@ fun! s:NetBrowse(dirname)
" call Decho("exe file ".escape(bufname,s:netrw_cd_escape)) " call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
exe 'file '.escape(bufname,s:netrw_cd_escape) exe 'file '.escape(bufname,s:netrw_cd_escape)
" call Decho("renaming file to bufname<".bufname.">") " call Decho("renaming file to bufname<".bufname.">")
setlocal bh=hide nobl nonu setlocal bh=hide bt=nofile nobl nonu
" save current directory on directory history list " save current directory on directory history list
call <SID>NetBookmarkDir(3,expand("%")) call <SID>NetBookmarkDir(3,expand("%"))
@ -1281,7 +1286,6 @@ fun! s:NetBrowse(dirname)
exe "silent! g/".g:netrw_ssh_browse_reject."/keepjumps d" exe "silent! g/".g:netrw_ssh_browse_reject."/keepjumps d"
endif endif
endif endif
" set up syntax highlighting " set up syntax highlighting
if has("syntax") if has("syntax")
@ -1347,8 +1351,12 @@ fun! s:NetBrowse(dirname)
endif endif
endif endif
endif endif
" cleanup any windows mess at end-of-line
keepjumps silent! %s/\r$//e
exe "keepjumps ".w:netrw_bannercnt exe "keepjumps ".w:netrw_bannercnt
call s:NetOptionRestore()
setlocal nomod noma nonu setlocal nomod noma nonu
" call Dret("NetBrowse") " call Dret("NetBrowse")
@ -1772,6 +1780,16 @@ fun! s:NetBrowseFtpCmd(path,cmd)
endif endif
endif endif
" ftp's ls doesn't seem to include ./ or ../
if !search('^\.\/$','wn')
exe 'keepjumps '.curline
if a:path !~ '^$'
put ='../'
endif
put ='./'
exe 'keepjumps '.curline
endif
" restore settings " restore settings
let &ff= ffkeep let &ff= ffkeep
" call Dret("NetBrowseFtpCmd") " call Dret("NetBrowseFtpCmd")
@ -2128,22 +2146,18 @@ fun! netrw#DirBrowse(dirname)
" call Dret("DirBrowse") " call Dret("DirBrowse")
return return
endif endif
call s:NetOptionSave()
if v:version < 603 if v:version < 603
if !exists("g:netrw_quiet") if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** vim version<".v:version."> too old for browsing with netrw" | echohl None echohl Error | echo "***netrw*** vim version<".v:version."> too old for browsing with netrw" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore() call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif endif
call s:NetOptionRestore()
" call Dret("DirBrowse : vim version<".v:version."> too old") " call Dret("DirBrowse : vim version<".v:version."> too old")
return return
endif endif
" record autochdir setting and then insure its unset (tnx to David Fishburn)
if has("netbeans_intg") || has("sun_workshop")
let keep_autochdir= &autochdir
set noautochdir
endif
" use buffer-oriented WinVars if buffer ones exist but window ones don't " use buffer-oriented WinVars if buffer ones exist but window ones don't
call s:UseBufWinVars() call s:UseBufWinVars()
@ -2166,7 +2180,7 @@ fun! netrw#DirBrowse(dirname)
endif endif
" get cleared buffer " get cleared buffer
if bufnum < 0 if bufnum < 0 || !bufexists(bufnum)
if v:version < 700 if v:version < 700
enew! enew!
else else
@ -2185,6 +2199,7 @@ fun! netrw#DirBrowse(dirname)
" call Decho("change directory: cd ".b:netrw_curdir) " call Decho("change directory: cd ".b:netrw_curdir)
exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape) exe 'cd '.escape(b:netrw_curdir,s:netrw_cd_escape)
endif endif
call s:NetOptionRestore()
" call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">") " call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">")
return return
endif endif
@ -2201,6 +2216,11 @@ fun! netrw#DirBrowse(dirname)
if b:netrw_curdir =~ '[/\\]$' if b:netrw_curdir =~ '[/\\]$'
let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e') let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
endif endif
if b:netrw_curdir == ''
" under unix, when the root directory is encountered, the result
" from the preceding substitute is an empty string.
let b:netrw_curdir= '/'
endif
" call Decho("b:netrw_curdir<".b:netrw_curdir.">") " call Decho("b:netrw_curdir<".b:netrw_curdir.">")
" make netrw's idea of the current directory vim's if the user wishes " make netrw's idea of the current directory vim's if the user wishes
@ -2214,6 +2234,7 @@ fun! netrw#DirBrowse(dirname)
if exists("w:netrw_prvdir") if exists("w:netrw_prvdir")
let b:netrw_curdir= w:netrw_prvdir let b:netrw_curdir= w:netrw_prvdir
else else
call s:NetOptionRestore()
" call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">") " call Dret("DirBrowse : reusing buffer#".bufnum."<".a:dirname.">")
return return
endif endif
@ -2223,8 +2244,8 @@ fun! netrw#DirBrowse(dirname)
" change the name of the buffer to reflect the b:netrw_curdir " change the name of the buffer to reflect the b:netrw_curdir
exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape) exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape)
" make this buffer modifiable and hidden " make this buffer not-a-file, modifiable, not line-numbered, etc
setlocal ma hidden nonu bt=nofile setlocal bh=hide bt=nofile nobl ma nonu
if v:version < 700 if v:version < 700
silent! %d silent! %d
else else
@ -2367,11 +2388,8 @@ fun! netrw#DirBrowse(dirname)
" save certain window-oriented variables into buffer-oriented variables " save certain window-oriented variables into buffer-oriented variables
call s:BufWinVars() call s:BufWinVars()
call s:NetOptionRestore()
setlocal noma nomod nonu bh=hide nobl setlocal noma nomod nonu bh=hide nobl
if has("netbeans_intg") || has("sun_workshop")
let &autochdir= keep_autochdir
endif
" call Dret("DirBrowse : file<".expand("%:p")."> bufname<".bufname("%").">") " call Dret("DirBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
endfun endfun
@ -2470,6 +2488,9 @@ fun! s:LocalBrowseList()
keepjumps put=pfile keepjumps put=pfile
endif endif
endwhile endwhile
" cleanup any windows mess at end-of-line
keepjumps silent! %s/\r$//e
setlocal ts=32 setlocal ts=32
" call Dret("LocalBrowseList") " call Dret("LocalBrowseList")
@ -3091,27 +3112,42 @@ endfun
" ------------------------------------------------------------------------ " ------------------------------------------------------------------------
" NetOptionSave: save options and set to "standard" form {{{1 " NetOptionSave: save options and set to "standard" form {{{1
fun!s:NetOptionSave() fun! s:NetOptionSave()
" call Dfunc("NetOptionSave()") " call Dfunc("NetOptionSave()")
if !exists("w:netoptionsave")
let w:netoptionsave= 1
else
" call Dret("NetOptionSave : netoptionsave=".w:netoptionsave)
return
endif
" Get Temporary Filename " Get Temporary Filename
let s:aikeep = &ai let w:aikeep = &ai
let s:cinkeep = &cin " record autochdir setting and then insure its unset (tnx to David Fishburn)
let s:cinokeep = &cino if has("netbeans_intg") || has("sun_workshop")
let s:comkeep = &com let w:acdkeep = &autochdir
let s:cpokeep = &cpo set noautochdir
let s:dirkeep = getcwd() endif
let s:gdkeep = &gd let w:cinkeep = &cin
let s:twkeep = &tw let w:cinokeep = &cino
let w:comkeep = &com
let w:cpokeep = &cpo
if !g:netrw_keepdir
let w:dirkeep = getcwd()
endif
let w:gdkeep = &gd
let w:repkeep = &report
let w:twkeep = &tw
setlocal cino = setlocal cino =
setlocal com = setlocal com =
setlocal cpo -=aA setlocal cpo -=aA
setlocal nocin noai setlocal nocin noai
setlocal tw =0 setlocal tw =0
setlocal report=10000
if has("win32") && !has("win95") if has("win32") && !has("win95")
let s:swfkeep= &swf let w:swfkeep= &swf
setlocal noswf setlocal noswf
" call Decho("setting s:swfkeep to <".&swf.">") " call Decho("setting w:swfkeep to <".&swf.">")
endif endif
" call Dret("NetOptionSave") " call Dret("NetOptionSave")
@ -3121,36 +3157,50 @@ endfun
" NetOptionRestore: restore options {{{1 " NetOptionRestore: restore options {{{1
fun! s:NetOptionRestore() fun! s:NetOptionRestore()
" call Dfunc("NetOptionRestore()") " call Dfunc("NetOptionRestore()")
if !exists("w:netoptionsave")
" call Dret("NetOptionRestore : netoptionsave=".w:netoptionsave)
return
endif
unlet w:netoptionsave
let &ai = s:aikeep let &ai = w:aikeep
let &cin = s:cinkeep if has("netbeans_intg") || has("sun_workshop")
let &cino = s:cinokeep let &acd = w:acdkeep
let &com = s:comkeep endif
let &cpo = s:cpokeep let &cin = w:cinkeep
exe "lcd ".s:dirkeep let &cino = w:cinokeep
let &gd = s:gdkeep let &com = w:comkeep
let &tw = s:twkeep let &cpo = w:cpokeep
if exists("s:swfkeep") if exists("w:dirkeep")
exe "lcd ".w:dirkeep
endif
let &gd = w:gdkeep
let &report = w:repkeep
let &tw = w:twkeep
if exists("w:swfkeep")
if &directory == "" if &directory == ""
" user hasn't specified a swapfile directory; " user hasn't specified a swapfile directory;
" netrw will temporarily make the swapfile " netrw will temporarily make the swapfile
" directory the current local one. " directory the current local one.
let &directory = getcwd() let &directory = getcwd()
silent! let &swf = s:swfkeep silent! let &swf = w:swfkeep
set directory= set directory=
else else
let &swf= s:swfkeep let &swf= w:swfkeep
endif endif
unlet s:swfkeep unlet w:swfkeep
endif
unlet w:aikeep
unlet w:cinkeep
unlet w:cinokeep
unlet w:comkeep
unlet w:cpokeep
unlet w:gdkeep
unlet w:repkeep
unlet w:twkeep
if exists("w:dirkeep")
unlet w:dirkeep
endif endif
unlet s:aikeep
unlet s:cinkeep
unlet s:cinokeep
unlet s:comkeep
unlet s:cpokeep
unlet s:gdkeep
unlet s:twkeep
unlet s:dirkeep
" call Dret("NetOptionRestore") " call Dret("NetOptionRestore")
endfun endfun

View File

@ -4692,10 +4692,7 @@ last defined. Example: >
function SetFileTypeSH(name) function SetFileTypeSH(name)
Last set from /usr/share/vim/vim-7.0/filetype.vim Last set from /usr/share/vim/vim-7.0/filetype.vim
< <
When the function was defined by hand there is no "Last set" message. When See |:verbose-cmd| for more information.
the function was defined while executing a function, user command or
autocommand, the script in which it was defined is reported.
{not available when compiled without the +eval feature}
*E124* *E125* *E124* *E125*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] :fu[nction][!] {name}([arguments]) [range] [abort] [dict]

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.0aa. Last change: 2005 Aug 12 *options.txt* For Vim version 7.0aa. Last change: 2005 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -4284,6 +4284,45 @@ A jump table for the options with a short description can be found at |Q_op|.
generated from a list of items, e.g., the Buffers menu. Changing this generated from a list of items, e.g., the Buffers menu. Changing this
option has no direct effect, the menu must be refreshed first. option has no direct effect, the menu must be refreshed first.
*'mkspellmem'* *'msm'*
'mkspellmem' 'msm' string (default "460000,2000,500")
global
{not in Vi}
{not available when compiled without the |+syntax|
feature}
Parameters for |:mkspell|. This tunes when to start compressing the
word tree. Compression can be slow when there are many words, but
it's needed to avoid running out of memory. The amount of memory used
per word depends very much on how similar the words are, that's why
this tuning is complicated.
There are three numbers, separated by commas:
{start},{inc},{added}
For most languages the uncompressed word tree fits in memory. {start}
gives the amount of memory in Kbyte that can be used before any
compression is done. It should be a bit smaller than the amount of
memory that is available to Vim.
When going over the {start} limit the {inc} number specifies the
amount of memory in Kbyte that can be allocated before another
compression is done. A low number means compression is done after
less words are added, which is slow. A high number means more memory
will be allocated.
After doing compression, {added} times 1024 words can be added before
the {inc} limit is ignored and compression is done when any extra
amount of memory is needed. A low number means there is a smaller
chance of hitting the {inc} limit, less memory is used but it's
slower.
The languages for which these numbers are important are Italian and
Hungarian. The default works for when you have about 512 Mbyte. If
you have 1 Gbyte you could use: >
:set mkspellmem=900000,3000,800
< If you have less than 512 Mbyte |:mkspell| may fail for some
languages, no matter what you set 'mkspellmem' to.
*'modeline'* *'ml'* *'nomodeline'* *'noml'* *'modeline'* *'ml'* *'nomodeline'* *'noml'*
'modeline' 'ml' boolean (Vim default: on, Vi default: off) 'modeline' 'ml' boolean (Vim default: on, Vi default: off)
local to buffer local to buffer
@ -5696,7 +5735,7 @@ A jump table for the options with a short description can be found at |Q_op|.
feature} feature}
Pattern to locate the end of a sentence. The following word will be Pattern to locate the end of a sentence. The following word will be
checked to start with a capital letter. If not then it is highlighted checked to start with a capital letter. If not then it is highlighted
with SpellCap |hl-SpellCap|. with SpellCap |hl-SpellCap| (unless the word is also badly spelled).
When this check is not wanted make this option empty. When this check is not wanted make this option empty.
Only used when 'spell' is set. Only used when 'spell' is set.
Be careful with special characters, see |option-backslash| about Be careful with special characters, see |option-backslash| about
@ -5749,6 +5788,7 @@ A jump table for the options with a short description can be found at |Q_op|.
region by listing them: "en_us,en_ca" supports both US and Canadian region by listing them: "en_us,en_ca" supports both US and Canadian
English, but not words specific for Australia, New Zealand or Great English, but not words specific for Australia, New Zealand or Great
Britain. Britain.
*E757*
As a special case the name of a .spl file can be given as-is. The As a special case the name of a .spl file can be given as-is. The
first "_xx" in the name is removed and used as the region name first "_xx" in the name is removed and used as the region name
(_xx is an underscore, two letters and followed by a non-letter). (_xx is an underscore, two letters and followed by a non-letter).
@ -5789,6 +5829,11 @@ A jump table for the options with a short description can be found at |Q_op|.
character inserts/deletes/swaps. Works well for character inserts/deletes/swaps. Works well for
simple typing mistakes. simple typing mistakes.
{number} The maximum number of suggestions listed for |z?|.
Not used for |spellsuggest()|. The number of
suggestions is never more than the value of 'lines'
minus two.
file:{filename} Read file {filename}, which must have two columns, file:{filename} Read file {filename}, which must have two columns,
separated by a slash. The first column contains the separated by a slash. The first column contains the
bad word, the second column the suggested good word. bad word, the second column the suggested good word.

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.0aa. Last change: 2005 Aug 14 *pattern.txt* For Vim version 7.0aa. Last change: 2005 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -943,9 +943,10 @@ x A single character, with no special meaning, matches itself
"\_[^ab]" matches the end-of-line and any character but "a" and "b". "\_[^ab]" matches the end-of-line and any character but "a" and "b".
This makes it Vi compatible: Without the "\_" or "\n" the collection This makes it Vi compatible: Without the "\_" or "\n" the collection
does not match an end-of-line. does not match an end-of-line.
*E769*
When the ']' is not there Vim will not give an error message but When the ']' is not there Vim will not give an error message but
assume no collection is used. Useful to search for '['. assume no collection is used. Useful to search for '['. However, you
do get E769 for internal searching.
If the sequence begins with "^", it matches any single character NOT If the sequence begins with "^", it matches any single character NOT
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'. in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.

View File

@ -1217,6 +1217,11 @@ which is loaded automatically at startup (assuming :set nocp).
============================================================================== ==============================================================================
10. History *netrw-history* 10. History *netrw-history*
v64: * Browser functions now use NetOptionSave/Restore; in particular,
netrw now works around the report setting
* Bugfix - browsing a "/" directory (Unix) yielded buffers
named "[Scratch]" instead of "/"
* Bugfix - remote browsing with ftp was omitting the ./ and ../
v63: * netrw now takes advantage of autoload (and requires 7.0) v63: * netrw now takes advantage of autoload (and requires 7.0)
* Bugfix - using r (to reverse sort) working again * Bugfix - using r (to reverse sort) working again
v62: * Bugfix - spaces allowed again in directory names with v62: * Bugfix - spaces allowed again in directory names with

View File

@ -1,4 +1,4 @@
*spell.txt* For Vim version 7.0aa. Last change: 2005 Aug 16 *spell.txt* For Vim version 7.0aa. Last change: 2005 Aug 19
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -433,8 +433,12 @@ then Vim will try to guess.
|spell-affix-SAL| |spell-affix-SAL|
This command uses a lot of memory, required to find This command uses a lot of memory, required to find
the optimal word tree (Polish requires a few hundred the optimal word tree (Polish, Italian and Hungarian
Mbyte). The final result will be much smaller. require several hundred Mbyte). The final result will
be much smaller, because compression is used. To
avoid running out of memory compression will be done
now and then. This can be tuned with the 'mkspellmem'
option.
After the spell file was written and it was being used After the spell file was written and it was being used
in a buffer it will be reloaded automatically. in a buffer it will be reloaded automatically.
@ -452,7 +456,8 @@ then Vim will try to guess.
Vim will report the number of duplicate words. This might be a mistake in the Vim will report the number of duplicate words. This might be a mistake in the
list of words. But sometimes it is used to have different prefixes and list of words. But sometimes it is used to have different prefixes and
suffixes for the same basic word to avoid them combining (e.g. Czech uses suffixes for the same basic word to avoid them combining (e.g. Czech uses
this). this). If you want Vim to report all duplicate words set the 'verbose'
option.
Since you might want to change a Myspell word list for use with Vim the Since you might want to change a Myspell word list for use with Vim the
following procedure is recommended: following procedure is recommended:
@ -477,6 +482,25 @@ When the Myspell files are updated you can merge the differences:
4. Rename xx_YY.new.dic to xx_YY.orig.dic and xx_YY.new.aff to xx_YY.new.aff. 4. Rename xx_YY.new.dic to xx_YY.orig.dic and xx_YY.new.aff to xx_YY.new.aff.
SPELL FILE VERSIONS *E770* *E771* *E772*
Spell checking is a relatively new feature in Vim, thus it's possible that the
.spl file format will be changed to support more languages. Vim will check
the validity of the spell file and report anything wrong.
E771: Old spell file, needs to be updated ~
This spell file is older than your Vim. You need to update the .spl file.
E772: Spell file is for newer version of Vim ~
This means the spell file was made for a later version of Vim. You need to
update Vim.
E770: Unsupported section in spell file ~
This means the spell file was made for a later version of Vim and contains a
section that is required for the spell file to work. In this case it's
probably a good idea to upgrade your Vim.
SPELL FILE DUMP SPELL FILE DUMP
If for some reason you want to check what words are supported by the currently If for some reason you want to check what words are supported by the currently
@ -736,6 +760,7 @@ Example:
SFX F 0 in [^i]n # Spion > Spionin ~ SFX F 0 in [^i]n # Spion > Spionin ~
SFX F 0 nen in # Bauerin > Bauerinnen ~ SFX F 0 nen in # Bauerin > Bauerinnen ~
*spell-affix-rare*
An extra item for Vim is the "rare" flag. It must come after the other An extra item for Vim is the "rare" flag. It must come after the other
fields, before a comment. When used then all words that use the affix will be fields, before a comment. When used then all words that use the affix will be
marked as rare words. Example: marked as rare words. Example:
@ -746,6 +771,22 @@ marked as rare words. Example:
However, if the word also appears as a good word in another way it won't be However, if the word also appears as a good word in another way it won't be
marked as rare. marked as rare.
*spell-affix-nocomp*
Another extra item for Vim is the "nocomp" flag. It must come after the other
fields, before a comment. It can be either before or after "rare". When used
then all words that use the affix will not be used for compound words.
Example:
affix file:
COMPOUNDFLAG c ~
SFX a Y 2 ~
SFX a 0 s . ~
SFX a 0 ize . nocomp ~
dictionary:
word/c ~
util/ac ~
This allows for "wordutil" and "wordutils" but not "wordutilize".
*spell-affix-PFXPOSTPONE* *spell-affix-PFXPOSTPONE*
When an affix file has very many prefixes that apply to many words it's not When an affix file has very many prefixes that apply to many words it's not
possible to build the whole word list in memory. This applies to Hebrew (a possible to build the whole word list in memory. This applies to Hebrew (a
@ -761,9 +802,6 @@ string is one character and equal to the last character of the added string,
but in lower case. Thus when the chop string is used to allow the following but in lower case. Thus when the chop string is used to allow the following
word to start with an upper case letter. word to start with an upper case letter.
It is not possible to use PFXPOSTPONE together with COMPOUNDFLAG or
COMPOUNDFLAGS.
WORDS WITH A SLASH *spell-affix-SLASH* WORDS WITH A SLASH *spell-affix-SLASH*
@ -818,86 +856,73 @@ This can be used to exclude words that would otherwise be good. For example
Once a word has been marked as bad it won't be undone by encountering the same Once a word has been marked as bad it won't be undone by encountering the same
word as good. word as good.
*spell-affix-NEEDAFFIX*
The NEEDAFFIX flag is used to require that a word is used with an affix. The
word itself is not a good word. Example:
NEEDAFFIX + ~
COMPOUND WORDS *spell-affix-compound* COMPOUND WORDS *spell-affix-compound*
A compound word is a longer word made by concatenating words. To specify A compound word is a longer word made by concatenating words that appear in
which words may be concatenated a character is used. This character is put in the .dic file. To specify which words may be concatenated a character is
the list of affixes after the word. We will call this character a flag here. used. This character is put in the list of affixes after the word. We will
Obviously these flags must be different from any affix IDs used. call this character a flag here. Obviously these flags must be different from
any affix IDs used.
*spell-COMPOUNDFLAG* *spell-COMPOUNDFLAG*
The Myspell compatible method uses one flag, specified with COMPOUNDFLAG. The Myspell compatible method uses one flag, specified with COMPOUNDFLAG.
All words with this flag combine in any order and without limit in length. All words with this flag combine in any order. This means there is no control
This means there is no control over which word comes first. Example: over which word comes first. Example:
COMPOUNDFLAG c ~ COMPOUNDFLAG c ~
*spell-COMPOUNDFLAGS* *spell-COMPOUNDFLAGS*
The method added by Vim allows specifying which words can be prepended to A more advanced method to specify how compound words can be formed uses
other words, and which words can be appended to other words. This is a list multiple items with multiple flags. This is not compatible with Myspell 3.0.
of comma separated items. Each item may contain zero or more dashes and plus Let's start with an example:
signs. COMPOUNDFLAGS c+ ~
COMPOUNDFLAGS se ~
NOTE: At this moment COMPOUNDFLAGS has not been implemented yet! The first line defines that words with the "c" flag can be concatenated in any
order. The second line defines compound words that are made of one word with
the "s" flag and one word with the "e" flag. With this dictionary:
bork/c ~
onion/s ~
soup/e ~
An item without dashes specifies words that combine in any order and as often You can make these words:
as possible. Example: bork
COMPOUNDFLAGS c,m ~ borkbork
borkborkbork
This allows all words with the "c" flag to be combined and all words with the (etc.)
"m" flag to be combined, but a word with the "c" flag doesn't combine with a
word with the "m" flag.
Flags that are put together, without a separating comma, are considered
interchangable. Example:
COMPOUNDFLAGS cm ~
This allows all words with the "c" and/or "m" flag to be combined.
An item with one dash specifies flags for a leading word and flags for a
trailing word. Thus only two-word combinations are made. Example:
COMPOUNDFLAGS f-d ~
Here the 'f' flag can be used for food and 'd' for dishes, such that you can
use these words in the dictionary:
tomato/f ~
onion/f~
soup/d~
salat/d~
Which makes the words:
tomato
onion onion
soup soup
salat
tomatosoup
tomatosalat
onionsoup onionsoup
onionsalat
Note that something like "souptomato" is not possible. And that it's actually The COMPOUNDFLAGS item may appear multiple times. The argument is made out of
easier to list all the words if you have only this few. one or more groups, where each group can be:
one flag e.g., c
alternate flags inside [] e.g., [abc]
Optionally this may be followed by:
* the group appears zero or more times, e.g., sm*e
+ the group appears one or more times, e.g., c+
More dashes can be used to allow more words to combine. For example: This is similar to the regexp pattern syntax (but not the same!). A few
COMPOUNDFLAGS f-d,f-f-d ~ examples with the sequence of word flags they require:
COMPOUNDFLAGS x+ x xx xxx etc.
COMPOUNDFLAGS yz yz
COMPOUNDFLAGS x+z xz xxz xxxz etc.
COMPOUNDFLAGS yx+ yx yxx yxxx etc.
Would allow "tomatoonionsoup" (OK, so this is a bad example, but you get the COMPOUNDFLAGS [abc]z az bz cz
idea). COMPOUNDFLAGS [abc]+z az aaz abaz bz baz bcbz cz caz cbaz etc.
COMPOUNDFLAGS a[xyz]+ ax axx axyz ay ayx ayzz az azy azxy etc.
When a word can be used an undetermined number of times use a plus instead of COMPOUNDFLAGS sm*e se sme smme smmme etc.
a dash. Example: COMPOUNDFLAGS s[xyz]*e se sxe sxye sxyxe sye syze sze szye szyxe etc.
COMPOUNDFLAGS f+d ~
Then you can make tasty "oniononiontomatotomatosoup".
The "+" may also appear at the end, which means that the last flags can be
repeated many times. Example:
COMPOUNDFLAGS f-d+ ~
Which allows the use of "onionsoupsoupsoupsoupsoupsoup".
*spell-COMPOUNDMIN* *spell-COMPOUNDMIN*
The minimal length of a word used for concatenation is specified with The minimal byte length of a word used for concatenation is specified with
COMPOUNDMIN. Example: COMPOUNDMIN. Example:
COMPOUNDMIN 5 ~ COMPOUNDMIN 5 ~
@ -905,39 +930,79 @@ When omitted a minimal length of 3 bytes is used. Obviously you could just
leave out the compound flag from short words instead, this feature is present leave out the compound flag from short words instead, this feature is present
for compatibility with Myspell. for compatibility with Myspell.
*spell-CMP* *spell-COMPOUNDMAX*
NOTE: At this moment CMP has not been implemented yet! The maximum number of words that can be concatenated into a compound word is
specified with COMPOUNDMAX. Example:
COMPOUNDMAX 3 ~
Sometimes it is necessary to change a word when concatenating it to another, When omitted there is no maximum. It applies to all compound words.
by removing a few letters, inserting something or both. It can also be useful
to restrict concatenation to words that match a pattern. For this purpose CMP
items can be used. They look like this:
CMP {flag} {flags} {strip} {add} {cond} {cond2}
{flag} the flag, as used in COMPOUNDFLAGS for the lead word To set a limit for words with specific flags make sure the items in
{flags} accepted flags for the following word ('.' to accept COMPOUNDFLAGS where they appear don't allow too many words.
all)
{strip} text to remove from the end of the lead word (zero
for no stripping)
{add} text to insert between the words (zero for no
addition)
{cond} condition to match at the end of the lead word
{cond2} condition to match at the start of the following word
This is the same as what is used for SFX and PFX items, with the extra {flags} *spell-COMPOUNDSYLMAX*
and {cond2} fields. Example: The maximum number of syllables that a compound word may contain is specified
CMP f mrt 0 - . . ~ with COMPOUNDSYLMAX. Example:
COMPOUNDSYLMAX 6 ~
When used with the food and dish word list above, this means that a dash is This has no effect if there is no SYLLABLE item. Without COMPOUNDSYLMAX there
inserted after each food item. Thus you get "onion-soup" and is no limit on the number of syllables.
"onion-tomato-salat".
When there are CMP items for a compound flag the concatenation is only done *spell-SYLLABLE*
when a CMP item matches. The SYLLABLE item defines characters or character sequences that are used to
count the number of syllables in a word. Example:
SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui ~
When there are no CMP items for a compound flag, then all words will be Before the first slash is the set of characters that are counted for one
concatenated, as if there was an item: syllable, also when repeated and mixed, until the next character that is not
CMP {flag} . 0 0 . . in this set. After the slash come sequences of characters that are counted
for one syllable. These are preferred over using characters from the set.
With the example "ideeen" has three syllables, counted by "i", "ee" and "e".
Only case-folded letters need to be included.
Above another way to restrict compounding was mentioned above: adding "nocomp"
after an affix causes all words that are made with that affix not be be used
for compounding. |spell-affix-nocomp|
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
NOTE: The following has not been implemented yet, because there are no word
lists that support this.
> *spell-CMP*
> Sometimes it is necessary to change a word when concatenating it to another,
> by removing a few letters, inserting something or both. It can also be useful
> to restrict concatenation to words that match a pattern. For this purpose CMP
> items can be used. They look like this:
> CMP {flag} {flags} {strip} {strip2} {add} {cond} {cond2}
>
> {flag} the flag, as used in COMPOUNDFLAGS for the lead word
> {flags} accepted flags for the following word ('.' to accept
> all)
> {strip} text to remove from the end of the lead word (zero
> for no stripping)
> {strip2} text to remove from the start of the following word
> (zero for no stripping)
> {add} text to insert between the words (zero for no
> addition)
> {cond} condition to match at the end of the lead word
> {cond2} condition to match at the start of the following word
>
> This is the same as what is used for SFX and PFX items, with the extra {flags}
> and {cond2} fields. Example:
> CMP f mrt 0 - . . ~
>
> When used with the food and dish word list above, this means that a dash is
> inserted after each food item. Thus you get "onion-soup" and
> "onion-tomato-salat".
>
> When there are CMP items for a compound flag the concatenation is only done
> when a CMP item matches.
>
> When there are no CMP items for a compound flag, then all words will be
> concatenated, as if there was an item:
> CMP {flag} . 0 0 . .
>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
REPLACEMENTS *spell-affix-REP* REPLACEMENTS *spell-affix-REP*

View File

@ -3654,9 +3654,8 @@ also tell where it was last set. Example: >
< Comment xxx term=bold ctermfg=4 guifg=Blue ~ < Comment xxx term=bold ctermfg=4 guifg=Blue ~
Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~ Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~
For details about when this message is given and when it's valid see When ":hi clear" is used then the script where this command is used will be
|:set-verbose|. When ":hi clear" is used then the script where this command mentioned for the default values. See |:verbose-cmd| for more information.
is used will be mentioned for the default values.
*highlight-args* *E416* *E417* *E423* *highlight-args* *E416* *E417* *E423*
There are three types of terminals for highlighting: There are three types of terminals for highlighting:

View File

@ -361,6 +361,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'mfd' options.txt /*'mfd'* 'mfd' options.txt /*'mfd'*
'mh' options.txt /*'mh'* 'mh' options.txt /*'mh'*
'mis' options.txt /*'mis'* 'mis' options.txt /*'mis'*
'mkspellmem' options.txt /*'mkspellmem'*
'ml' options.txt /*'ml'* 'ml' options.txt /*'ml'*
'mls' options.txt /*'mls'* 'mls' options.txt /*'mls'*
'mm' options.txt /*'mm'* 'mm' options.txt /*'mm'*
@ -385,6 +386,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'mousetime' options.txt /*'mousetime'* 'mousetime' options.txt /*'mousetime'*
'mp' options.txt /*'mp'* 'mp' options.txt /*'mp'*
'mps' options.txt /*'mps'* 'mps' options.txt /*'mps'*
'msm' options.txt /*'msm'*
'mzq' options.txt /*'mzq'* 'mzq' options.txt /*'mzq'*
'mzquantum' options.txt /*'mzquantum'* 'mzquantum' options.txt /*'mzquantum'*
'nf' options.txt /*'nf'* 'nf' options.txt /*'nf'*
@ -2589,6 +2591,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:ve various.txt /*:ve* :ve various.txt /*:ve*
:verb various.txt /*:verb* :verb various.txt /*:verb*
:verbose various.txt /*:verbose* :verbose various.txt /*:verbose*
:verbose-cmd various.txt /*:verbose-cmd*
:version various.txt /*:version* :version various.txt /*:version*
:vert windows.txt /*:vert* :vert windows.txt /*:vert*
:vertical windows.txt /*:vertical* :vertical windows.txt /*:vertical*
@ -3735,6 +3738,7 @@ E752 spell.txt /*E752*
E753 spell.txt /*E753* E753 spell.txt /*E753*
E754 spell.txt /*E754* E754 spell.txt /*E754*
E756 spell.txt /*E756* E756 spell.txt /*E756*
E757 options.txt /*E757*
E758 spell.txt /*E758* E758 spell.txt /*E758*
E759 spell.txt /*E759* E759 spell.txt /*E759*
E76 pattern.txt /*E76* E76 pattern.txt /*E76*
@ -3747,7 +3751,11 @@ E765 options.txt /*E765*
E766 eval.txt /*E766* E766 eval.txt /*E766*
E767 eval.txt /*E767* E767 eval.txt /*E767*
E768 message.txt /*E768* E768 message.txt /*E768*
E769 pattern.txt /*E769*
E77 message.txt /*E77* E77 message.txt /*E77*
E770 spell.txt /*E770*
E771 spell.txt /*E771*
E772 spell.txt /*E772*
E78 motion.txt /*E78* E78 motion.txt /*E78*
E79 message.txt /*E79* E79 message.txt /*E79*
E80 message.txt /*E80* E80 message.txt /*E80*
@ -6385,12 +6393,16 @@ spell spell.txt /*spell*
spell-CMP spell.txt /*spell-CMP* spell-CMP spell.txt /*spell-CMP*
spell-COMPOUNDFLAG spell.txt /*spell-COMPOUNDFLAG* spell-COMPOUNDFLAG spell.txt /*spell-COMPOUNDFLAG*
spell-COMPOUNDFLAGS spell.txt /*spell-COMPOUNDFLAGS* spell-COMPOUNDFLAGS spell.txt /*spell-COMPOUNDFLAGS*
spell-COMPOUNDMAX spell.txt /*spell-COMPOUNDMAX*
spell-COMPOUNDMIN spell.txt /*spell-COMPOUNDMIN* spell-COMPOUNDMIN spell.txt /*spell-COMPOUNDMIN*
spell-COMPOUNDSYLMAX spell.txt /*spell-COMPOUNDSYLMAX*
spell-SYLLABLE spell.txt /*spell-SYLLABLE*
spell-affix-BAD spell.txt /*spell-affix-BAD* spell-affix-BAD spell.txt /*spell-affix-BAD*
spell-affix-FOL spell.txt /*spell-affix-FOL* spell-affix-FOL spell.txt /*spell-affix-FOL*
spell-affix-KEP spell.txt /*spell-affix-KEP* spell-affix-KEP spell.txt /*spell-affix-KEP*
spell-affix-LOW spell.txt /*spell-affix-LOW* spell-affix-LOW spell.txt /*spell-affix-LOW*
spell-affix-MAP spell.txt /*spell-affix-MAP* spell-affix-MAP spell.txt /*spell-affix-MAP*
spell-affix-NEEDAFFIX spell.txt /*spell-affix-NEEDAFFIX*
spell-affix-PFX spell.txt /*spell-affix-PFX* spell-affix-PFX spell.txt /*spell-affix-PFX*
spell-affix-PFXPOSTPONE spell.txt /*spell-affix-PFXPOSTPONE* spell-affix-PFXPOSTPONE spell.txt /*spell-affix-PFXPOSTPONE*
spell-affix-RAR spell.txt /*spell-affix-RAR* spell-affix-RAR spell.txt /*spell-affix-RAR*
@ -6404,6 +6416,8 @@ spell-affix-UPP spell.txt /*spell-affix-UPP*
spell-affix-chars spell.txt /*spell-affix-chars* spell-affix-chars spell.txt /*spell-affix-chars*
spell-affix-compound spell.txt /*spell-affix-compound* spell-affix-compound spell.txt /*spell-affix-compound*
spell-affix-mbyte spell.txt /*spell-affix-mbyte* spell-affix-mbyte spell.txt /*spell-affix-mbyte*
spell-affix-nocomp spell.txt /*spell-affix-nocomp*
spell-affix-rare spell.txt /*spell-affix-rare*
spell-affix-vim spell.txt /*spell-affix-vim* spell-affix-vim spell.txt /*spell-affix-vim*
spell-dic-format spell.txt /*spell-dic-format* spell-dic-format spell.txt /*spell-dic-format*
spell-double-scoring spell.txt /*spell-double-scoring* spell-double-scoring spell.txt /*spell-double-scoring*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2005 Aug 16 *todo.txt* For Vim version 7.0aa. Last change: 2005 Aug 19
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -31,12 +31,19 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Spelling: Spelling:
- Prefer SpellBad over SpellCap highlighting. - Test counting syllables and comparing against the maximum.
- Add limit for number of suggestions to 'spellsuggest'? - Test nocomp flag for affixes.
- CTRL-X s in Insert mode: move cursor back to after badly spelled word?
- Implement multiple flags for compound words and CMP item. - When looking for following compound word, also do postponed prefixes.
- Implement multiple flags for compound words and CMP item?
Await comments from other spell checking authors. Await comments from other spell checking authors.
Help tags: something to make it easy to find help about a certain filetype?
use ft-c-syntax ft-c-ftplugin etc.?
Mac GUI: pasting lines results in ^M instead of line breaks. (Benjamin Esham)
Mac unicode patch (Da Woon Jung): Mac unicode patch (Da Woon Jung):
- selecting proportional font breaks display - selecting proportional font breaks display
- UTF-8 text causes display problems. Font replacement causes this. - UTF-8 text causes display problems. Font replacement causes this.
@ -44,7 +51,7 @@ Mac unicode patch (Da Woon Jung):
Win32: Use the free downloadable compiler 7.1. Figure out how to do debugging Win32: Use the free downloadable compiler 7.1. Figure out how to do debugging
(with Agide?) and describe it. (George Reilly) (with Agide?) and describe it. (George Reilly)
autoload: Autoload:
- Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of - 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 script names and a help file and produces a script that can be sourced to
install the scripts in the user's directories. install the scripts in the user's directories.

View File

@ -485,6 +485,14 @@ N *+X11* Unix only: can restore window title |X11|
For logging verbose messages in a file use the For logging verbose messages in a file use the
'verbosefile' option. 'verbosefile' option.
*:verbose-cmd*
When 'verbose' is non-zero, listing the value of a Vim option or a key map or
a user-defined function or a command or a highlight group will also display
where it was last defined. If it was defined manually then there will be no
"Last set" message. When it was defined while executing a function, user
command or autocommand, the script in which it was defined is reported.
{not available when compiled without the +eval feature}
*K* *K*
K Run a program to lookup the keyword under the K Run a program to lookup the keyword under the
cursor. The name of the program is given with the cursor. The name of the program is given with the

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2005 Aug 16 " Last Change: 2005 Aug 17
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@ -823,7 +823,7 @@ au BufNewFile,BufRead *.m4
au BufNewFile,BufRead *.mgp setf mgp au BufNewFile,BufRead *.mgp setf mgp
" Mail (for Elm, trn, mutt, rn, slrn) " Mail (for Elm, trn, mutt, rn, slrn)
au BufNewFile,BufRead snd.\d\+,.letter,.letter.\d\+,.followup,.article,.article.\d\+,pico.\d\+,mutt-*-\w\+,mutt\w\{6\},ae\d\+.txt,/tmp/SLRN[0-9A-Z.]\+,*.eml setf mail 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
" Mailcap configuration file " Mailcap configuration file
au BufNewFile,BufRead .mailcap,mailcap setf mailcap au BufNewFile,BufRead .mailcap,mailcap setf mailcap
@ -953,8 +953,8 @@ au BufRead,BufNewFile *.mu setf mupad
au BufNewFile,BufRead *.mush setf mush au BufNewFile,BufRead *.mush setf mush
" Mutt setup file " Mutt setup file
au BufNewFile,BufRead Muttrc setf muttrc au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
au BufNewFile,BufRead .muttrc*,*/.mutt/muttrc* call s:StarSetf('muttrc') au BufNewFile,BufRead .mutt{ng,}rc*,*/.mutt{ng,}/mutt{ng,}rc* call s:StarSetf('muttrc')
" Nano " Nano
au BufNewFile,BufRead /etc/nanorc,.nanorc setf nanorc au BufNewFile,BufRead /etc/nanorc,.nanorc setf nanorc
@ -1832,7 +1832,12 @@ au BufNewFile,BufRead *.y call s:FTy()
fun! s:FTy() fun! s:FTy()
let n = 1 let n = 1
while n < 10 && n < line("$") while n < 100 && n < line("$")
let line = getline(n)
if line =~ '^\s*%'
setf yacc
return
endif
if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include' if getline(n) =~ '^\s*\(#\|class\>\)' && getline(n) !~ '^\s*#\s*include'
setf racc setf racc
return return
@ -1924,7 +1929,7 @@ au BufNewFile,BufRead /etc/modprobe.* call s:StarSetf('modconf')
au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby') au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
" Mutt setup file " Mutt setup file
au BufNewFile,BufRead muttrc*,Muttrc* call s:StarSetf('muttrc') au BufNewFile,BufRead mutt{ng,}rc*,Mutt{ng,}rc* call s:StarSetf('muttrc')
" Nroff macros " Nroff macros
au BufNewFile,BufRead tmac.* call s:StarSetf('nroff') au BufNewFile,BufRead tmac.* call s:StarSetf('nroff')

View File

@ -1,8 +1,8 @@
" netrw.vim: Handles file transfer and remote directory listing across a network " netrw.vim: Handles file transfer and remote directory listing across a network
" PLUGIN PORTION " PLUGIN PORTION
" Last Change: Aug 16, 2005 " Last Change: Aug 17, 2005
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" Version: 63 " Version: 65a ASTRO-ONLY
" License: Vim License (see vim's :help license) " License: Vim License (see vim's :help license)
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1 " Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
@ -28,7 +28,7 @@ if v:version < 600
echoerr "***netrw*** doesn't support Vim version ".v:version echoerr "***netrw*** doesn't support Vim version ".v:version
finish finish
endif endif
let g:loaded_netrw = "v63" let g:loaded_netrw = "v65a"
if v:version < 700 if v:version < 700
let loaded_explorer = 1 let loaded_explorer = 1
endif endif

Binary file not shown.

View File

@ -2,8 +2,7 @@
" Language: BibTeX (bibliographic database format for (La)TeX) " Language: BibTeX (bibliographic database format for (La)TeX)
" Maintainer: Bernd Feige <Bernd.Feige@gmx.net> " Maintainer: Bernd Feige <Bernd.Feige@gmx.net>
" Filenames: *.bib " Filenames: *.bib
" Last Change: Apr 26, 2001 " Last Change: Aug 02, 2005
" URL: http://home.t-online.de/home/Bernd.Feige/bib.vim
" Thanks to those who pointed out problems with this file or supplied fixes! " Thanks to those who pointed out problems with this file or supplied fixes!
@ -47,7 +46,7 @@ syn cluster bibVarContents contains=bibUnescapedSpecial,bibBrace,bibParen
syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1 syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1
syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField
syn match bibVariable contained /[^{}," \t=]/ syn match bibVariable contained /[^{}," \t=]/
syn region bibComment start=/^/ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents
syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents
syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents
@ -60,6 +59,7 @@ if version < 600
else else
syn region bibEntry start=/@\S\+[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment syn region bibEntry start=/@\S\+[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment
endif endif
syn region bibComment2 start=/@Comment[{(]/ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry
" Synchronization " Synchronization
" =============== " ===============
@ -86,6 +86,7 @@ if version >= 508 || !exists("did_bib_syn_inits")
HiLink bibVariable Constant HiLink bibVariable Constant
HiLink bibUnescapedSpecial Error HiLink bibUnescapedSpecial Error
HiLink bibComment Comment HiLink bibComment Comment
HiLink bibComment2 Comment
delcommand HiLink delcommand HiLink
endif endif

View File

@ -136,6 +136,7 @@ static void redo_literal __ARGS((int c));
static void start_arrow __ARGS((pos_T *end_insert_pos)); static void start_arrow __ARGS((pos_T *end_insert_pos));
#ifdef FEAT_SYN_HL #ifdef FEAT_SYN_HL
static void check_spell_redraw __ARGS((void)); static void check_spell_redraw __ARGS((void));
static void spell_back_to_badword __ARGS((void));
#endif #endif
static void stop_insert __ARGS((pos_T *end_insert_pos, int esc)); static void stop_insert __ARGS((pos_T *end_insert_pos, int esc));
static int echeck_abbr __ARGS((int)); static int echeck_abbr __ARGS((int));
@ -2365,6 +2366,9 @@ ins_compl_prep(c)
case 's': case 's':
case Ctrl_S: case Ctrl_S:
ctrl_x_mode = CTRL_X_SPELL; ctrl_x_mode = CTRL_X_SPELL;
#ifdef FEAT_SYN_HL
spell_back_to_badword();
#endif
break; break;
case Ctrl_RSB: case Ctrl_RSB:
ctrl_x_mode = CTRL_X_TAGS; ctrl_x_mode = CTRL_X_TAGS;
@ -3533,7 +3537,7 @@ ins_complete(c)
{ {
#ifdef FEAT_SYN_HL #ifdef FEAT_SYN_HL
compl_col = spell_word_start(startcol); compl_col = spell_word_start(startcol);
if (compl_col == startcol) if (compl_col == (colnr_T)startcol)
return FAIL; return FAIL;
compl_length = (int)curs_col - compl_col; compl_length = (int)curs_col - compl_col;
compl_pattern = vim_strnsave(line + compl_col, compl_length); compl_pattern = vim_strnsave(line + compl_col, compl_length);
@ -4759,7 +4763,7 @@ redo_literal(c)
/* /*
* start_arrow() is called when an arrow key is used in insert mode. * start_arrow() is called when an arrow key is used in insert mode.
* It resembles hitting the <ESC> key. * For undo/redo it resembles hitting the <ESC> key.
*/ */
static void static void
start_arrow(end_insert_pos) start_arrow(end_insert_pos)
@ -4792,6 +4796,20 @@ check_spell_redraw()
redrawWinline(lnum, FALSE); redrawWinline(lnum, FALSE);
} }
} }
/*
* Called when starting CTRL_X_SPELL mode: Move backwards to a previous badly
* spelled word, if there is one.
*/
static void
spell_back_to_badword()
{
pos_T tpos = curwin->w_cursor;
spell_move_to(BACKWARD, TRUE, TRUE);
if (curwin->w_cursor.col != tpos.col)
start_arrow(&tpos);
}
#endif #endif
/* /*

View File

@ -30,7 +30,6 @@ static int check_readonly __ARGS((int *forceit, buf_T *buf));
#ifdef FEAT_AUTOCMD #ifdef FEAT_AUTOCMD
static void delbuf_msg __ARGS((char_u *name)); static void delbuf_msg __ARGS((char_u *name));
#endif #endif
static int do_sub_msg __ARGS((int count_only));
static int static int
#ifdef __BORLANDC__ #ifdef __BORLANDC__
_RTLENTRYF _RTLENTRYF
@ -3940,13 +3939,6 @@ check_secure()
static char_u *old_sub = NULL; /* previous substitute pattern */ static char_u *old_sub = NULL; /* previous substitute pattern */
static int global_need_beginline; /* call beginline() after ":g" */ static int global_need_beginline; /* call beginline() after ":g" */
/*
* When ":global" is used to number of substitutions and changed lines is
* accumulated until it's finished.
*/
static long sub_nsubs; /* total number of substitutions */
static linenr_T sub_nlines; /* total number of lines changed */
/* do_sub() /* do_sub()
* *
* Perform a substitution from line eap->line1 to line eap->line2 using the * Perform a substitution from line eap->line1 to line eap->line2 using the
@ -4829,7 +4821,7 @@ outofmem:
* Can also be used after a ":global" command. * Can also be used after a ":global" command.
* Return TRUE if a message was given. * Return TRUE if a message was given.
*/ */
static int int
do_sub_msg(count_only) do_sub_msg(count_only)
int count_only; /* used 'n' flag for ":s" */ int count_only; /* used 'n' flag for ":s" */
{ {

View File

@ -1057,6 +1057,14 @@ EXTERN int cmdwin_result INIT(= 0); /* result of cmdline window or 0 */
EXTERN char_u no_lines_msg[] INIT(= N_("--No lines in buffer--")); EXTERN char_u no_lines_msg[] INIT(= N_("--No lines in buffer--"));
/*
* When ":global" is used to number of substitutions and changed lines is
* accumulated until it's finished.
* Also used for ":spellrepall".
*/
EXTERN long sub_nsubs; /* total number of substitutions */
EXTERN linenr_T sub_nlines; /* total number of lines changed */
/* table to store parsed 'wildmode' */ /* table to store parsed 'wildmode' */
EXTERN char_u wim_flags[4]; EXTERN char_u wim_flags[4];

View File

@ -1506,6 +1506,15 @@ static struct vimoption
{"mesg", NULL, P_BOOL|P_VI_DEF, {"mesg", NULL, P_BOOL|P_VI_DEF,
(char_u *)NULL, PV_NONE, (char_u *)NULL, PV_NONE,
{(char_u *)FALSE, (char_u *)0L}}, {(char_u *)FALSE, (char_u *)0L}},
{"mkspellmem", "msm", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE,
#ifdef FEAT_SYN_HL
(char_u *)&p_msm, PV_NONE,
{(char_u *)"460000,2000,500", (char_u *)0L}
#else
(char_u *)NULL, PV_NONE,
{(char_u *)0L, (char_u *)0L}
#endif
},
{"modeline", "ml", P_BOOL|P_VIM, {"modeline", "ml", P_BOOL|P_VIM,
(char_u *)&p_ml, PV_ML, (char_u *)&p_ml, PV_ML,
{(char_u *)FALSE, (char_u *)TRUE}}, {(char_u *)FALSE, (char_u *)TRUE}},
@ -4621,6 +4630,7 @@ didset_options()
(void)opt_strings_flags(p_ttym, p_ttym_values, &ttym_flags, FALSE); (void)opt_strings_flags(p_ttym, p_ttym_values, &ttym_flags, FALSE);
#endif #endif
#ifdef FEAT_SYN_HL #ifdef FEAT_SYN_HL
(void)spell_check_msm();
(void)spell_check_sps(); (void)spell_check_sps();
(void)compile_cap_prog(curbuf); (void)compile_cap_prog(curbuf);
#endif #endif
@ -5791,6 +5801,12 @@ did_set_string_option(opt_idx, varp, new_value_alloced, oldval, errbuf,
if (spell_check_sps() != OK) if (spell_check_sps() != OK)
errmsg = e_invarg; errmsg = e_invarg;
} }
/* 'mkspellmem' */
else if (varp == &p_msm)
{
if (spell_check_msm() != OK)
errmsg = e_invarg;
}
#endif #endif
#ifdef FEAT_QUICKFIX #ifdef FEAT_QUICKFIX

View File

@ -594,6 +594,9 @@ EXTERN long p_mmt; /* 'maxmemtot' */
#ifdef FEAT_MENU #ifdef FEAT_MENU
EXTERN long p_mis; /* 'menuitems' */ EXTERN long p_mis; /* 'menuitems' */
#endif #endif
#ifdef FEAT_SYN_HL
EXTERN char_u *p_msm; /* 'mkspellmem' */
#endif
EXTERN long p_mls; /* 'modelines' */ EXTERN long p_mls; /* 'modelines' */
EXTERN char_u *p_mouse; /* 'mouse' */ EXTERN char_u *p_mouse; /* 'mouse' */
#ifdef FEAT_GUI #ifdef FEAT_GUI

View File

@ -34,6 +34,7 @@ void ex_z __ARGS((exarg_T *eap));
int check_restricted __ARGS((void)); int check_restricted __ARGS((void));
int check_secure __ARGS((void)); int check_secure __ARGS((void));
void do_sub __ARGS((exarg_T *eap)); void do_sub __ARGS((exarg_T *eap));
int do_sub_msg __ARGS((int count_only));
void ex_global __ARGS((exarg_T *eap)); void ex_global __ARGS((exarg_T *eap));
void global_exe __ARGS((char_u *cmd)); void global_exe __ARGS((char_u *cmd));
int read_viminfo_sub_string __ARGS((vir_T *virp, int force)); int read_viminfo_sub_string __ARGS((vir_T *virp, int force));

View File

@ -11,6 +11,7 @@ void ex_spell __ARGS((exarg_T *eap));
void spell_add_word __ARGS((char_u *word, int len, int bad, int index)); void spell_add_word __ARGS((char_u *word, int len, int bad, int index));
void init_spell_chartab __ARGS((void)); void init_spell_chartab __ARGS((void));
int spell_check_sps __ARGS((void)); int spell_check_sps __ARGS((void));
int spell_check_msm __ARGS((void));
void spell_suggest __ARGS((void)); void spell_suggest __ARGS((void));
void ex_spellrepall __ARGS((exarg_T *eap)); void ex_spellrepall __ARGS((exarg_T *eap));
void spell_suggest_list __ARGS((garray_T *gap, char_u *word, int maxcount, int need_cap)); void spell_suggest_list __ARGS((garray_T *gap, char_u *word, int maxcount, int need_cap));

View File

@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA" #define VIM_VERSION_MEDIUM "7.0aa ALPHA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 16)" #define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 19)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 16, compiled " #define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 19, compiled "