Merge #9164 from justinmk/vim-a2a80162deb1

vim-patch: runtime updates
This commit is contained in:
Justin M. Keyes
2018-10-29 17:47:27 +01:00
committed by GitHub
205 changed files with 14505 additions and 3936 deletions

View File

@@ -0,0 +1,48 @@
" Author: Antony Lee <anntzer.lee@gmail.com>
" Description: Helper functions for reStructuredText syntax folding
" Last Modified: 2018-01-07
function s:CacheRstFold()
let closure = {'header_types': {}, 'max_level': 0, 'levels': {}}
function closure.Process(match) dict
let curline = getcurpos()[1]
if has_key(self.levels, curline - 1)
" For over+under-lined headers, the regex will match both at the
" overline and at the title itself; in that case, skip the second match.
return
endif
let lines = split(a:match, '\n')
let key = repeat(lines[-1][0], len(lines))
if !has_key(self.header_types, key)
let self.max_level += 1
let self.header_types[key] = self.max_level
endif
let self.levels[curline] = self.header_types[key]
endfunction
let save_cursor = getcurpos()
silent keeppatterns %s/\v^%(%(([=`:.'"~^_*+#-])\1+\n)?.{1,2}\n([=`:.'"~^_*+#-])\2+)|%(%(([=`:.''"~^_*+#-])\3{2,}\n)?.{3,}\n([=`:.''"~^_*+#-])\4{2,})$/\=closure.Process(submatch(0))/gn
call setpos('.', save_cursor)
let b:RstFoldCache = closure.levels
endfunction
function RstFold#GetRstFold()
if !has_key(b:, 'RstFoldCache')
call s:CacheRstFold()
endif
if has_key(b:RstFoldCache, v:lnum)
return '>' . b:RstFoldCache[v:lnum]
else
return '='
endif
endfunction
function RstFold#GetRstFoldText()
if !has_key(b:, 'RstFoldCache')
call s:CacheRstFold()
endif
let indent = repeat(' ', b:RstFoldCache[v:foldstart] - 1)
let thisline = getline(v:foldstart)
" For over+under-lined headers, skip the overline.
let text = thisline =~ '^\([=`:.''"~^_*+#-]\)\1\+$' ? getline(v:foldstart + 1) : thisline
return indent . text
endfunction

View File

@@ -4,7 +4,7 @@
" plus CSS Speech Module <http://www.w3.org/TR/css3-speech/> " plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com ) " Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl ) " Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
" Last Change: 2016 Jan 11 " Last Change: 2018 Jul 02
let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom") let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
@@ -19,7 +19,6 @@ function! csscomplete#CompleteCSS(findstart, base)
while start >= 0 && line[start - 1] =~ '\%(\k\|-\)' while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
let start -= 1 let start -= 1
endwhile endwhile
let b:after = line[compl_begin :]
let b:compl_context = line[0:compl_begin] let b:compl_context = line[0:compl_begin]
return start return start
endif endif
@@ -37,11 +36,14 @@ function! csscomplete#CompleteCSS(findstart, base)
" 5. if @ complete at-rule " 5. if @ complete at-rule
" 6. if ! complete important " 6. if ! complete important
if exists("b:compl_context") if exists("b:compl_context")
let line = getline('.')
let compl_begin = col('.') - 2
let after = line[compl_begin:]
let line = b:compl_context let line = b:compl_context
let after = b:after
unlet! b:compl_context unlet! b:compl_context
else else
let line = a:base let line = a:base
let after = ''
endif endif
let res = [] let res = []

View File

@@ -1,7 +1,7 @@
" Vim functions for file type detection " Vim functions for file type detection
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2017 Nov 11 " Last Change: 2017 Dec 05
" These functions are moved here from runtime/filetype.vim to make startup " These functions are moved here from runtime/filetype.vim to make startup
" faster. " faster.
@@ -618,7 +618,11 @@ func dist#ft#FTperl()
setf perl setf perl
return 1 return 1
endif endif
if search('^use\s\s*\k', 'nc', 30) let save_cursor = getpos('.')
call cursor(1,1)
let has_use = search('^use\s\s*\k', 'c', 30)
call setpos('.', save_cursor)
if has_use
setf perl setf perl
return 1 return 1
endif endif

View File

@@ -20,6 +20,7 @@ function! spellfile#LoadFile(lang)
endif endif
return return
endif endif
let lang = tolower(a:lang)
" If the URL changes we try all files again. " If the URL changes we try all files again.
if s:spellfile_URL != g:spellfile_URL if s:spellfile_URL != g:spellfile_URL
@@ -28,13 +29,13 @@ function! spellfile#LoadFile(lang)
endif endif
" I will say this only once! " I will say this only once!
if has_key(s:donedict, a:lang . &enc) if has_key(s:donedict, lang . &enc)
if &verbose if &verbose
echomsg 'spellfile#LoadFile(): Tried this language/encoding before.' echomsg 'spellfile#LoadFile(): Tried this language/encoding before.'
endif endif
return return
endif endif
let s:donedict[a:lang . &enc] = 1 let s:donedict[lang . &enc] = 1
" Find spell directories we can write in. " Find spell directories we can write in.
let [dirlist, dirchoices] = spellfile#GetDirChoices() let [dirlist, dirchoices] = spellfile#GetDirChoices()
@@ -94,7 +95,7 @@ function! spellfile#LoadFile(lang)
let newbufnr = winbufnr(0) let newbufnr = winbufnr(0)
endif endif
let fname = a:lang . '.ascii.spl' let fname = lang . '.ascii.spl'
echo 'Could not find it, trying ' . fname . '...' echo 'Could not find it, trying ' . fname . '...'
call spellfile#Nread(fname) call spellfile#Nread(fname)
if getline(2) !~ 'VIMspell' if getline(2) !~ 'VIMspell'

View File

@@ -0,0 +1,111 @@
" Vim plugin for formatting XML
" Last Change: Thu, 22 May 2018 21:26:55 +0100
" Version: 0.1
" Author: Christian Brabandt <cb@256bit.org>
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
" License: VIM License
" Documentation: see :h xmlformat.txt (TODO!)
" ---------------------------------------------------------------------
" Load Once: {{{1
if exists("g:loaded_xmlformat") || &cp
finish
endif
let g:loaded_xmlformat = 1
let s:keepcpo = &cpo
set cpo&vim
" Main function: Format the input {{{1
func! xmlformat#Format()
" only allow reformatting through the gq command
" (e.g. Vim is in normal mode)
if mode() != 'n'
" do not fall back to internal formatting
return 0
endif
let sw = shiftwidth()
let prev = prevnonblank(v:lnum-1)
let s:indent = indent(prev)/sw
let result = []
let lastitem = prev ? getline(prev) : ''
let is_xml_decl = 0
" split on `<`, but don't split on very first opening <
for item in split(join(getline(v:lnum, (v:lnum + v:count - 1))), '.\@<=[>]\zs')
if s:EndTag(item)
let s:indent = s:DecreaseIndent()
call add(result, s:Indent(item))
elseif s:EmptyTag(lastitem)
call add(result, s:Indent(item))
elseif s:StartTag(lastitem) && s:IsTag(item)
let s:indent += 1
call add(result, s:Indent(item))
else
if !s:IsTag(item)
" Simply split on '<'
let t=split(item, '.<\@=\zs')
let s:indent+=1
call add(result, s:Indent(t[0]))
let s:indent = s:DecreaseIndent()
call add(result, s:Indent(t[1]))
else
call add(result, s:Indent(item))
endif
endif
let lastitem = item
endfor
if !empty(result)
exe v:lnum. ",". (v:lnum + v:count - 1). 'd'
call append(v:lnum - 1, result)
" Might need to remove the last line, if it became empty because of the
" append() call
let last = v:lnum + len(result)
if getline(last) is ''
exe last. 'd'
endif
endif
" do not run internal formatter!
return 0
endfunc
" Check if given tag is XML Declaration header {{{1
func! s:IsXMLDecl(tag)
return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$'
endfunc
" Return tag indented by current level {{{1
func! s:Indent(item)
return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item)
endfu
" Return item trimmed from leading whitespace {{{1
func! s:Trim(item)
if exists('*trim')
return trim(a:item)
else
return matchstr(a:item, '\S\+.*')
endif
endfunc
" Check if tag is a new opening tag <tag> {{{1
func! s:StartTag(tag)
return a:tag =~? '^\s*<[^/?]'
endfunc
" Remove one level of indentation {{{1
func! s:DecreaseIndent()
return (s:indent > 0 ? s:indent - 1 : 0)
endfunc
" Check if tag is a closing tag </tag> {{{1
func! s:EndTag(tag)
return a:tag =~? '^\s*</'
endfunc
" Check that the tag is actually a tag and not {{{1
" something like "foobar</foobar>"
func! s:IsTag(tag)
return s:Trim(a:tag)[0] == '<'
endfunc
" Check if tag is empty <tag/> {{{1
func! s:EmptyTag(tag)
return a:tag =~ '/>\s*$'
endfunc
" Restoration And Modelines: {{{1
let &cpo= s:keepcpo
unlet s:keepcpo
" Modeline {{{1
" vim: fdm=marker fdl=0 ts=2 et sw=0 sts=-1

View File

@@ -313,4 +313,4 @@ There is one known minor bug,
No other bugs are known to exist. No other bugs are known to exist.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -20,7 +20,7 @@ files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your vimrc file. place to put autocommands is in your vimrc file.
*E203* *E204* *E143* *E855* *E937* *E203* *E204* *E143* *E855* *E937* *E952*
WARNING: Using autocommands is very powerful, and may lead to unexpected side WARNING: Using autocommands is very powerful, and may lead to unexpected side
effects. Be careful not to destroy your text. effects. Be careful not to destroy your text.
- It's a good idea to do some testing on an expendable copy of a file first. - It's a good idea to do some testing on an expendable copy of a file first.
@@ -44,6 +44,8 @@ effects. Be careful not to destroy your text.
Add {cmd} to the list of commands that Vim will Add {cmd} to the list of commands that Vim will
execute automatically on {event} for a file matching execute automatically on {event} for a file matching
{pat} |autocmd-patterns|. {pat} |autocmd-patterns|.
Note: A quote character is seen as argument to the
:autocmd and won't start a comment.
Vim always adds the {cmd} after existing autocommands, Vim always adds the {cmd} after existing autocommands,
so that the autocommands execute in the order in which so that the autocommands execute in the order in which
they were given. See |autocmd-nested| for [nested]. they were given. See |autocmd-nested| for [nested].
@@ -79,7 +81,8 @@ will appear twice. To avoid this, define your autocommands in a group, so
that you can easily clear them: > that you can easily clear them: >
augroup vimrc augroup vimrc
autocmd! " Remove all vimrc autocommands " Remove all vimrc autocommands
autocmd!
au BufNewFile,BufRead *.html so <sfile>:h/html.vim au BufNewFile,BufRead *.html so <sfile>:h/html.vim
augroup END augroup END
@@ -133,6 +136,8 @@ prompt. When one command outputs two messages this can happen anyway.
plugins, syntax highlighting, etc. plugins, syntax highlighting, etc.
:au[tocmd]! [group] Remove ALL autocommands. :au[tocmd]! [group] Remove ALL autocommands.
Note: a quote will be seen as argument to the :autocmd
and won't start a comment.
Warning: You should normally not do this without a Warning: You should normally not do this without a
group, it breaks plugins, syntax highlighting, etc. group, it breaks plugins, syntax highlighting, etc.
@@ -313,6 +318,7 @@ Name triggered by ~
|TabNew| when creating a new tab page |TabNew| when creating a new tab page
|TabNewEntered| after entering a new tab page |TabNewEntered| after entering a new tab page
|TabClosed| after closing a tab page |TabClosed| after closing a tab page
|CmdlineChanged| after a change was made to the command-line text
|CmdlineEnter| after entering cmdline mode |CmdlineEnter| after entering cmdline mode
|CmdlineLeave| before leaving cmdline mode |CmdlineLeave| before leaving cmdline mode
|CmdwinEnter| after entering the command-line window |CmdwinEnter| after entering the command-line window
@@ -332,6 +338,7 @@ Name triggered by ~
|TextChangedP| after a change was made to the text in Insert mode |TextChangedP| after a change was made to the text in Insert mode
when popup menu visible when popup menu visible
|ColorSchemePre| before loading a color scheme
|ColorScheme| after loading a color scheme |ColorScheme| after loading a color scheme
|RemoteReply| a reply from a server Vim was received |RemoteReply| a reply from a server Vim was received
@@ -513,6 +520,10 @@ CmdUndefined When a user command is used but it isn't
command is defined. An alternative is to command is defined. An alternative is to
always define the user command and have it always define the user command and have it
invoke an autoloaded function. See |autoload|. invoke an autoloaded function. See |autoload|.
*CmdlineChanged*
CmdlineChanged After a change was made to the text in the
command line. Be careful not to mess up
the command line, it may cause Vim to lock up.
*CmdlineEnter* *CmdlineEnter*
CmdlineEnter After moving the cursor to the command line, CmdlineEnter After moving the cursor to the command line,
where the user can type a command or search where the user can type a command or search
@@ -559,6 +570,10 @@ ColorScheme After loading a color scheme. |:colorscheme|
set, and <amatch> for the new colorscheme set, and <amatch> for the new colorscheme
name. name.
*ColorSchemePre*
ColorSchemePre Before loading a color scheme. |:colorscheme|
Useful to setup removing things added by a
color scheme, before another one is loaded.
*CompleteDone* *CompleteDone*
CompleteDone After Insert mode completion is done. Either CompleteDone After Insert mode completion is done. Either
@@ -651,7 +666,10 @@ FileChangedRO Before making the first change to a read-only
ExitPre When using `:quit`, `:wq` in a way it makes ExitPre When using `:quit`, `:wq` in a way it makes
Vim exit, or using `:qall`, just after Vim exit, or using `:qall`, just after
|QuitPre|. Can be used to close any |QuitPre|. Can be used to close any
non-essential window. non-essential window. Exiting may still be
cancelled if there is a modified buffer that
isn't automatically saved, use |VimLeavePre|
for really exiting.
*FileChangedShell* *FileChangedShell*
FileChangedShell When Vim notices that the modification time of FileChangedShell When Vim notices that the modification time of
a file has changed since editing started. a file has changed since editing started.
@@ -936,6 +954,7 @@ SwapExists Detected an existing swap file when starting
It is not allowed to change to another buffer, It is not allowed to change to another buffer,
change a buffer name or change directory change a buffer name or change directory
here. here.
{only available with the +eval feature}
*Syntax* *Syntax*
Syntax When the 'syntax' option has been set. The Syntax When the 'syntax' option has been set. The
pattern is matched against the syntax name. pattern is matched against the syntax name.
@@ -996,6 +1015,10 @@ TextChangedP After a change was made to the text in the
User Never executed automatically. To be used for User Never executed automatically. To be used for
autocommands that are only executed with autocommands that are only executed with
":doautocmd". ":doautocmd".
Note that when `:doautocmd User MyEvent` is
used while there are no matching autocommands,
you will get an error. If you don't want
that, define a dummy autocommand yourself.
*UserGettingBored* *UserGettingBored*
UserGettingBored When the user presses the same key 42 times. UserGettingBored When the user presses the same key 42 times.
Just kidding! :-) Just kidding! :-)
@@ -1044,9 +1067,10 @@ WinEnter After entering another window. Not done for
If the window is for another buffer, Vim If the window is for another buffer, Vim
executes the BufEnter autocommands after the executes the BufEnter autocommands after the
WinEnter autocommands. WinEnter autocommands.
Note: When using ":split fname" the WinEnter Note: For split and tabpage commands the
event is triggered after the split but before WinEnter event is triggered after the split
the file "fname" is loaded. or tab command but before the file is loaded.
*WinLeave* *WinLeave*
WinLeave Before leaving a window. If the window to be WinLeave Before leaving a window. If the window to be
entered next is for a different buffer, Vim entered next is for a different buffer, Vim
@@ -1356,7 +1380,7 @@ Careful: '[ and '] change when using commands that change the buffer.
In commands which expect a file name, you can use "<afile>" for the file name In commands which expect a file name, you can use "<afile>" for the file name
that is being read |:<afile>| (you can also use "%" for the current file that is being read |:<afile>| (you can also use "%" for the current file
name). "<abuf>" can be used for the buffer number of the currently effective name). "<abuf>" can be used for the buffer number of the currently effective
buffer. This also works for buffers that doesn't have a name. But it doesn't buffer. This also works for buffers that don't have a name. But it doesn't
work for files without a buffer (e.g., with ":r file"). work for files without a buffer (e.g., with ":r file").
*gzip-example* *gzip-example*

View File

@@ -99,7 +99,7 @@ is an error when 'cpoptions' includes the 'E' flag.
J Join [count] lines, with a minimum of two lines. J Join [count] lines, with a minimum of two lines.
Remove the indent and insert up to two spaces (see Remove the indent and insert up to two spaces (see
below). Fails when on the last line of the buffer. below). Fails when on the last line of the buffer.
If [count] is too big it is reduce to the number of If [count] is too big it is reduced to the number of
lines available. lines available.
*v_J* *v_J*
@@ -501,6 +501,7 @@ If the 'shiftround' option is on, the indent is rounded to a multiple of
If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains If the 'smartindent' option is on, or 'cindent' is on and 'cinkeys' contains
'#' with a zero value, shift right does not affect lines starting with '#' '#' with a zero value, shift right does not affect lines starting with '#'
(these are supposed to be C preprocessor lines that must stay in column 1). (these are supposed to be C preprocessor lines that must stay in column 1).
This can be changed with the 'cino' option, see |cino-#|.
When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as When the 'expandtab' option is off (this is the default) Vim uses <Tab>s as
much as possible to make the indent. You can use ">><<" to replace an indent much as possible to make the indent. You can use ">><<" to replace an indent
@@ -1371,6 +1372,55 @@ to the name of an external program for Vim to use for text formatting. The
'textwidth' and other options have no effect on formatting by an external 'textwidth' and other options have no effect on formatting by an external
program. program.
*format-formatexpr*
The 'formatexpr' option can be set to a Vim script function that performs
reformatting of the buffer. This should usually happen in an |ftplugin|,
since formatting is highly dependent on the type of file. It makes
sense to use an |autoload| script, so the corresponding script is only loaded
when actually needed and the script should be called <filetype>format.vim.
For example, the XML filetype plugin distributed with Vim in the $VIMRUNTIME
directory, sets the 'formatexpr' option to: >
setlocal formatexpr=xmlformat#Format()
That means, you will find the corresponding script, defining the
xmlformat#Format() function, in the directory:
`$VIMRUNTIME/autoload/xmlformat.vim`
Here is an example script that removes trailing whitespace from the selected
text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
func! format#Format()
" only reformat on explicit gq command
if mode() != 'n'
" fall back to Vims internal reformatting
return 1
endif
let lines = getline(v:lnum, v:lnum + v:count - 1)
call map(lines, {key, val -> substitute(val, '\s\+$', '', 'g')})
call setline('.', lines)
" do not run internal formatter!
return 0
endfunc
You can then enable the formatting by executing: >
setlocal formatexpr=format#Format()
Note: this function explicitly returns non-zero when called from insert mode
(which basically means, text is inserted beyond the 'textwidth' limit). This
causes Vim to fall back to reformat the text by using the internal formatter.
However, if the |gq| command is used to reformat the text, the function
will receive the selected lines, trim trailing whitespace from those lines and
put them back in place. If you are going to split single lines into multiple
lines, be careful not to overwrite anything.
If you want to allow reformatting of text from insert or replace mode, one has
to be very careful, because the function might be called recursively. For
debugging it helps to set the 'debug' option.
*right-justify* *right-justify*
There is no command in Vim to right justify text. You can do it with There is no command in Vim to right justify text. You can do it with
an external command, like "par" (e.g.: "!}par" to format until the end of the an external command, like "par" (e.g.: "!}par" to format until the end of the
@@ -1753,4 +1803,4 @@ The sorting can be interrupted, but if you interrupt it too late in the
process you may end up with duplicated lines. This also depends on the system process you may end up with duplicated lines. This also depends on the system
library function used. library function used.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -378,10 +378,13 @@ CTRL-D List names that match the pattern in front of the cursor.
match is inserted. After the last match, the first is used match is inserted. After the last match, the first is used
again (wrap around). again (wrap around).
The behavior can be changed with the 'wildmode' option. The behavior can be changed with the 'wildmode' option.
*c_<S-Tab>*
<S-Tab> Like 'wildchar' or <Tab>, but begin with the last match and
then go to the previous match.
*c_CTRL-N* *c_CTRL-N*
CTRL-N After using 'wildchar' which got multiple matches, go to next CTRL-N After using 'wildchar' which got multiple matches, go to next
match. Otherwise recall more recent command-line from history. match. Otherwise recall more recent command-line from history.
<S-Tab> *c_CTRL-P* *c_<S-Tab>* *c_CTRL-P*
CTRL-P After using 'wildchar' which got multiple matches, go to CTRL-P After using 'wildchar' which got multiple matches, go to
previous match. Otherwise recall older command-line from previous match. Otherwise recall older command-line from
history. history.
@@ -841,7 +844,8 @@ These modifiers can be given, in this order:
directory. directory.
:. Reduce file name to be relative to current directory, if :. Reduce file name to be relative to current directory, if
possible. File name is unmodified if it is not below the possible. File name is unmodified if it is not below the
current directory. current directory, but on MS-Windows the drive is removed if
it is the current drive.
For maximum shortness, use ":~:.". For maximum shortness, use ":~:.".
:h Head of the file name (the last component and any separators :h Head of the file name (the last component and any separators
removed). Cannot be used with :e, :r or :t. removed). Cannot be used with :e, :r or :t.
@@ -1105,4 +1109,4 @@ The character used for the pattern indicates the type of command-line:
@ string for |input()| @ string for |input()|
- text for |:insert| or |:append| - text for |:insert| or |:append|
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -170,4 +170,4 @@ Visual C++ 2005 Express Edition can be downloaded for free from:
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
========================================================================= =========================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -265,4 +265,4 @@ External UIs are expected to implement these common features:
this event. this event.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -372,12 +372,16 @@ Example (this does almost the same as 'diffexpr' being empty): >
endif endif
silent execute "!diff -a --binary " . opt . v:fname_in . " " . v:fname_new . silent execute "!diff -a --binary " . opt . v:fname_in . " " . v:fname_new .
\ " > " . v:fname_out \ " > " . v:fname_out
redraw!
endfunction endfunction
The "-a" argument is used to force comparing the files as text, comparing as The "-a" argument is used to force comparing the files as text, comparing as
binaries isn't useful. The "--binary" argument makes the files read in binary binaries isn't useful. The "--binary" argument makes the files read in binary
mode, so that a CTRL-Z doesn't end the text on DOS. mode, so that a CTRL-Z doesn't end the text on DOS.
The `redraw!` command may not be needed, depending on whether executing a
shell command shows something on the display or not.
*E810* *E97* *E810* *E97*
Vim will do a test if the diff output looks alright. If it doesn't, you will Vim will do a test if the diff output looks alright. If it doesn't, you will
get an error message. Possible causes: get an error message. Possible causes:
@@ -429,4 +433,4 @@ evaluating 'patchexpr'. This hopefully avoids that files in the current
directory are accidentally patched. Vim will also delete files starting with directory are accidentally patched. Vim will also delete files starting with
v:fname_in and ending in ".rej" and ".orig". v:fname_in and ending in ".rej" and ".orig".
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1484,4 +1484,4 @@ char digraph hex dec official name ~
ſt ft FB05 64261 LATIN SMALL LIGATURE LONG S T ſt ft FB05 64261 LATIN SMALL LIGATURE LONG S T
st st FB06 64262 LATIN SMALL LIGATURE ST st st FB06 64262 LATIN SMALL LIGATURE ST
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -376,6 +376,15 @@ On Unix and a few other systems you can also use backticks for the file name
argument, for example: > argument, for example: >
:next `find . -name ver\\*.c -print` :next `find . -name ver\\*.c -print`
:view `ls -t *.patch \| head -n1` :view `ls -t *.patch \| head -n1`
Vim will run the command in backticks using the 'shell' and use the standard
output as argument for the given Vim command (error messages from the shell
command will be discarded).
To see what shell command Vim is running, set the 'verbose' option to 4. When
the shell command returns a non-zero exit code, an error message will be
displayed and the Vim command will be aborted. To avoid this make the shell
always return zero like so: >
:next `find . -name ver\\*.c -print \|\| true`
The backslashes before the star are required to prevent the shell from The backslashes before the star are required to prevent the shell from
expanding "ver*.c" prior to execution of the find program. The backslash expanding "ver*.c" prior to execution of the find program. The backslash
before the shell pipe symbol "|" prevents Vim from parsing it as command before the shell pipe symbol "|" prevents Vim from parsing it as command
@@ -824,8 +833,8 @@ flag is used for the ":substitute" command to avoid an error for files where
Note: When the 'write' option is off, you are not able to write any file. Note: When the 'write' option is off, you are not able to write any file.
*:w* *:write* *:w* *:write*
*E502* *E503* *E504* *E505* *E502* *E503* *E504* *E505*
*E512* *E514* *E667* *E796* *E512* *E514* *E667* *E796* *E949*
:w[rite] [++opt] Write the whole buffer to the current file. This is :w[rite] [++opt] Write the whole buffer to the current file. This is
the normal way to save changes to a file. It fails the normal way to save changes to a file. It fails
when the 'readonly' option is set or when there is when the 'readonly' option is set or when there is
@@ -881,6 +890,9 @@ used, for example, when the write fails and you want to try again later with
":w #". This can be switched off by removing the 'A' flag from the ":w #". This can be switched off by removing the 'A' flag from the
'cpoptions' option. 'cpoptions' option.
Note that the 'fsync' option matters here. If it's set it may make writes
slower (but safer).
*:sav* *:saveas* *:sav* *:saveas*
:sav[eas][!] [++opt] {file} :sav[eas][!] [++opt] {file}
Save the current buffer under the name {file} and set Save the current buffer under the name {file} and set
@@ -1542,4 +1554,4 @@ There are three different types of searching:
currently work with 'path' items that contain a URL or use the double star currently work with 'path' items that contain a URL or use the double star
with depth limiter (/usr/**2) or upward search (;) notations. with depth limiter (/usr/**2) or upward search (;) notations.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -2101,6 +2101,7 @@ gettabvar({nr}, {varname} [, {def}])
gettabwinvar({tabnr}, {winnr}, {name} [, {def}]) gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr} any {name} in {winnr} in tab page {tabnr}
getwininfo([{winid}]) List list of windows getwininfo([{winid}]) List list of windows
getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window
getwinposx() Number X coord in pixels of GUI Vim window getwinposx() Number X coord in pixels of GUI Vim window
getwinposy() Number Y coord in pixels of GUI Vim window getwinposy() Number Y coord in pixels of GUI Vim window
getwinvar({nr}, {varname} [, {def}]) getwinvar({nr}, {varname} [, {def}])
@@ -2194,6 +2195,8 @@ msgpackdump({list}) List dump a list of objects to msgpack
msgpackparse({list}) List parse msgpack to a list of objects msgpackparse({list}) List parse msgpack to a list of objects
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum} nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
nr2char({expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} nr2char({expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
option_restore({list}) none restore options saved by option_save()
option_save({list}) List save options values
nvim_...({args}...) any call nvim |api| functions nvim_...({args}...) any call nvim |api| functions
or({expr}, {expr}) Number bitwise OR or({expr}, {expr}) Number bitwise OR
pathshorten({expr}) String shorten directory names in a path pathshorten({expr}) String shorten directory names in a path
@@ -2336,7 +2339,7 @@ tolower({expr}) String the String {expr} switched to lowercase
toupper({expr}) String the String {expr} switched to uppercase toupper({expr}) String the String {expr} switched to uppercase
tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr} to chars in {tostr}
trim({text}[, {mask}]) String trim characters in {mask} from {text} trim({text} [, {mask}]) String trim characters in {mask} from {text}
trunc({expr}) Float truncate Float {expr} trunc({expr}) Float truncate Float {expr}
type({name}) Number type of variable {name} type({name}) Number type of variable {name}
undofile({name}) String undo file name for {name} undofile({name}) String undo file name for {name}
@@ -2611,6 +2614,8 @@ bufexists({expr}) *bufexists()*
The result is a Number, which is |TRUE| if a buffer called The result is a Number, which is |TRUE| if a buffer called
{expr} exists. {expr} exists.
If the {expr} argument is a number, buffer numbers are used. If the {expr} argument is a number, buffer numbers are used.
Number zero is the alternate buffer for the current window.
If the {expr} argument is a string it must match a buffer name If the {expr} argument is a string it must match a buffer name
exactly. The name can be: exactly. The name can be:
- Relative to the current directory. - Relative to the current directory.
@@ -3235,6 +3240,7 @@ executable({expr}) *executable()*
1 exists 1 exists
0 does not exist 0 does not exist
-1 not implemented on this system -1 not implemented on this system
|exepath()| can be used to get the full path of an executable.
execute({command} [, {silent}]) *execute()* execute({command} [, {silent}]) *execute()*
Execute {command} and capture its output. Execute {command} and capture its output.
@@ -3884,7 +3890,7 @@ getbufinfo([{dict}])
endfor endfor
< <
To get buffer-local options use: > To get buffer-local options use: >
getbufvar({bufnr}, '&') getbufvar({bufnr}, '&option_name')
< <
*getbufline()* *getbufline()*
@@ -4310,6 +4316,7 @@ getqflist([{what}]) *getqflist()*
list item is a dictionary with these entries: list item is a dictionary with these entries:
bufnr number of buffer that has the file name, use bufnr number of buffer that has the file name, use
bufname() to get the name bufname() to get the name
module module name
lnum line number in the buffer (first line is 1) lnum line number in the buffer (first line is 1)
col column number (first column is 1) col column number (first column is 1)
vcol |TRUE|: "col" is visual column vcol |TRUE|: "col" is visual column
@@ -4334,51 +4341,63 @@ getqflist([{what}]) *getqflist()*
If the optional {what} dictionary argument is supplied, then If the optional {what} dictionary argument is supplied, then
returns only the items listed in {what} as a dictionary. The returns only the items listed in {what} as a dictionary. The
following string items are supported in {what}: following string items are supported in {what}:
context get the context stored with |setqflist()| changedtick get the total number of changes made
to the list |quickfix-changedtick|
context get the |quickfix-context|
efm errorformat to use when parsing "lines". If efm errorformat to use when parsing "lines". If
not present, then the 'errorformat' option not present, then the 'errorformat' option
value is used. value is used.
id get information for the quickfix list with id get information for the quickfix list with
|quickfix-ID|; zero means the id for the |quickfix-ID|; zero means the id for the
current list or the list specified by "nr" current list or the list specified by "nr"
idx index of the current entry in the list
items quickfix list entries items quickfix list entries
lines use 'errorformat' to extract items from a list lines parse a list of lines using 'efm' and return
of lines and return the resulting entries. the resulting entries. Only a |List| type is
Only a |List| type is accepted. The current accepted. The current quickfix list is not
quickfix list is not modified. modified. See |quickfix-parse|.
nr get information for this quickfix list; zero nr get information for this quickfix list; zero
means the current quickfix list and "$" means means the current quickfix list and "$" means
the last quickfix list the last quickfix list
title get the list title size number of entries in the quickfix list
winid get the |window-ID| (if opened) title get the list title |quickfix-title|
winid get the quickfix |window-ID|
all all of the above quickfix properties all all of the above quickfix properties
Non-string items in {what} are ignored. Non-string items in {what} are ignored. To get the value of a
particular item, set it to zero.
If "nr" is not present then the current quickfix list is used. If "nr" is not present then the current quickfix list is used.
If both "nr" and a non-zero "id" are specified, then the list If both "nr" and a non-zero "id" are specified, then the list
specified by "id" is used. specified by "id" is used.
To get the number of lists in the quickfix stack, set 'nr' to To get the number of lists in the quickfix stack, set "nr" to
'$' in {what}. The 'nr' value in the returned dictionary "$" in {what}. The "nr" value in the returned dictionary
contains the quickfix stack size. contains the quickfix stack size.
When 'text' is specified, all the other items are ignored. The When "lines" is specified, all the other items except "efm"
returned dictionary contains the entry 'items' with the list are ignored. The returned dictionary contains the entry
of entries. "items" with the list of entries.
In case of error processing {what}, an empty dictionary is
returned.
The returned dictionary contains the following entries: The returned dictionary contains the following entries:
context context information stored with |setqflist()| changedtick total number of changes made to the
id quickfix list ID |quickfix-ID| list |quickfix-changedtick|
items quickfix list entries context quickfix list context. See |quickfix-context|
nr quickfix list number If not present, set to "".
title quickfix list title text id quickfix list ID |quickfix-ID|. If not
winid quickfix |window-ID| (if opened) present, set to 0.
idx index of the current entry in the list. If not
present, set to 0.
items quickfix list entries. If not present, set to
an empty list.
nr quickfix list number. If not present, set to 0
size number of entries in the quickfix list. If not
present, set to 0.
title quickfix list title text. If not present, set
to "".
winid quickfix |window-ID|. If not present, set to 0
Examples: > Examples (See also |getqflist-examples|): >
:echo getqflist({'all': 1}) :echo getqflist({'all': 1})
:echo getqflist({'nr': 2, 'title': 1}) :echo getqflist({'nr': 2, 'title': 1})
:echo getqflist({'lines' : ["F1:10:L10"]}) :echo getqflist({'lines' : ["F1:10:L10"]})
< <
getreg([{regname} [, 1 [, {list}]]]) *getreg()* getreg([{regname} [, 1 [, {list}]]]) *getreg()*
The result is a String, which is the contents of register The result is a String, which is the contents of register
{regname}. Example: > {regname}. Example: >
@@ -4457,6 +4476,9 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
:let list_is_on = gettabwinvar(1, 2, '&list') :let list_is_on = gettabwinvar(1, 2, '&list')
:echo "myvar = " . gettabwinvar(3, 1, 'myvar') :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
< <
To obtain all window-local variables use: >
gettabwinvar({tabnr}, {winnr}, '&')
*getwinposx()* *getwinposx()*
getwinposx() The result is a Number, which is the X coordinate in pixels of getwinposx() The result is a Number, which is the X coordinate in pixels of
the left hand side of the GUI Vim window. The result will be the left hand side of the GUI Vim window. The result will be
@@ -4482,22 +4504,19 @@ getwininfo([{winid}]) *getwininfo()*
Each List item is a Dictionary with the following entries: Each List item is a Dictionary with the following entries:
bufnr number of buffer in the window bufnr number of buffer in the window
height window height (excluding winbar) height window height (excluding winbar)
winbar 1 if the window has a toolbar, 0
otherwise
loclist 1 if showing a location list loclist 1 if showing a location list
quickfix 1 if quickfix or location list window quickfix 1 if quickfix or location list window
tabnr tab page number tabnr tab page number
variables a reference to the dictionary with variables a reference to the dictionary with
window-local variables window-local variables
width window width width window width
winbar 1 if the window has a toolbar, 0
otherwise
wincol leftmost screen column of the window wincol leftmost screen column of the window
winid |window-ID| winid |window-ID|
winnr window number winnr window number
winrow topmost screen column of the window winrow topmost screen column of the window
To obtain all window-local variables use: >
gettabwinvar({tabnr}, {winnr}, '&')
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
Like |gettabwinvar()| for the current tabpage. Like |gettabwinvar()| for the current tabpage.
Examples: > Examples: >
@@ -5340,7 +5359,8 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
listing. listing.
When there is no mapping for {name}, an empty String is When there is no mapping for {name}, an empty String is
returned. returned. When the mapping for {name} is empty, then "<Nop>"
is returned.
The {name} can have special key names, like in the ":map" The {name} can have special key names, like in the ":map"
command. command.
@@ -5407,9 +5427,10 @@ mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()*
mapping that matches with {name}, while maparg() only finds a mapping that matches with {name}, while maparg() only finds a
mapping for {name} exactly. mapping for {name} exactly.
When there is no mapping that starts with {name}, an empty When there is no mapping that starts with {name}, an empty
String is returned. If there is one, the rhs of that mapping String is returned. If there is one, the RHS of that mapping
is returned. If there are several mappings that start with is returned. If there are several mappings that start with
{name}, the rhs of one of them is returned. {name}, the RHS of one of them is returned. This will be
"<Nop>" if the RHS is empty.
The mappings local to the current buffer are checked first, The mappings local to the current buffer are checked first,
then the global mappings. then the global mappings.
This function can be used to check if a mapping can be added This function can be used to check if a mapping can be added
@@ -5565,8 +5586,6 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
< Matches added by |matchaddpos()| are returned by < Matches added by |matchaddpos()| are returned by
|getmatches()| with an entry "pos1", "pos2", etc., with the |getmatches()| with an entry "pos1", "pos2", etc., with the
value a list like the {pos} item. value a list like the {pos} item.
These matches cannot be set via |setmatches()|, however they
can still be deleted by |clearmatches()|.
matcharg({nr}) *matcharg()* matcharg({nr}) *matcharg()*
Selects the {nr} match item, as set with a |:match|, Selects the {nr} match item, as set with a |:match|,
@@ -6594,6 +6613,8 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
When {skip} is omitted or empty, every match is accepted. When {skip} is omitted or empty, every match is accepted.
When evaluating {skip} causes an error the search is aborted When evaluating {skip} causes an error the search is aborted
and -1 returned. and -1 returned.
{skip} can be a string, a lambda, a funcref or a partial.
Anything else makes the function fail.
For {stopline} and {timeout} see |search()|. For {stopline} and {timeout} see |search()|.
@@ -6935,7 +6956,7 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
only the items listed in {what} are set. The first {list} only the items listed in {what} are set. The first {list}
argument is ignored. The following items can be specified in argument is ignored. The following items can be specified in
{what}: {what}:
context any Vim type can be stored as a context context quickfix list context. See |quickfix-context|
efm errorformat to use when parsing text from efm errorformat to use when parsing text from
"lines". If this is not present, then the "lines". If this is not present, then the
'errorformat' option value is used. 'errorformat' option value is used.
@@ -6957,10 +6978,10 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
list is modified, "id" should be used instead of "nr" to list is modified, "id" should be used instead of "nr" to
specify the list. specify the list.
Examples: > Examples (See also |setqflist-examples|): >
:call setqflist([], 'r', {'title': 'My search'}) :call setqflist([], 'r', {'title': 'My search'})
:call setqflist([], 'r', {'nr': 2, 'title': 'Errors'}) :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
:call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]}) :call setqflist([], 'a', {'id':qfid, 'lines':["F1:10:L10"]})
< <
Returns zero for success, -1 for failure. Returns zero for success, -1 for failure.
@@ -8007,7 +8028,7 @@ tr({src}, {fromstr}, {tostr}) *tr()*
echo tr("<blob>", "<>", "{}") echo tr("<blob>", "<>", "{}")
< returns "{blob}" < returns "{blob}"
trim({text}[, {mask}]) *trim()* trim({text} [, {mask}]) *trim()*
Return {text} as a String where any character in {mask} is Return {text} as a String where any character in {mask} is
removed from the beginning and end of {text}. removed from the beginning and end of {text}.
If {mask} is not given, {mask} is all characters up to 0x20, If {mask} is not given, {mask} is all characters up to 0x20,
@@ -8016,12 +8037,12 @@ trim({text}[, {mask}]) *trim()*
This code deals with multibyte characters properly. This code deals with multibyte characters properly.
Examples: > Examples: >
echo trim(" \r\t\t\r RESERVE \t \t\n\x0B\x0B")."_TAIL" echo trim(" some text ")
< returns "some text" >
echo trim(" \r\t\t\r RESERVE \t\n\x0B\xA0") . "_TAIL"
< returns "RESERVE_TAIL" > < returns "RESERVE_TAIL" >
echo trim("needrmvRESERVEnnneeedddrrmmmmvv", "ednmrv") echo trim("rm<Xrm<>X>rrm", "rm<>")
< returns "RESERVE" > < returns "Xrm<>X" (characters in the middle are not removed)
echo trim("rm<blob1><blob2><any_chars>rrmm<blob1><blob2><blob2>", "rm<blob1><blob2>")
< returns "any_chas"
trunc({expr}) *trunc()* trunc({expr}) *trunc()*
Return the largest integral value with magnitude less than or Return the largest integral value with magnitude less than or
@@ -8545,6 +8566,8 @@ visual Compiled with Visual mode.
visualextra Compiled with extra Visual mode commands. visualextra Compiled with extra Visual mode commands.
|blockwise-operators|. |blockwise-operators|.
vreplace Compiled with |gR| and |gr| commands. vreplace Compiled with |gR| and |gr| commands.
vtp Compiled for vcon support |+vtp| (check vcon to find
out if it works in the current console)).
wildignore Compiled with 'wildignore' option. wildignore Compiled with 'wildignore' option.
wildmenu Compiled with 'wildmenu' option. wildmenu Compiled with 'wildmenu' option.
win32 Windows version of Vim (32 or 64 bit). win32 Windows version of Vim (32 or 64 bit).
@@ -8769,8 +8792,7 @@ may be larger.
It is also possible to define a function without any arguments. You must It is also possible to define a function without any arguments. You must
still supply the () then. still supply the () then.
It is allowed to define another function inside a function It is allowed to define another function inside a function body.
body.
*local-variables* *local-variables*
Inside a function local variables can be used. These will disappear when the Inside a function local variables can be used. These will disappear when the
@@ -10691,7 +10713,7 @@ The sandbox is also used for the |:sandbox| command.
These items are not allowed in the sandbox: These items are not allowed in the sandbox:
- changing the buffer text - changing the buffer text
- defining or changing mapping, autocommands, functions, user commands - defining or changing mapping, autocommands, user commands
- setting certain options (see |option-summary|) - setting certain options (see |option-summary|)
- setting certain v: variables (see |v:var|) *E794* - setting certain v: variables (see |v:var|) *E794*
- executing a shell command - executing a shell command
@@ -10713,6 +10735,7 @@ location. Insecure in this context are:
- sourcing a .nvimrc or .exrc in the current directory - sourcing a .nvimrc or .exrc in the current directory
- while executing in the sandbox - while executing in the sandbox
- value coming from a modeline - value coming from a modeline
- executing a function that was defined in the sandbox
Note that when in the sandbox and saving an option value and restoring it, the Note that when in the sandbox and saving an option value and restoring it, the
option will still be marked as it was set in the sandbox. option will still be marked as it was set in the sandbox.

View File

@@ -205,4 +205,4 @@ changes made in the current line.
For more information about the bugs refer to rileft.txt. For more information about the bugs refer to rileft.txt.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -273,6 +273,10 @@ then Vim will load all plugins in these directories and below:
Note that the last one is the value of $VIMRUNTIME which has been expanded. Note that the last one is the value of $VIMRUNTIME which has been expanded.
Note that when using a plugin manager or |packages| many directories will be
added to 'runtimepath'. These plugins each require their own directory, don't
put them directly in ~/.vim/plugin.
What if it looks like your plugin is not being loaded? You can find out what 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: > happens when Vim starts up by using the |-V| argument: >
@@ -750,4 +754,23 @@ You can change the default by defining the variable g:tex_flavor to the format
Currently no other formats are recognized. Currently no other formats are recognized.
vim:tw=78:ts=8:ft=help:norl: VIM *ft-vim-plugin*
The Vim filetype plugin defines mappings to move to the start and end of
functions with [[ and ]]. Move around comments with ]" and [".
The mappings can be disabled with: >
let g:no_vim_maps = 1
ZIMBU *ft-zimbu-plugin*
The Zimbu filetype plugin defines mappings to move to the start and end of
functions with [[ and ]].
The mappings can be disabled with: >
let g:no_zimbu_maps = 1
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -595,4 +595,4 @@ used. Otherwise the values from the window where the buffer was edited last
are used. are used.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -249,7 +249,7 @@ g:decada.Make_Command string
External command used for |g:decada.Make()| (|'makeprg'|). External command used for |g:decada.Make()| (|'makeprg'|).
*g:decada.Error_Format* *g:decada.Error_Format*
g:decada.Error_Format| string g:decada.Error_Format string
Error format (|'errorformat'|). Error format (|'errorformat'|).
============================================================================== ==============================================================================

View File

@@ -1,4 +1,6 @@
*ft_rust.txt* Filetype plugin for Rust *ft_rust.txt* For Vim version 8.1. Last change: 2017 Nov 02
This is documentation for the Rust filetype plugin.
============================================================================== ==============================================================================
CONTENTS *rust* CONTENTS *rust*
@@ -234,4 +236,4 @@ It also has a few other mappings:
Note: This binding is only available in MacVim. Note: This binding is only available in MacVim.
============================================================================== ==============================================================================
vim:tw=78:sw=4:noet:ts=8:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -773,4 +773,4 @@ Setting the filetype back to Perl sets all the usual "perl" related items back
as they were. as they were.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -71,7 +71,7 @@ and only the first one that is found is read.
:winp[os] :winp[os]
Display current position of the top left corner of the GUI vim Display current position of the top left corner of the GUI vim
window in pixels. Does not work in all versions. window in pixels. Does not work in all versions.
Also see |getwinposx()| and |getwinposy()|. Also see |getwinpos()|, |getwinposx()| and |getwinposy()|.
:winp[os] {X} {Y} *E466* :winp[os] {X} {Y} *E466*
Put the GUI vim window at the given {X} and {Y} coordinates. Put the GUI vim window at the given {X} and {Y} coordinates.
@@ -639,4 +639,4 @@ This creates a popup menu that doesn't exist on the main menu-bar.
Note that a menu that starts with ']' will not be displayed. Note that a menu that starts with ']' will not be displayed.
vim:tw=78:sw=4:ts=8:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -134,4 +134,4 @@ The result is that all Hebrew characters are displayed as ~x. To solve this
problem, set isprint=@,128-255. problem, set isprint=@,128-255.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -182,4 +182,4 @@ will try to find help for it. Especially for options in single quotes, e.g.
'hlsearch'. 'hlsearch'.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl:

View File

@@ -364,4 +364,4 @@ highlighting. So do these:
You can find the details in $VIMRUNTIME/syntax/help.vim You can find the details in $VIMRUNTIME/syntax/help.vim
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -371,4 +371,4 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
\:vert scs find a <C-R>=expand("<cword>")<CR><CR> \:vert scs find a <C-R>=expand("<cword>")<CR><CR>
< <
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -705,12 +705,31 @@ Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
You can test what Python version is available with: > You can test what Python version is available with: >
if has('python') if has('python')
echo 'there is Python 2.x' echo 'there is Python 2.x'
elseif has('python3') endif
if has('python3')
echo 'there is Python 3.x' echo 'there is Python 3.x'
endif endif
Note however, that if Python 2 and 3 are both available, but not loaded, Note however, that if Python 2 and 3 are both available, but not loaded,
these has() calls will try to load them. these has() calls will try to load them.
To avoid loading the dynamic library, only check if Vim was compiled with
python support: >
if has('python_compiled')
echo 'compiled with Python 2.x support'
if has('python_dynamic')
echo 'Python 2.x dynamically loaded'
endif
endif
if has('python3_compiled')
echo 'compiled with Python 3.x support'
if has('python3_dynamic')
echo 'Python 3.x dynamically loaded'
endif
endif
This also tells you whether Python is dynamically loaded, which will fail if
the runtime library cannot be found.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -180,4 +180,4 @@ $curwin The current window object.
$curbuf The current buffer object. $curbuf The current buffer object.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -410,10 +410,10 @@ The examples below assume a 'shiftwidth' of 4.
*cino-(* *cino-(*
(N When in unclosed parentheses, indent N characters from the line (N When in unclosed parentheses, indent N characters from the line
with the unclosed parentheses. Add a 'shiftwidth' for every with the unclosed parentheses. Add a 'shiftwidth' for every
unclosed parentheses. When N is 0 or the unclosed parentheses extra unclosed parentheses. When N is 0 or the unclosed
is the first non-white character in its line, line up with the parentheses is the first non-white character in its line, line
next non-white character after the unclosed parentheses. up with the next non-white character after the unclosed
(default 'shiftwidth' * 2). parentheses. (default 'shiftwidth' * 2).
cino= cino=(0 > cino= cino=(0 >
if (c1 && (c2 || if (c1 && (c2 || if (c1 && (c2 || if (c1 && (c2 ||
@@ -424,7 +424,8 @@ The examples below assume a 'shiftwidth' of 4.
{ { { {
< <
*cino-u* *cino-u*
uN Same as (N, but for one level deeper. (default 'shiftwidth'). uN Same as (N, but for one nesting level deeper.
(default 'shiftwidth').
cino= cino=u2 > cino= cino=u2 >
if (c123456789 if (c123456789 if (c123456789 if (c123456789
@@ -902,6 +903,25 @@ In PHP braces are not required inside 'case/default' blocks therefore 'case:'
and 'default:' are indented at the same level than the 'switch()' to avoid and 'default:' are indented at the same level than the 'switch()' to avoid
meaningless indentation. You can use the above option to return to the meaningless indentation. You can use the above option to return to the
traditional way. traditional way.
-------------
*PHP_noArrowMatching*
By default the indent script will indent multi-line chained calls by matching
the position of the '->': >
$user_name_very_long->name()
->age()
->info();
You can revert to the classic way of indenting by setting this option to 1: >
:let g:PHP_noArrowMatching = 1
You will obtain the following result: >
$user_name_very_long->name()
->age()
->info();
PYTHON *ft-python-indent* PYTHON *ft-python-indent*
@@ -1132,4 +1152,4 @@ indent for a continuation line, a line that starts with a backslash: >
Three times shiftwidth is the default value. Three times shiftwidth is the default value.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -944,7 +944,7 @@ tag command note action in Visual mode ~
|v_i{| i{ same as iB |v_i{| i{ same as iB
|v_i}| i} same as iB |v_i}| i} same as iB
|v_o| o move cursor to other corner of area |v_o| o move cursor to other corner of area
|v_r| r 2 delete highlighted area and start insert |v_r| r 2 replace highlighted area with a character
|v_s| s 2 delete highlighted area and start insert |v_s| s 2 delete highlighted area and start insert
|v_u| u 2 make highlighted area lowercase |v_u| u 2 make highlighted area lowercase
|v_v| v make Visual mode characterwise or stop |v_v| v make Visual mode characterwise or stop
@@ -1615,4 +1615,4 @@ tag command action ~
|:~| :~ repeat last ":substitute" |:~| :~ repeat last ":substitute"
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -411,11 +411,11 @@ An example for using CTRL-G U: >
This makes it possible to use the cursor keys in Insert mode, without breaking This makes it possible to use the cursor keys in Insert mode, without breaking
the undo sequence and therefore using |.| (redo) will work as expected. the undo sequence and therefore using |.| (redo) will work as expected.
Also entering a text like (with the "(" mapping from above): > Also entering a text like (with the "(" mapping from above):
Lorem ipsum (dolor Lorem ipsum (dolor
will be repeatable by the |.|to the expected will be repeatable by using |.| to the expected
Lorem ipsum (dolor) Lorem ipsum (dolor)
@@ -1509,9 +1509,9 @@ groups are included by default with the PHP: phpEnvVar, phpIntVar,
phpFunctions. phpFunctions.
If you wish non-filetype syntax items to also be included, you can use a If you wish non-filetype syntax items to also be included, you can use a
regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim) regular expression syntax (added in version 13.0 of
to add items. Looking at the output from ":syntax list" while editing a PHP file autoload/syntaxcomplete.vim) to add items. Looking at the output from
I can see some of these entries: > ":syntax list" while editing a PHP file I can see some of these entries: >
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
@@ -1558,15 +1558,15 @@ SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
various groups and syntax items. For example: > various groups and syntax items. For example: >
syntax list syntax list
Yields data similar to this: > Yields data similar to this:
sqlOperator xxx some prior all like and any escape exists in is not sqlOperator xxx some prior all like and any escape exists in is not ~
or intersect minus between distinct or intersect minus between distinct ~
links to Operator links to Operator ~
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier ~
date money long tinyint unsigned xml text smalldate date money long tinyint unsigned xml text smalldate ~
double datetime nchar smallint numeric time bit char double datetime nchar smallint numeric time bit char ~
varbinary binary smallmoney varbinary binary smallmoney ~
image float integer timestamp real decimal image float integer timestamp real decimal ~
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
a List of syntax items you can call OmniSyntaxList a number of different a List of syntax items you can call OmniSyntaxList a number of different
@@ -1587,7 +1587,6 @@ From within a plugin, you would typically assign the output to a List: >
let myKeywords = OmniSyntaxList( ['sqlKeyword'] ) let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
SQL *ft-sql-omni* SQL *ft-sql-omni*
Completion for the SQL language includes statements, functions, keywords. Completion for the SQL language includes statements, functions, keywords.
@@ -1973,4 +1972,4 @@ self explanatory. Using the long or the short version depends on the
[READ ERRORS] not all of the file could be read [READ ERRORS] not all of the file could be read
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -559,9 +559,9 @@ Virtual Replace mode Virtual Replace mode is similar to Replace mode, but
If the 'showmode' option is on "-- VREPLACE --" is If the 'showmode' option is on "-- VREPLACE --" is
shown at the bottom of the window. shown at the bottom of the window.
Insert Normal mode Entered when CTRL-O given in Insert mode. This is Insert Normal mode Entered when CTRL-O is typed in Insert mode (see
like Normal mode, but after executing one command Vim |i_CTRL-O|). This is like Normal mode, but after
returns to Insert mode. executing one command Vim returns to Insert mode.
If the 'showmode' option is on "-- (insert) --" is If the 'showmode' option is on "-- (insert) --" is
shown at the bottom of the window. shown at the bottom of the window.
@@ -838,4 +838,4 @@ buffer lines logical lines window lines screen lines ~
6. ~ 6. ~
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -866,7 +866,9 @@ an additional rule:
full-id In front of the match is a non-keyword character, or this is where full-id In front of the match is a non-keyword character, or this is where
the line or insertion starts. Exception: When the abbreviation is the line or insertion starts. Exception: When the abbreviation is
only one character, it is not recognized if there is a non-keyword only one character, it is not recognized if there is a non-keyword
character in front of it, other than a space or a tab. character in front of it, other than a space or a tab. However, for
the command line "'<,'>" (or any other marks) is ignored, as if the
command line starts after it.
end-id In front of the match is a keyword character, or a space or a tab, end-id In front of the match is a keyword character, or a space or a tab,
or this is where the line or insertion starts. or this is where the line or insertion starts.
@@ -1487,4 +1489,4 @@ local to the script and use mappings local to the script. When the user
invokes the user command, it will run in the context of the script it was invokes the user command, it will run in the context of the script it was
defined in. This matters if |<SID>| is used in a command. defined in. This matters if |<SID>| is used in a command.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1185,4 +1185,4 @@ Contributions specifically for the multi-byte features by:
Taro Muraoka <koron@tka.att.ne.jp> Taro Muraoka <koron@tka.att.ne.jp>
Yasuhiro Matsumoto <mattn@mail.goo.ne.jp> Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -69,7 +69,7 @@ See `:messages` above.
LIST OF MESSAGES LIST OF MESSAGES
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317* *E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322* *E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
*E323* *E341* *E473* *E570* *E685* > *E323* *E341* *E473* *E570* *E685* *E950* >
Add to read buffer Add to read buffer
makemap: Illegal mode makemap: Illegal mode
Cannot create BalloonEval with both message and callback Cannot create BalloonEval with both message and callback
@@ -90,6 +90,7 @@ LIST OF MESSAGES
Internal error Internal error
Internal error: {function} Internal error: {function}
fatal error in cs_manage_matches fatal error in cs_manage_matches
Invalid count for del_bytes(): {N}
This is an internal error. If you can reproduce it, please send in a bug This is an internal error. If you can reproduce it, please send in a bug
report. |bugs| report. |bugs|
@@ -843,4 +844,4 @@ The |g<| command can be used to see the last page of previous command output.
This is especially useful if you accidentally typed <Space> at the hit-enter This is especially useful if you accidentally typed <Space> at the hit-enter
prompt. prompt.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -203,4 +203,4 @@ a message adapt to language preferences of the user, >
:endif :endif
< <
vim:tw=78:sw=4:ts=8:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -986,12 +986,13 @@ These commands are not marks themselves, but jump to a mark:
============================================================================== ==============================================================================
8. Jumps *jump-motions* 8. Jumps *jump-motions*
A "jump" is one of the following commands: "'", "`", "G", "/", "?", "n", A "jump" is a command that normally moves the cursor several lines away. If
"N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and you make the cursor "jump" the position of the cursor before the jump is
the commands that start editing a new file. If you make the cursor "jump"
with one of these commands, the position of the cursor before the jump is
remembered. You can return to that position with the "''" and "``" command, remembered. You can return to that position with the "''" and "``" command,
unless the line containing that position was changed or deleted. unless the line containing that position was changed or deleted. The
following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N",
"%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the
commands that start editing a new file.
*CTRL-O* *CTRL-O*
CTRL-O Go to [count] Older cursor position in jump list CTRL-O Go to [count] Older cursor position in jump list
@@ -1117,7 +1118,7 @@ remembered.
*:changes* *:changes*
:changes Print the change list. A ">" character indicates the :changes Print the change list. A ">" character indicates the
current position. Just after a change it is below the current position. Just after a change it is below the
newest entry, indicating that "g;" takes you to the newest entry, indicating that `g;` takes you to the
newest entry position. The first column indicates the newest entry position. The first column indicates the
count needed to take you to this position. Example: count needed to take you to this position. Example:
@@ -1127,8 +1128,8 @@ remembered.
1 14 54 the latest changed line 1 14 54 the latest changed line
> >
The "3g;" command takes you to line 9. Then the The `3g;` command takes you to line 9. Then the
output of ":changes is: output of `:changes` is:
change line col text ~ change line col text ~
> 0 9 8 bla bla bla > 0 9 8 bla bla bla
@@ -1294,4 +1295,4 @@ L To line [count] from bottom of window (default: Last
position is in a status line, that window is made the position is in a status line, that window is made the
active window and the cursor is not moved. active window and the cursor is not moved.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

File diff suppressed because it is too large Load Diff

View File

@@ -282,6 +282,14 @@ the "#" is under your left hand middle finger (search to the left and up) and
the "*" is under your right hand middle finger (search to the right and down). the "*" is under your right hand middle finger (search to the right and down).
(this depends on your keyboard layout though). (this depends on your keyboard layout though).
*E956*
In very rare cases a regular expression is used recursively. This can happen
when executing a pattern takes a long time and when checkig for messages on
channels a callback is invoked that also uses a pattern or an autocommand is
triggered. In most cases this should be fine, but if a pattern is in use when
it's used again it fails. Usually this means there is something wrong with
the pattern.
============================================================================== ==============================================================================
2. The definition of a pattern *search-pattern* *pattern* *[pattern]* 2. The definition of a pattern *search-pattern* *pattern* *[pattern]*
*regular-expression* *regexp* *Pattern* *regular-expression* *regexp* *Pattern*
@@ -888,7 +896,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
becomes invalid. Vim doesn't automatically update the matches. becomes invalid. Vim doesn't automatically update the matches.
Similar to moving the cursor for "\%#" |/\%#|. Similar to moving the cursor for "\%#" |/\%#|.
*/\%l* */\%>l* */\%<l* */\%l* */\%>l* */\%<l* *E951*
\%23l Matches in a specific line. \%23l Matches in a specific line.
\%<23l Matches above a specific line (lower line number). \%<23l Matches above a specific line (lower line number).
\%>23l Matches below a specific line (higher line number). \%>23l Matches below a specific line (higher line number).
@@ -1148,7 +1156,8 @@ x A single character, with no special meaning, matches itself
- Matching with a collection can be slow, because each character in - Matching with a collection can be slow, because each character in
the text has to be compared with each character in the collection. the text has to be compared with each character in the collection.
Use one of the other atoms above when possible. Example: "\d" is Use one of the other atoms above when possible. Example: "\d" is
much faster than "[0-9]" and matches the same characters. much faster than "[0-9]" and matches the same characters. However,
the new |NFA| regexp engine deals with this better than the old one.
*/\%[]* *E69* *E70* *E369* */\%[]* *E69* *E70* *E369*
\%[] A sequence of optionally matched atoms. This always matches. \%[] A sequence of optionally matched atoms. This always matches.
@@ -1390,4 +1399,4 @@ Finally, these constructs are unique to Perl:
":2match" for another plugin. ":2match" for another plugin.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -38,4 +38,4 @@ compression. Thus editing the patchmode file will not give you the automatic
decompression. You have to rename the file if you want this. decompression. You have to rename the file if you want this.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -4098,4 +4098,4 @@ netrw:
============================================================================== ==============================================================================
Modelines: {{{1 Modelines: {{{1
vim:tw=78:ts=8:ft=help:norl:fdm=marker vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker

View File

@@ -56,4 +56,4 @@ used. This plugin also helps to skip matches in comments. This is unrelated
to the matchparen highlighting, they use a different mechanism. to the matchparen highlighting, they use a different mechanism.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -108,4 +108,4 @@ If you don't like the release updating feature and don't want to answer
Good luck!! Good luck!!
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -148,4 +148,4 @@ Copyright 2005-2012: *tar-copyright*
v1 (original) * Michael Toren (see http://michael.toren.net/code/) v1 (original) * Michael Toren (see http://michael.toren.net/code/)
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help vim:tw=78:ts=8:noet:ft=help

View File

@@ -149,4 +149,4 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:fdm=marker vim:tw=78:ts=8:noet:ft=help:fdm=marker

View File

@@ -36,6 +36,8 @@ Note: If you have problems printing with |:hardcopy|, an alternative is to use
'printexpr' through |v:cmdarg|. Otherwise [arguments] 'printexpr' through |v:cmdarg|. Otherwise [arguments]
is ignored. 'printoptions' can be used to specify is ignored. 'printoptions' can be used to specify
paper size, duplex, etc. paper size, duplex, etc.
Note: If you want PDF, there are tools such as
"ps2pdf" that can convert the PostScript to PDF.
:[range]ha[rdcopy][!] >{filename} :[range]ha[rdcopy][!] >{filename}
As above, but write the resulting PostScript in file As above, but write the resulting PostScript in file
@@ -729,4 +731,4 @@ to adjust the number of lines before a formfeed character to prevent
accidental blank pages. accidental blank pages.
============================================================================== ==============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -33,7 +33,7 @@ compiler (see |errorformat| below).
*quickfix-ID* *quickfix-ID*
Each quickfix list has a unique identifier called the quickfix ID and this Each quickfix list has a unique identifier called the quickfix ID and this
number will not change within a Vim session. The getqflist() function can be number will not change within a Vim session. The |getqflist()| function can be
used to get the identifier assigned to a list. There is also a quickfix list used to get the identifier assigned to a list. There is also a quickfix list
number which may change whenever more than ten lists are added to a quickfix number which may change whenever more than ten lists are added to a quickfix
stack. stack.
@@ -51,6 +51,14 @@ When a window with a location list is split, the new window gets a copy of the
location list. When there are no longer any references to a location list, location list. When there are no longer any references to a location list,
the location list is destroyed. the location list is destroyed.
*quickfix-changedtick*
Every quickfix and location list has a read-only changedtick variable that
tracks the total number of changes made to the list. Every time the quickfix
list is modified, this count is incremented. This can be used to perform an
action only when the list has changed. The |getqflist()| and |getloclist()|
functions can be used to query the current value of changedtick. You cannot
change the changedtick variable.
The following quickfix commands can be used. The location list commands are The following quickfix commands can be used. The location list commands are
similar to the quickfix commands, replacing the 'c' prefix in the quickfix similar to the quickfix commands, replacing the 'c' prefix in the quickfix
command with 'l'. command with 'l'.
@@ -281,6 +289,10 @@ processing a quickfix or location list command, it will be aborted.
from the last error backwards, -1 being the last error. from the last error backwards, -1 being the last error.
The 'switchbuf' settings are respected when jumping The 'switchbuf' settings are respected when jumping
to a buffer. to a buffer.
The |:filter| command can be used to display only the
quickfix entries matching a supplied pattern. The
pattern is matched against the filename, module name,
pattern and text of the entry.
:cl[ist] +{count} List the current and next {count} valid errors. This :cl[ist] +{count} List the current and next {count} valid errors. This
is similar to ":clist from from+count", where "from" is similar to ":clist from from+count", where "from"
@@ -299,8 +311,7 @@ processing a quickfix or location list command, it will be aborted.
8386: ^ ~ 8386: ^ ~
8387: symbol: method Fmainx() ~ 8387: symbol: method Fmainx() ~
*:lli* *:llist* :lli[st] [from] [, [to]] *:lli* *:llist*
:lli[st] [from] [, [to]]
Same as ":clist", except the location list for the Same as ":clist", except the location list for the
current window is used instead of the quickfix list. current window is used instead of the quickfix list.
@@ -333,6 +344,51 @@ use this code: >
au QuickfixCmdPost make call QfMakeConv() au QuickfixCmdPost make call QfMakeConv()
Another option is using 'makeencoding'. Another option is using 'makeencoding'.
*quickfix-title*
Every quickfix and location list has a title. By default the title is set to
the command that created the list. The |getqflist()| and |getloclist()|
functions can be used to get the title of a quickfix and a location list
respectively. The |setqflist()| and |setloclist()| functions can be used to
modify the title of a quickfix and location list respectively. Examples: >
call setqflist([], 'a', {'title' : 'Cmd output'})
echo getqflist({'title' : 1})
call setloclist(3, [], 'a', {'title' : 'Cmd output'})
echo getloclist(3, {'title' : 1})
<
*quickfix-size*
You can get the number of entries (size) in a quickfix and a location list
using the |getqflist()| and |getloclist()| functions respectively. Examples: >
echo getqflist({'size' : 1})
echo getloclist(5, {'size' : 1})
<
*quickfix-context*
Any Vim type can be associated as a context with a quickfix or location list.
The |setqflist()| and the |setloclist()| functions can be used to associate a
context with a quickfix and a location list respectively. The |getqflist()|
and the |getloclist()| functions can be used to retrieve the context of a
quickfix and a location list respectively. This is useful for a Vim plugin
dealing with multiple quickfix/location lists.
Examples: >
let somectx = {'name' : 'Vim', 'type' : 'Editor'}
call setqflist([], 'a', {'context' : somectx})
echo getqflist({'context' : 1})
let newctx = ['red', 'green', 'blue']
call setloclist(2, [], 'a', {'id' : qfid, 'context' : newctx})
echo getloclist(2, {'id' : qfid, 'context' : 1})
<
*quickfix-parse*
You can parse a list of lines using 'errorformat' without creating or
modifying a quickfix list using the |getqflist()| function. Examples: >
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
This returns a dictionary where the 'items' key contains the list of quickfix
entries parsed from lines. The following shows how to use a custom
'errorformat' to parse the lines without modifying the 'errorformat' option: >
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
<
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST: EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
*:cdo* *:cdo*
:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list. :cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list.
@@ -358,8 +414,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
autocommand event is disabled by adding it to autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing 'eventignore'. This considerably speeds up editing
each buffer. each buffer.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|, Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
|:ldo|, |:cfdo| and |:lfdo|. |:ldo|, |:cfdo| and |:lfdo|.
@@ -372,8 +427,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:{cmd} :{cmd}
etc. etc.
< Otherwise it works the same as `:cdo`. < Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
*:ldo* *:ldo*
:ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list :ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list
@@ -386,8 +440,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
etc. etc.
< Only valid entries in the location list are used. < Only valid entries in the location list are used.
Otherwise it works the same as `:cdo`. Otherwise it works the same as `:cdo`.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
*:lfdo* *:lfdo*
:lfdo[!] {cmd} Execute {cmd} in each file in the location list for :lfdo[!] {cmd} Execute {cmd} in each file in the location list for
@@ -399,8 +452,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:{cmd} :{cmd}
etc. etc.
< Otherwise it works the same as `:ldo`. < Otherwise it works the same as `:ldo`.
{not in Vi} {not available when compiled without the {not in Vi}
|+listcmds| feature}
============================================================================= =============================================================================
2. The error window *quickfix-window* 2. The error window *quickfix-window*
@@ -533,6 +585,117 @@ In all of the above cases, if the location list for the selected window is not
yet set, then it is set to the location list displayed in the location list yet set, then it is set to the location list displayed in the location list
window. window.
*quickfix-window-ID*
You can use the |getqflist()| and |getloclist()| functions to obtain the
window ID of the quickfix window and location list window respectively (if
present). Examples: >
echo getqflist({'winid' : 1}).winid
echo getloclist(2, {'winid' : 1}).winid
<
*getqflist-examples*
The |getqflist()| and |getloclist()| functions can be used to get the various
attributes of a quickfix and location list respectively. Some examples for
using these functions are below:
>
" get the title of the current quickfix list
:echo getqflist({'title' : 0}).title
" get the identifier of the current quickfix list
:let qfid = getqflist({'id' : 0}).id
" get the identifier of the fourth quickfix list in the stack
:let qfid = getqflist({'nr' : 4, 'id' : 0}).id
" check whether a quickfix list with a specific identifier exists
:if getqflist({'id' : qfid}).id == qfid
" get the index of the current quickfix list in the stack
:let qfnum = getqflist({'nr' : 0}).nr
" get the items of a quickfix list specified by an identifier
:echo getqflist({'id' : qfid, 'items' : 0}).items
" get the number of entries in a quickfix list specified by an id
:echo getqflist({'id' : qfid, 'size' : 0}).size
" get the context of the third quickfix list in the stack
:echo getqflist({'nr' : 3, 'context' : 0}).context
" get the number of quickfix lists in the stack
:echo getqflist({'nr' : '$'}).nr
" get the number of times the current quickfix list is changed
:echo getqflist({'changedtick' : 0}).changedtick
" get the current entry in a quickfix list specified by an identifier
:echo getqflist({'id' : qfid, 'idx' : 0}).idx
" get all the quickfix list attributes using an identifier
:echo getqflist({'id' : qfid, 'all' : 0})
" parse text from a List of lines and return a quickfix list
:let myList = ["a.java:10:L10", "b.java:20:L20"]
:echo getqflist({'lines' : myList}).items
" parse text using a custom 'efm' and return a quickfix list
:echo getqflist({'lines' : ['a.c#10#Line 10'], 'efm':'%f#%l#%m'}).items
" get the quickfix list window id
:echo getqflist({'winid' : 0}).winid
" get the context of the current location list
:echo getloclist(0, {'context' : 0}).context
" get the location list window id of the third window
:echo getloclist(3, {'winid' : 0}).winid
<
*setqflist-examples*
The |setqflist()| and |setloclist()| functions can be used to set the various
attributes of a quickfix and location list respectively. Some examples for
using these functions are below:
>
" create an empty quickfix list with a title and a context
:let t = 'Search results'
:let c = {'cmd' : 'grep'}
:call setqflist([], ' ', {'title' : t, 'context' : c})
" set the title of the current quickfix list
:call setqflist([], 'a', {'title' : 'Mytitle'})
" set the context of a quickfix list specified by an identifier
:call setqflist([], 'a', {'id' : qfid, 'context' : {'val' : 100}})
" create a new quickfix list from a command output
:call setqflist([], ' ', {'lines' : systemlist('grep -Hn main *.c')})
" parse text using a custom efm and add to a particular quickfix list
:call setqflist([], 'a', {'id' : qfid,
\ 'lines' : ["a.c#10#L10", "b.c#20#L20"], 'efm':'%f#%l#%m'})
" add items to the quickfix list specified by an identifier
:let newItems = [{'filename' : 'a.txt', 'lnum' : 10, 'text' : "Apple"},
\ {'filename' : 'b.txt', 'lnum' : 20, 'text' : "Orange"}]
:call setqflist([], 'a', {'id' : qfid, 'items' : newItems})
" empty a quickfix list specified by an identifier
:call setqflist([], 'r', {'id' : qfid, 'items' : []})
" free all the quickfix lists in the stack
:call setqflist([], 'f')
" set the title of the fourth quickfix list
:call setqflist([], 'a', {'nr' : 4, 'title' : 'SomeTitle'})
" create a new quickfix list at the end of the stack
:call setqflist([], ' ', {'nr' : '$',
\ 'lines' : systemlist('grep -Hn class *.java')})
" create a new location list from a command output
:call setloclist(0, [], ' ', {'lines' : systemlist('grep -Hn main *.c')})
" replace the location list entries for the third window
:call setloclist(3, [], 'r', {'items' : newItems})
<
============================================================================= =============================================================================
3. Using more than one list of errors *quickfix-error-lists* 3. Using more than one list of errors *quickfix-error-lists*
@@ -577,6 +740,14 @@ list, one newer list is overwritten. This is especially useful if you are
browsing with ":grep" |grep|. If you want to keep the more recent error browsing with ":grep" |grep|. If you want to keep the more recent error
lists, use ":cnewer 99" first. lists, use ":cnewer 99" first.
To get the number of lists in the quickfix and location list stack, you can
use the |getqflist()| and |getloclist()| functions respectively with the list
number set to the special value '$'. Examples: >
echo getqflist({'nr' : '$'}).nr
echo getloclist(3, {'nr' : '$'}).nr
To get the number of the current list in the stack: >
echo getqflist({'nr' : 0}).nr
<
============================================================================= =============================================================================
4. Using :make *:make_makeprg* 4. Using :make *:make_makeprg*
@@ -1069,7 +1240,7 @@ or >
to indicate the column of the error. This is to be used in a multi-line error to indicate the column of the error. This is to be used in a multi-line error
message. See |errorformat-javac| for a useful example. message. See |errorformat-javac| for a useful example.
The "%s" conversion specifies the text to search for to locate the error line. The "%s" conversion specifies the text to search for, to locate the error line.
The text is used as a literal string. The anchors "^" and "$" are added to The text is used as a literal string. The anchors "^" and "$" are added to
the text to locate the error line exactly matching the search text and the the text to locate the error line exactly matching the search text and the
text is prefixed with the "\V" atom to make it "very nomagic". The "%s" text is prefixed with the "\V" atom to make it "very nomagic". The "%s"
@@ -1338,6 +1509,22 @@ The backslashes before the pipe character are required to avoid it to be
recognized as a command separator. The backslash before each space is recognized as a command separator. The backslash before each space is
required for the set command. required for the set command.
*cfilter-plugin* *Cfilter* *Lfilter*
If you have too many matching messages, you can use the cfilter plugin to
reduce the number of entries. Load the plugin with: >
packadd cfilter
Then you can use these command: >
:Cfilter[!] /{pat}/
:Lfilter[!] /{pat}/
:Cfilter creates a new quickfix list from entries matching {pat} in the
current quickfix list. Both the file name and the text of the entries are
matched against {pat}. If ! is supplied, then entries not matching {pat} are
used.
:Lfilter does the same as :Cfilter but operates on the current location list.
============================================================================= =============================================================================
8. The directory stack *quickfix-directory-stack* 8. The directory stack *quickfix-directory-stack*
@@ -1575,4 +1762,4 @@ by Vim.
vim:noet:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -614,7 +614,8 @@ Short explanation of each option: *option-list*
'backupext' 'bex' extension used for the backup file 'backupext' 'bex' extension used for the backup file
'backupskip' 'bsk' no backup for files that match these patterns 'backupskip' 'bsk' no backup for files that match these patterns
'balloondelay' 'bdlay' delay in mS before a balloon may pop up 'balloondelay' 'bdlay' delay in mS before a balloon may pop up
'ballooneval' 'beval' switch on balloon evaluation 'ballooneval' 'beval' switch on balloon evaluation in the GUI
'balloonevalterm' 'bevalterm' switch on balloon evaluation in the terminal
'balloonexpr' 'bexpr' expression to show in balloon 'balloonexpr' 'bexpr' expression to show in balloon
'belloff' 'bo' do not ring the bell for these reasons 'belloff' 'bo' do not ring the bell for these reasons
'binary' 'bin' read/write/edit file in binary mode 'binary' 'bin' read/write/edit file in binary mode
@@ -809,6 +810,7 @@ Short explanation of each option: *option-list*
'printoptions' 'popt' controls the format of :hardcopy output 'printoptions' 'popt' controls the format of :hardcopy output
'prompt' 'prompt' enable prompt in Ex mode 'prompt' 'prompt' enable prompt in Ex mode
'pumheight' 'ph' maximum height of the popup menu 'pumheight' 'ph' maximum height of the popup menu
'pumwidth' 'pw' minimum width of the popup menu
'pythondll' name of the Python 2 dynamic library 'pythondll' name of the Python 2 dynamic library
'pythonthreedll' name of the Python 3 dynamic library 'pythonthreedll' name of the Python 3 dynamic library
'quoteescape' 'qe' escape characters used in a string 'quoteescape' 'qe' escape characters used in a string
@@ -906,6 +908,8 @@ Short explanation of each option: *option-list*
'undoreload' 'ur' max nr of lines to save for undo on a buffer reload 'undoreload' 'ur' max nr of lines to save for undo on a buffer reload
'updatecount' 'uc' after this many characters flush swap file 'updatecount' 'uc' after this many characters flush swap file
'updatetime' 'ut' after this many milliseconds flush swap file 'updatetime' 'ut' after this many milliseconds flush swap file
'varsofttabstop' 'vsts' a list of number of spaces when typing <Tab>
'vartabstop' 'vts' a list of number of spaces for <Tab>s
'verbose' 'vbs' give informative messages 'verbose' 'vbs' give informative messages
'verbosefile' 'vfile' file to write messages in 'verbosefile' 'vfile' file to write messages in
'viewdir' 'vdir' directory where to store files with :mkview 'viewdir' 'vdir' directory where to store files with :mkview
@@ -1372,4 +1376,4 @@ Context-sensitive completion on the command-line:
|zN| zN fold normal set 'foldenable' |zN| zN fold normal set 'foldenable'
|zi| zi invert 'foldenable' |zi| zi invert 'foldenable'
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -170,4 +170,4 @@ Once you are sure the recovery is ok delete the swap file. Otherwise, you
will continue to get warning messages that the ".swp" file already exists. will continue to get warning messages that the ".swp" file already exists.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -169,7 +169,8 @@ name on the 'VimRegistry' property on the root window.
A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
also act as a command server if a server name is explicitly given with the also act as a command server if a server name is explicitly given with the
--servername argument. --servername argument, or when Vim was build with the |+autoservername|
feature.
An empty --servername argument will cause the command server to be disabled. An empty --servername argument will cause the command server to be disabled.
@@ -190,4 +191,4 @@ When using gvim, the --remote-wait only works properly this way: >
start /w gvim --remote-wait file.txt start /w gvim --remote-wait file.txt
< <
vim:tw=78:sw=4:ts=8:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -226,6 +226,10 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
If the directory pack/*/opt/{name}/after exists it is If the directory pack/*/opt/{name}/after exists it is
added at the end of 'runtimepath'. added at the end of 'runtimepath'.
If loading packages from "pack/*/start" was skipped,
then this directory is searched first:
pack/*/start/{name} ~
Note that {name} is the directory name, not the name Note that {name} is the directory name, not the name
of the .vim file. All the files matching the pattern of the .vim file. All the files matching the pattern
pack/*/opt/{name}/plugin/**/*.vim ~ pack/*/opt/{name}/plugin/**/*.vim ~
@@ -958,4 +962,4 @@ mind there are various things that may clobber the results:
- The "self" time is wrong when a function is used recursively. - The "self" time is wrong when a function is used recursively.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -112,4 +112,4 @@ o When both 'rightleft' and 'revins' are on: 'textwidth' does not work.
o There is no full bidirectionality (bidi) support. o There is no full bidirectionality (bidi) support.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -68,4 +68,4 @@ In order to use the Russian documentation, make sure you have set the
releases of gettext. releases of gettext.
=============================================================================== ===============================================================================
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -27,6 +27,7 @@ seen):
*CTRL-E* *CTRL-E*
CTRL-E Scroll window [count] lines downwards in the buffer. CTRL-E Scroll window [count] lines downwards in the buffer.
The text moves upwards on the screen.
Mnemonic: Extra lines. Mnemonic: Extra lines.
*CTRL-D* *CTRL-D*
@@ -65,6 +66,7 @@ seen):
*CTRL-Y* *CTRL-Y*
CTRL-Y Scroll window [count] lines upwards in the buffer. CTRL-Y Scroll window [count] lines upwards in the buffer.
The text moves downwards on the screen.
Note: When using the MS-Windows key bindings CTRL-Y is Note: When using the MS-Windows key bindings CTRL-Y is
remapped to redo. remapped to redo.
@@ -248,4 +250,4 @@ the scroll wheel move one line or half a page in Normal mode: >
:map <S-ScrollWheelDown> <C-D> :map <S-ScrollWheelDown> <C-D>
You can also use Alt and Ctrl modifiers. You can also use Alt and Ctrl modifiers.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -196,4 +196,4 @@ JUMPING TO A SIGN *:sign-jump* *E157*
have a name. have a name.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1733,4 +1733,4 @@ This isn't ideal, because the longer Vim is running the higher the counts
become. But in practice it is a noticeable improvement over not using the word become. But in practice it is a noticeable improvement over not using the word
count. count.
vim:tw=78:sw=4:ts=8:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -213,4 +213,4 @@ is done. But a receipt is possible.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1101,6 +1101,8 @@ SHADA FILE NAME *shada-file-name*
- The "-i" Vim argument can be used to set another file name, |-i|. When the - The "-i" Vim argument can be used to set another file name, |-i|. When the
file name given is "NONE" (all uppercase), no ShaDa file is ever read or file name given is "NONE" (all uppercase), no ShaDa file is ever read or
written. Also not for the commands below! written. Also not for the commands below!
- The 'viminfofile' option can be used like the "-i" argument. In fact, the
value form the "-i" argument is stored in the 'viminfofile' option.
- For the commands below, another file name can be given, overriding the - For the commands below, another file name can be given, overriding the
default and the name given with 'shada' or "-i" (unless it's NONE). default and the name given with 'shada' or "-i" (unless it's NONE).

View File

@@ -1947,7 +1947,7 @@ set "lite_minlines" to the value you desire. Example: >
LPC *lpc.vim* *ft-lpc-syntax* LPC *lpc.vim* *ft-lpc-syntax*
LPC stands for a simple, memory-efficient language: Lars Pensj| C. The LPC stands for a simple, memory-efficient language: Lars Pensjö C. The
file name of LPC is usually *.c. Recognizing these files as LPC would bother file name of LPC is usually *.c. Recognizing these files as LPC would bother
users writing only C programs. If you want to use LPC syntax in Vim, you users writing only C programs. If you want to use LPC syntax in Vim, you
should set a variable in your vimrc file: > should set a variable in your vimrc file: >
@@ -2748,13 +2748,10 @@ Ruby syntax will perform spellchecking of strings if you define
SCHEME *scheme.vim* *ft-scheme-syntax* SCHEME *scheme.vim* *ft-scheme-syntax*
By default only R5RS keywords are highlighted and properly indented. By default only R7RS keywords are highlighted and properly indented.
MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme scheme.vim also supports extensions of the CHICKEN Scheme->C compiler.
variables are defined. Define b:is_chicken or g:is_chicken, if you need them.
Also scheme.vim supports keywords of the Chicken Scheme->C compiler. Define
b:is_chicken or g:is_chicken, if you need them.
SDL *sdl.vim* *ft-sdl-syntax* SDL *sdl.vim* *ft-sdl-syntax*
@@ -2848,17 +2845,17 @@ This covers syntax highlighting for the older Unix (Bourne) sh, and newer
shells such as bash, dash, posix, and the Korn shells. shells such as bash, dash, posix, and the Korn shells.
Vim attempts to determine which shell type is in use by specifying that Vim attempts to determine which shell type is in use by specifying that
various filenames are of specific types: > various filenames are of specific types, e.g.: >
ksh : .kshrc* *.ksh ksh : .kshrc* *.ksh
bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash
< <
If none of these cases pertain, then the first line of the file is examined See $VIMRUNTIME/filetype.vim for the full list of patterns. If none of these
(ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a cases pertain, then the first line of the file is examined (ex. looking for
shelltype, then that shelltype is used. However some files (ex. .profile) are /bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype, then
known to be shell files but the type is not apparent. Furthermore, on many that shelltype is used. However some files (ex. .profile) are known to be
systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" shell files but the type is not apparent. Furthermore, on many systems sh is
(Posix). symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix).
One may specify a global default by instantiating one of the following One may specify a global default by instantiating one of the following
variables in your vimrc: variables in your vimrc:
@@ -4585,7 +4582,9 @@ in their own color.
runtime colors/evening.vim runtime colors/evening.vim
hi Statement ctermfg=Blue guifg=Blue hi Statement ctermfg=Blue guifg=Blue
< After the color scheme has been loaded the < Before the color scheme will be loaded the
|ColorSchemePre| autocommand event is triggered.
After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered. |ColorScheme| autocommand event is triggered.
For info about writing a colorscheme file: > For info about writing a colorscheme file: >
:edit $VIMRUNTIME/colors/README.txt :edit $VIMRUNTIME/colors/README.txt
@@ -4947,6 +4946,11 @@ StatusLine status line of current window
StatusLineNC status lines of not-current windows StatusLineNC status lines of not-current windows
Note: if this is equal to "StatusLine" Vim will use "^^^" in Note: if this is equal to "StatusLine" Vim will use "^^^" in
the status line of the current window. the status line of the current window.
*hl-StatusLineTerm*
StatusLineTerm status line of current window, if it is a |terminal| window.
*hl-StatusLineTermNC*
StatusLineTermNC status lines of not-current windows that is a |terminal|
window.
*hl-TabLine* *hl-TabLine*
TabLine tab pages line, not active tab page label TabLine tab pages line, not active tab page label
*hl-TabLineFill* *hl-TabLineFill*
@@ -5250,4 +5254,4 @@ literal text specify the size of that text (in bytes):
"<\@1<=span" Matches the same, but only tries one byte before "span". "<\@1<=span" Matches the same, but only tries one byte before "span".
vim:tw=78:sw=4:ts=8:ft=help:norl: vim:tw=78:sw=4:ts=8:noet:ft=help:norl:

View File

@@ -203,7 +203,8 @@ gT Go to the previous tab page. Wraps around from the first one
:tabN[ext] {count} :tabN[ext] {count}
{count}<C-PageUp> {count}<C-PageUp>
{count}gT Go {count} tab pages back. Wraps around from the first one {count}gT Go {count} tab pages back. Wraps around from the first one
to the last one. to the last one. Note that the use of {count} is different
from |:tabnext|, where it is used as the tab page number.
:tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind* :tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind*
:tabfir[st] Go to the first tab page. :tabfir[st] Go to the first tab page.
@@ -230,8 +231,10 @@ REORDERING TAB PAGES:
:tabm[ove] [N] *:tabm* *:tabmove* :tabm[ove] [N] *:tabm* *:tabmove*
:[N]tabm[ove] :[N]tabm[ove]
Move the current tab page to after tab page N. Use zero to Move the current tab page to after tab page N. Use zero to
make the current tab page the first one. Without N the tab make the current tab page the first one. N is counted before
page is made the last one. > the move, thus if the second tab is the current one,
`:tabmove 1` and `:tabmove 2` have no effect.
Without N the tab page is made the last one. >
:.tabmove " do nothing :.tabmove " do nothing
:-tabmove " move the tab page to the left :-tabmove " move the tab page to the left
:+tabmove " move the tab page to the right :+tabmove " move the tab page to the right
@@ -463,4 +466,4 @@ If you want to show something specific for a tab page, you might want to use a
tab page local variable. |t:var| tab page local variable. |t:var|
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -31,12 +31,12 @@ An easy way back is with the CTRL-T command. Also read about the tag stack
below. below.
*:ta* *:tag* *E426* *E429* *:ta* *:tag* *E426* *E429*
:[count]ta[g][!] {ident} :[count]ta[g][!] {name}
Jump to the definition of {ident}, using the Jump to the definition of {name}, using the
information in the tags file(s). Put {ident} in the information in the tags file(s). Put {name} in the
tag stack. See |tag-!| for [!]. tag stack. See |tag-!| for [!].
{ident} can be a regexp pattern, see |tag-regexp|. {name} can be a regexp pattern, see |tag-regexp|.
When there are several matching tags for {ident}, jump When there are several matching tags for {name}, jump
to the [count] one. When [count] is omitted the to the [count] one. When [count] is omitted the
first one is jumped to. See |tag-matchlist| for first one is jumped to. See |tag-matchlist| for
jumping to other matching tags. jumping to other matching tags.
@@ -44,15 +44,15 @@ below.
g<LeftMouse> *g<LeftMouse>* g<LeftMouse> *g<LeftMouse>*
<C-LeftMouse> *<C-LeftMouse>* *CTRL-]* <C-LeftMouse> *<C-LeftMouse>* *CTRL-]*
CTRL-] Jump to the definition of the keyword under the CTRL-] Jump to the definition of the keyword under the
cursor. Same as ":tag {ident}", where {ident} is the cursor. Same as ":tag {name}", where {name} is the
keyword under or after cursor. keyword under or after cursor.
When there are several matching tags for {ident}, jump When there are several matching tags for {name}, jump
to the [count] one. When no [count] is given the to the [count] one. When no [count] is given the
first one is jumped to. See |tag-matchlist| for first one is jumped to. See |tag-matchlist| for
jumping to other matching tags. jumping to other matching tags.
*v_CTRL-]* *v_CTRL-]*
{Visual}CTRL-] Same as ":tag {ident}", where {ident} is the text that {Visual}CTRL-] Same as ":tag {name}", where {name} is the text that
is highlighted. is highlighted.
*telnet-CTRL-]* *telnet-CTRL-]*
@@ -76,7 +76,7 @@ When there are multiple matches for a tag, this priority is used:
Note that when the current file changes, the priority list is mostly not Note that when the current file changes, the priority list is mostly not
changed, to avoid confusion when using ":tnext". It is changed when using changed, to avoid confusion when using ":tnext". It is changed when using
":tag {ident}". ":tag {name}".
The ignore-case matches are not found for a ":tag" command when: The ignore-case matches are not found for a ":tag" command when:
- the 'ignorecase' option is off and 'tagcase' is "followic" - the 'ignorecase' option is off and 'tagcase' is "followic"
@@ -161,7 +161,7 @@ You can get from main to FuncA by using CTRL-] on the call to FuncA. Then
you can CTRL-] to get to FuncC. If you now want to go back to main you can you can CTRL-] to get to FuncC. If you now want to go back to main you can
use CTRL-T twice. Then you can CTRL-] to FuncB. use CTRL-T twice. Then you can CTRL-] to FuncB.
If you issue a ":ta {ident}" or CTRL-] command, this tag is inserted at the If you issue a ":ta {name}" or CTRL-] command, this tag is inserted at the
current position in the stack. If the stack was full (it can hold up to 20 current position in the stack. If the stack was full (it can hold up to 20
entries), the oldest entry is deleted and the older entries shift one entries), the oldest entry is deleted and the older entries shift one
position up (their index number is decremented by one). If the last used position up (their index number is decremented by one). If the last used
@@ -185,14 +185,14 @@ between them. Note that these commands don't change the tag stack, they keep
the same entry. the same entry.
*:ts* *:tselect* *:ts* *:tselect*
:ts[elect][!] [ident] List the tags that match [ident], using the :ts[elect][!] [name] List the tags that match [name], using the
information in the tags file(s). information in the tags file(s).
When [ident] is not given, the last tag name from the When [name] is not given, the last tag name from the
tag stack is used. tag stack is used.
See |tag-!| for [!]. See |tag-!| for [!].
With a '>' in the first column is indicated which is With a '>' in the first column is indicated which is
the current position in the list (if there is one). the current position in the list (if there is one).
[ident] can be a regexp pattern, see |tag-regexp|. [name] can be a regexp pattern, see |tag-regexp|.
See |tag-priority| for the priorities used in the See |tag-priority| for the priorities used in the
listing. listing.
Example output: Example output:
@@ -220,7 +220,7 @@ the same entry.
type 'q' and enter the number. type 'q' and enter the number.
*:sts* *:stselect* *:sts* *:stselect*
:sts[elect][!] [ident] Does ":tselect[!] [ident]" and splits the window for :sts[elect][!] [name] Does ":tselect[!] [name]" and splits the window for
the selected tag. the selected tag.
*g]* *g]*
@@ -231,11 +231,11 @@ g] Like CTRL-], but use ":tselect" instead of ":tag".
identifier. identifier.
*:tj* *:tjump* *:tj* *:tjump*
:tj[ump][!] [ident] Like ":tselect", but jump to the tag directly when :tj[ump][!] [name] Like ":tselect", but jump to the tag directly when
there is only one match. there is only one match.
*:stj* *:stjump* *:stj* *:stjump*
:stj[ump][!] [ident] Does ":tjump[!] [ident]" and splits the window for the :stj[ump][!] [name] Does ":tjump[!] [name]" and splits the window for the
selected tag. selected tag.
*g_CTRL-]* *g_CTRL-]*
@@ -267,9 +267,9 @@ g CTRL-] Like CTRL-], but use ":tjump" instead of ":tag".
:tl[ast][!] Jump to last matching tag. See |tag-!| for [!]. :tl[ast][!] Jump to last matching tag. See |tag-!| for [!].
*:lt* *:ltag* *:lt* *:ltag*
:lt[ag][!] [ident] Jump to tag [ident] and add the matching tags to a new :lt[ag][!] [name] Jump to tag [name] and add the matching tags to a new
location list for the current window. [ident] can be location list for the current window. [name] can be
a regexp pattern, see |tag-regexp|. When [ident] is a regexp pattern, see |tag-regexp|. When [name] is
not given, the last tag name from the tag stack is not given, the last tag name from the tag stack is
used. The search pattern to locate the tag line is used. The search pattern to locate the tag line is
prefixed with "\V" to escape all the special prefixed with "\V" to escape all the special
@@ -300,11 +300,11 @@ the same as above, with a "p" prepended.
{not available when compiled without the |+quickfix| feature} {not available when compiled without the |+quickfix| feature}
*:pts* *:ptselect* *:pts* *:ptselect*
:pts[elect][!] [ident] Does ":tselect[!] [ident]" and shows the new tag in a :pts[elect][!] [name] Does ":tselect[!] [name]" and shows the new tag in a
"Preview" window. See |:ptag| for more info. "Preview" window. See |:ptag| for more info.
*:ptj* *:ptjump* *:ptj* *:ptjump*
:ptj[ump][!] [ident] Does ":tjump[!] [ident]" and shows the new tag in a :ptj[ump][!] [name] Does ":tjump[!] [name]" and shows the new tag in a
"Preview" window. See |:ptag| for more info. "Preview" window. See |:ptag| for more info.
*:ptn* *:ptnext* *:ptn* *:ptnext*
@@ -819,4 +819,4 @@ Common arguments for the commands above:
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern < For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
is used as a literal string, not as a search pattern. is used as a literal string, not as a search pattern.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -446,4 +446,4 @@ A slightly more advanced version is used in the |matchparen| plugin.
autocmd InsertEnter * match none autocmd InsertEnter * match none
< <
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -281,4 +281,4 @@ Address to send checks to:
This address is expected to be valid for a long time. This address is expected to be valid for a long time.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -383,4 +383,4 @@ if it is not what you want do 'u.'. This will remove the contents of the
first put, and repeat the put command for the second register. Repeat the first put, and repeat the put command for the second register. Repeat the
'u.' until you got what you want. 'u.' until you got what you want.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -109,4 +109,4 @@ donate part of the profit to help AIDS victims in Uganda. See |iccf|.
Next chapter: |usr_02.txt| The first steps in Vim Next chapter: |usr_02.txt| The first steps in Vim
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -687,4 +687,4 @@ Summary: *help-summary* >
Next chapter: |usr_03.txt| Moving around Next chapter: |usr_03.txt| Moving around
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -650,4 +650,4 @@ You will notice a few special marks. These include:
Next chapter: |usr_04.txt| Making small changes Next chapter: |usr_04.txt| Making small changes
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -511,4 +511,4 @@ else:
Next chapter: |usr_05.txt| Set your settings Next chapter: |usr_05.txt| Set your settings
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -317,8 +317,9 @@ when you use Vim. There are only two steps for adding a global plugin:
GETTING A GLOBAL PLUGIN GETTING A GLOBAL PLUGIN
Where can you find plugins? Where can you find plugins?
- Some are always loaded, you can see them in the directory $VIMRUNTIME/plugin.
- Some come with Vim. You can find them in the directory $VIMRUNTIME/macros - Some come with Vim. You can find them in the directory $VIMRUNTIME/macros
and its sub-directories. and its sub-directories and under $VIM/vimfiles/pack/dist/opt/.
- Download from the net. There is a large collection on http://www.vim.org. - Download from the net. There is a large collection on http://www.vim.org.
- They are sometimes posted in a Vim |maillist|. - They are sometimes posted in a Vim |maillist|.
- You could write one yourself, see |write-plugin|. - You could write one yourself, see |write-plugin|.
@@ -609,4 +610,4 @@ This does mean there is less room to edit text, thus it's a compromise.
Next chapter: |usr_06.txt| Using syntax highlighting Next chapter: |usr_06.txt| Using syntax highlighting
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -274,4 +274,4 @@ others look at the colored text.
Next chapter: |usr_07.txt| Editing more than one file Next chapter: |usr_07.txt| Editing more than one file
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -476,4 +476,4 @@ This protects you from accidentally overwriting another file.
Next chapter: |usr_08.txt| Splitting windows Next chapter: |usr_08.txt| Splitting windows
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -597,4 +597,4 @@ For more information about tab pages see |tab-page|.
Next chapter: |usr_09.txt| Using the GUI Next chapter: |usr_09.txt| Using the GUI
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -5,9 +5,10 @@
Using the GUI Using the GUI
Vim works in an ordinary terminal. GVim can do the same things and a few Vim works in an ordinary terminal, while gVim has a Graphical User Interface
more. The GUI offers menus, a toolbar, scrollbars and other items. This (GUI). It can do the same things and a few more. The GUI offers menus, a
chapter is about these extra things that the GUI offers. toolbar, scrollbars and other items. This chapter is about these extra things
that the GUI offers.
|09.1| Parts of the GUI |09.1| Parts of the GUI
|09.2| Using the mouse |09.2| Using the mouse
@@ -282,4 +283,4 @@ You can tune the way Select mode works with the 'selectmode' option.
Next chapter: |usr_10.txt| Making big changes Next chapter: |usr_10.txt| Making big changes
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -820,4 +820,4 @@ has written. To tell Vim to redraw the screen: >
Next chapter: |usr_11.txt| Recovering from a crash Next chapter: |usr_11.txt| Recovering from a crash
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -234,7 +234,7 @@ that file, be prepared to redo your last changes.
WHAT TO DO? *swap-exists-choices* WHAT TO DO? *swap-exists-choices*
If dialogs are supported you will be asked to select one of five choices: If dialogs are supported you will be asked to select one of six choices:
Swap file ".main.c.swp" already exists! ~ Swap file ".main.c.swp" already exists! ~
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it: ~ [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort, (D)elete it: ~
@@ -299,4 +299,4 @@ If you really don't want to see this message, you can add the 'A' flag to the
Next chapter: |usr_12.txt| Clever tricks Next chapter: |usr_12.txt| Clever tricks
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -343,4 +343,4 @@ matches and where they are.
Next chapter: |usr_20.txt| Typing command-line commands quickly Next chapter: |usr_20.txt| Typing command-line commands quickly
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -381,4 +381,4 @@ there can be only one.
Next chapter: |usr_21.txt| Go away and come back Next chapter: |usr_21.txt| Go away and come back
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -488,4 +488,4 @@ For more details see |modeline|.
Next chapter: |usr_22.txt| Finding the file to edit Next chapter: |usr_22.txt| Finding the file to edit
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -397,4 +397,4 @@ can't be editing nothing!
Next chapter: |usr_23.txt| Editing other files Next chapter: |usr_23.txt| Editing other files
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -256,4 +256,4 @@ decompression. You might need to install the programs first.
Next chapter: |usr_24.txt| Inserting quickly Next chapter: |usr_24.txt| Inserting quickly
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -538,8 +538,8 @@ a 16 bit and a 32 bit number (e.g., for a Unicode character): >
*24.9* Digraphs *24.9* Digraphs
Some characters are not on the keyboard. For example, the copyright character Some characters are not on the keyboard. For example, the copyright character
(<EFBFBD>). To type these characters in Vim, you use digraphs, where two characters (©). To type these characters in Vim, you use digraphs, where two characters
represent one. To enter a <EFBFBD>, for example, you press three keys: > represent one. To enter a ©, for example, you press three keys: >
CTRL-K Co CTRL-K Co
@@ -549,12 +549,12 @@ To find out what digraphs are available, use the following command: >
Vim will display the digraph table. Here are three lines of it: Vim will display the digraph table. Here are three lines of it:
AC ~_ 159 NS | 160 !I <EFBFBD> 161 Ct <EFBFBD> 162 Pd <EFBFBD> 163 Cu <EFBFBD> 164 Ye <EFBFBD> 165 ~ AC ~_ 159 NS | 160 !I ¡ 161 Ct ¢ 162 Pd £ 163 Cu ¤ 164 Ye ¥ 165 ~
BB <EFBFBD> 166 SE <EFBFBD> 167 ': <EFBFBD> 168 Co <EFBFBD> 169 -a <EFBFBD> 170 << <EFBFBD> 171 NO <EFBFBD> 172 ~ BB ¦ 166 SE § 167 ': ¨ 168 Co © 169 -a ª 170 << « 171 NO ¬ 172 ~
-- <EFBFBD> 173 Rg <EFBFBD> 174 'm <EFBFBD> 175 DG <EFBFBD> 176 +- <EFBFBD> 177 2S <EFBFBD> 178 3S <EFBFBD> 179 ~ -- ­ 173 Rg ® 174 'm ¯ 175 DG ° 176 +- ± 177 2S ² 178 3S ³ 179 ~
This shows, for example, that the digraph you get by typing CTRL-K Pd is the This shows, for example, that the digraph you get by typing CTRL-K Pd is the
character (<EFBFBD>). This is character number 163 (decimal). character (£). This is character number 163 (decimal).
Pd is short for Pound. Most digraphs are selected to give you a hint about Pd is short for Pound. Most digraphs are selected to give you a hint about
the character they will produce. If you look through the list you will the character they will produce. If you look through the list you will
understand the logic. understand the logic.
@@ -569,9 +569,9 @@ that combination. Thus CTRL-K dP also works. Since there is no digraph for
You can define your own digraphs. Example: > You can define your own digraphs. Example: >
:digraph a" <EFBFBD> :digraph a" ä
This defines that CTRL-K a" inserts an <EFBFBD> character. You can also specify the This defines that CTRL-K a" inserts an ä character. You can also specify the
character with a decimal number. This defines the same digraph: > character with a decimal number. This defines the same digraph: >
:digraph a" 228 :digraph a" 228
@@ -603,4 +603,4 @@ This deletes up to the third word into register g.
Next chapter: |usr_25.txt| Editing formatted text Next chapter: |usr_25.txt| Editing formatted text
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -579,4 +579,4 @@ The "gR" command uses Virtual Replace mode. This preserves the layout:
Next chapter: |usr_26.txt| Repeating Next chapter: |usr_26.txt| Repeating
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -207,4 +207,4 @@ start all over, use the "-W" argument. It overwrites any existing file.
Next chapter: |usr_27.txt| Search commands and patterns Next chapter: |usr_27.txt| Search commands and patterns
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -225,9 +225,9 @@ specify a line offset, this can cause trouble. For example: >
/const/-2 /const/-2
This finds the next word "const" and then moves two lines up. If you This finds the next word "const" and then moves two lines up. If you
use "n" to search again, Vim could start at the current position and find the same use "n" to search again, Vim could start at the current position and find the
"const" match. Then using the offset again, you would be back where you started. same "const" match. Then using the offset again, you would be back where you
You would be stuck! started. You would be stuck!
It could be worse: Suppose there is another match with "const" in the next It could be worse: Suppose there is another match with "const" in the next
line. Then repeating the forward search would find this match and move two line. Then repeating the forward search would find this match and move two
lines up. Thus you would actually move the cursor back! lines up. Thus you would actually move the cursor back!
@@ -560,4 +560,4 @@ and "\w" for "[0-9A-Za-z_]".
Next chapter: |usr_28.txt| Folding Next chapter: |usr_28.txt| Folding
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -423,4 +423,4 @@ the defined folds. Then you can delete or add folds manually.
Next chapter: |usr_29.txt| Moving through programs Next chapter: |usr_29.txt| Moving through programs
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -608,4 +608,4 @@ for the identifier. Example (cursor on "idx"):
Next chapter: |usr_30.txt| Editing programs Next chapter: |usr_30.txt| Editing programs
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -640,4 +640,4 @@ For more details see |format-comments|.
Next chapter: |usr_31.txt| Exploiting the GUI Next chapter: |usr_31.txt| Exploiting the GUI
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -269,4 +269,4 @@ another font size, for example.
Next chapter: |usr_32.txt| The undo tree Next chapter: |usr_32.txt| The undo tree
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -177,4 +177,4 @@ use the |undotree()| function. To see what it returns: >
Next chapter: |usr_40.txt| Make new commands Next chapter: |usr_40.txt| Make new commands
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -654,4 +654,4 @@ To set it back to the normal behavior, make 'eventignore' empty: >
Next chapter: |usr_41.txt| Write a Vim script Next chapter: |usr_41.txt| Write a Vim script
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -882,9 +882,11 @@ Interactive: *interactive-functions*
GUI: *gui-functions* GUI: *gui-functions*
getfontname() get name of current font being used getfontname() get name of current font being used
getwinposx() X position of the GUI Vim window getwinpos() position of the Vim window
getwinposy() Y position of the GUI Vim window getwinposx() X position of the Vim window
getwinposy() Y position of the Vim window
balloon_show() set the balloon content balloon_show() set the balloon content
balloon_split() split a message for a balloon
Vim server: *server-functions* Vim server: *server-functions*
serverlist() return the list of server names serverlist() return the list of server names
@@ -900,6 +902,7 @@ Vim server: *server-functions*
Window size and position: *window-size-functions* Window size and position: *window-size-functions*
winheight() get height of a specific window winheight() get height of a specific window
winwidth() get width of a specific window winwidth() get width of a specific window
win_screenpos() get screen position of a window
winrestcmd() return command to restore window sizes winrestcmd() return command to restore window sizes
winsaveview() get view of current window winsaveview() get view of current window
winrestview() restore saved view of current window winrestview() restore saved view of current window
@@ -919,7 +922,8 @@ Testing: *test-functions*
assert_false() assert that an expression is false assert_false() assert that an expression is false
assert_true() assert that an expression is true assert_true() assert that an expression is true
assert_exception() assert that a command throws an exception assert_exception() assert that a command throws an exception
assert_fails() assert that a function call fails assert_beeps() assert that a command beeps
assert_fails() assert that a command fails
Timers: *timer-functions* Timers: *timer-functions*
timer_start() create a timer timer_start() create a timer
@@ -2510,4 +2514,4 @@ utility is recommended.
Next chapter: |usr_42.txt| Add new menus Next chapter: |usr_42.txt| Add new menus
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -355,4 +355,4 @@ is...
Next chapter: |usr_43.txt| Using filetypes Next chapter: |usr_43.txt| Using filetypes
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -175,4 +175,4 @@ and sources a script or executes a function to check the contents of the file.
Next chapter: |usr_44.txt| Your own syntax highlighted Next chapter: |usr_44.txt| Your own syntax highlighted
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -716,4 +716,4 @@ up scrolling backwards and CTRL-L.
Next chapter: |usr_45.txt| Select your language Next chapter: |usr_45.txt| Select your language
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -392,4 +392,4 @@ Don't type the spaces. See |i_CTRL-V_digit| for the details.
============================================================================== ==============================================================================
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -335,4 +335,4 @@ Make Vim work as you like it.
============================================================================== ==============================================================================
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -381,6 +381,7 @@ N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200. S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators| N *+visualextra* extra Visual mode commands |blockwise-operators|
N *+vreplace* |gR| and |gr| N *+vreplace* |gR| and |gr|
*+vtp* on MS-Windows console: support for 'termguicolors'
N *+wildignore* |'wildignore'| N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'| N *+wildmenu* |'wildmenu'|
*+windows* more than one window *+windows* more than one window

View File

@@ -363,4 +363,4 @@ Move cursor beyond lines.
and figures easily. and figures easily.
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -524,4 +524,4 @@ g CTRL-H Start Select mode, blockwise. This is like CTRL-V,
but starts Select mode instead of Visual mode. but starts Select mode instead of Visual mode.
Mnemonic: "get Highlighted". Mnemonic: "get Highlighted".
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

View File

@@ -1046,10 +1046,8 @@ list of buffers. |unlisted-buffer|
:%bdelete " delete all buffers :%bdelete " delete all buffers
< <
:bdelete[!] {bufname} *E93* *E94* :bdelete[!] {bufname} *E93* *E94*
Like ":bdelete[!] [N]", but buffer given by name. Note that a Like ":bdelete[!] [N]", but buffer given by name, see
buffer whose name is a number cannot be referenced by that |{bufname}|.
name; use the buffer number instead. Insert a backslash
before a space in a buffer name.
:bdelete[!] N1 N2 ... :bdelete[!] N1 N2 ...
Do ":bdelete[!]" for buffer N1, N2, etc. The arguments can be Do ":bdelete[!]" for buffer N1, N2, etc. The arguments can be
@@ -1085,10 +1083,8 @@ list of buffers. |unlisted-buffer|
into a loaded buffer. into a loaded buffer.
:bunload[!] {bufname} :bunload[!] {bufname}
Like ":bunload[!] [N]", but buffer given by name. Note that a Like ":bunload[!] [N]", but buffer given by name.
buffer whose name is a number cannot be referenced by that Also see |{bufname}|.
name; use the buffer number instead. Insert a backslash
before a space in a buffer name.
:N,Mbunload[!] Do ":bunload[!]" for all buffers in the range N to M :N,Mbunload[!] Do ":bunload[!]" for all buffers in the range N to M
|inclusive|. |inclusive|.
@@ -1106,10 +1102,16 @@ list of buffers. |unlisted-buffer|
list, without setting the 'buflisted' flag. list, without setting the 'buflisted' flag.
Also see |+cmd|. Also see |+cmd|.
:[N]b[uffer][!] [+cmd] {bufname} :[N]b[uffer][!] [+cmd] {bufname} *{bufname}*
Edit buffer for {bufname} from the buffer list. See Edit buffer for {bufname} from the buffer list. A partial
|:buffer-!| for [!]. This will also edit a buffer that is not name also works, so long as it is unique in the list of
in the buffer list, without setting the 'buflisted' flag. buffers.
Note that a buffer whose name is a number cannot be referenced
by that name; use the buffer number instead.
Insert a backslash before a space in a buffer name.
See |:buffer-!| for [!].
This will also edit a buffer that is not in the buffer list,
without setting the 'buflisted' flag.
Also see |+cmd|. Also see |+cmd|.
:[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer* :[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer*
@@ -1121,7 +1123,7 @@ list of buffers. |unlisted-buffer|
Also see |+cmd|. Also see |+cmd|.
:[N]sb[uffer] [+cmd] {bufname} :[N]sb[uffer] [+cmd] {bufname}
Split window and edit buffer for {bufname} from the buffer Split window and edit buffer for |{bufname}| from the buffer
list. This will also edit a buffer that is not in the buffer list. This will also edit a buffer that is not in the buffer
list, without setting the 'buflisted' flag. list, without setting the 'buflisted' flag.
Note: If what you want to do is split the buffer, make a copy Note: If what you want to do is split the buffer, make a copy
@@ -1271,4 +1273,4 @@ unlisted The buffer is not in the buffer list. It is not used for
:setlocal nobuflisted :setlocal nobuflisted
< <
vim:tw=78:ts=8:ft=help:norl: vim:tw=78:ts=8:noet:ft=help:norl:

Some files were not shown because too many files have changed in this diff Show More