changeset 24911:fd37be6dc258

Update runtime files Commit: https://github.com/vim/vim/commit/2346a6378483c9871016f9fc821ec5cbea638f13 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 13 19:02:49 2021 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sun, 13 Jun 2021 19:15:03 +0200
parents 77de4ae3e013
children 02fa8d72e4e3
files runtime/doc/autocmd.txt runtime/doc/change.txt runtime/doc/eval.txt runtime/doc/filetype.txt runtime/doc/ft_raku.txt runtime/doc/help.txt runtime/doc/motion.txt runtime/doc/options.txt runtime/doc/os_vms.txt runtime/doc/pattern.txt runtime/doc/pi_netrw.txt runtime/doc/repeat.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/term.txt runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/various.txt runtime/doc/vim.1 runtime/doc/vim.man runtime/doc/vim9.txt runtime/doc/vimdiff.1 runtime/doc/vimdiff.man runtime/filetype.vim runtime/gvim.desktop runtime/indent/html.vim runtime/syntax/gvpr.vim runtime/vim.desktop src/INSTALLpc.txt src/po/sr.po
diffstat 30 files changed, 399 insertions(+), 185 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -54,7 +54,7 @@ 2. Defining autocommands				*autocmd-def
 :au[tocmd] [group] {event} {pat} [++once] [++nested] {cmd}
 			Add {cmd} to the list of commands that Vim will
 			execute automatically on {event} for a file matching
-			{pat} |autocmd-patterns|. 
+			{pat} |autocmd-patterns|.
 			Here {event} cannot be "*".  *E1155*
 			Note: A quote character is seen as argument to the
 			:autocmd and won't start a comment.
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2021 Mar 01
+*change.txt*    For Vim version 8.2.  Last change: 2021 Jun 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2021 May 07
+*eval.txt*	For Vim version 8.2.  Last change: 2021 Jun 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2102,7 +2102,7 @@ v:null		An empty String. Used to put "nu
 v:numbermax	Maximum value of a number.
 
 					*v:numbermin* *numbermin-variable*
-v:numbermin	Minimum value of a number (negative)
+v:numbermin	Minimum value of a number (negative).
 
 					*v:numbersize* *numbersize-variable*
 v:numbersize	Number of bits in a Number.  This is normally 64, but on some
@@ -2508,7 +2508,7 @@ char2nr({expr} [, {utf8}])	Number	ASCII/
 charclass({string})		Number	character class of {string}
 charcol({expr})			Number	column number of cursor or mark
 charidx({string}, {idx} [, {countcc}])
-				Number  char index of byte {idx} in {string}
+				Number	char index of byte {idx} in {string}
 chdir({dir})			String	change current working directory
 cindent({lnum})			Number	C indent for line {lnum}
 clearmatches([{win}])		none	clear all matches
@@ -2529,7 +2529,7 @@ cscope_connection([{num}, {dbpath} [, {p
 cursor({lnum}, {col} [, {off}])
 				Number	move cursor to {lnum}, {col}, {off}
 cursor({list})			Number	move cursor to position in {list}
-debugbreak({pid})		Number  interrupt process being debugged
+debugbreak({pid})		Number	interrupt process being debugged
 deepcopy({expr} [, {noref}])	any	make a full copy of {expr}
 delete({fname} [, {flags}])	Number	delete the file or directory {fname}
 deletebufline({expr}, {first} [, {last}])
@@ -4951,7 +4951,7 @@ funcref({name} [, {arglist}] [, {dict}])
 		Can also be used as a |method|: >
 			GetFuncname()->funcref([arg])
 <
-					*function()* *E700* *E922* *E923*
+				*function()* *partial* *E700* *E922* *E923*
 function({name} [, {arglist}] [, {dict}])
 		Return a |Funcref| variable that refers to function {name}.
 		{name} can be the name of a user defined function or an
@@ -5500,8 +5500,8 @@ getcurpos([{winid}])
 
 		Can also be used as a |method|: >
 			GetWinid()->getcurpos()
-
-<							*getcursorcharpos()*
+<
+							*getcursorcharpos()*
 getcursorcharpos([{winid}])
 		Same as |getcurpos()| but the column number in the returned
 		List is a character index instead of a byte index.
@@ -5510,8 +5510,8 @@ getcursorcharpos([{winid}])
 		With the cursor on '보' in line 3 with text "여보세요": >
 			getcursorcharpos()	returns [0, 3, 2, 0, 3]
 			getcurpos()		returns [0, 3, 4, 0, 3]
-
-<		Can also be used as a |method|: >
+<
+		Can also be used as a |method|: >
 			GetWinid()->getcursorcharpos()
 
 <							*getcwd()*
@@ -5736,11 +5736,11 @@ getmarklist([{expr}])					*getmarklist()
 		see |bufname()|.
 
 		Each item in the returned List is a |Dict| with the following:
-		    name - name of the mark prefixed by "'"
-		    pos - a |List| with the position of the mark:
+		    mark   name of the mark prefixed by "'"
+		    pos	   a |List| with the position of the mark:
 				[bufnum, lnum, col, off]
-			  Refer to |getpos()| for more information.
-		    file - file name
+			   Refer to |getpos()| for more information.
+		    file   file name
 
 		Refer to |getpos()| for getting information about a specific
 		mark.
@@ -5822,7 +5822,7 @@ getpos({expr})	Get the position for {exp
 		'> is a large number.
 		The column number in the returned List is the byte position
 		within the line. To get the character position in the line,
-		use |getcharpos()|
+		use |getcharpos()|.
 		The column number can be very large, e.g. 2147483647, in which
 		case it means "after the end of the line".
 		This can be used to save and restore the position of a mark: >
@@ -7637,7 +7637,7 @@ matchfuzzypos({list}, {str} [, {dict}])	
 		Same as |matchfuzzy()|, but returns the list of matched
 		strings, the list of character positions where characters
 		in {str} matches and a list of matching scores.  You can
-		use |byteidx()|to convert a character position to a byte
+		use |byteidx()| to convert a character position to a byte
 		position.
 
 		If {str} matches multiple times in a string, then only the
@@ -9961,7 +9961,7 @@ sinh({expr})						*sinh()*
 		{only available when compiled with the |+float| feature}
 
 
-slice({expr}, {start} [, {end}])			*slice()* 
+slice({expr}, {start} [, {end}])			*slice()*
 		Similar to using a |slice| "expr[start : end]", but "end" is
 		used exclusive.  And for a string the indexes are used as
 		character indexes instead of byte indexes, like in
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -632,7 +632,7 @@ For fish, add to the config file
 MARKDOWN                                                *ft-markdown-plugin*
 
 To enable folding use this: >
-        let g:markdown_folding = 1
+	let g:markdown_folding = 1
 <
 
 PDF							*ft-pdf-plugin*
--- a/runtime/doc/ft_raku.txt
+++ b/runtime/doc/ft_raku.txt
@@ -45,7 +45,7 @@ Numbers, subscripts and superscripts are
 	1s ₁    1S ¹  ~
 	2s ₂    9S ⁹  ~
 
-But some don´t come defined by default. Those are digraph definitions you can
+But some don't come defined by default. Those are digraph definitions you can
 add in your ~/.vimrc file. >
 	exec 'digraph \\ '.char2nr('∖')
 	exec 'digraph \< '.char2nr('≼')
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -132,7 +132,7 @@ Advanced editing ~
 |windows.txt|	commands for using multiple windows and buffers
 |tabpage.txt|	commands for using multiple tab pages
 |spell.txt|	spell checking
-|diff.txt|	working with two to four versions of the same file
+|diff.txt|	working with two to eight versions of the same file
 |autocmd.txt|	automatically executing commands on an event
 |eval.txt|	expression evaluation, conditional commands
 |channel.txt|	Jobs, Channels, inter-process communication
@@ -145,6 +145,7 @@ Special issues ~
 |term.txt|	using different terminals and mice
 |terminal.txt|	Terminal window support
 |popup.txt|	popup window support
+|vim9.txt|	using Vim9 script
 
 Programming language support ~
 |indent.txt|	automatic indenting for C and other languages
@@ -153,6 +154,8 @@ Programming language support ~
 |filetype.txt|	settings done specifically for a type of file
 |quickfix.txt|	commands for a quick edit-compile-fix cycle
 |ft_ada.txt|	Ada (the programming language) support
+|ft_ps1.txt|	Filetype plugin for Windows PowerShell
+|ft_raku.txt|	Filetype plugin for Raku
 |ft_rust.txt|	Filetype plugin for Rust
 |ft_sql.txt|	about the SQL filetype plugin
 
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 8.2.  Last change: 2021 Mar 28
+*motion.txt*    For Vim version 8.2.  Last change: 2021 Jun 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -59,9 +59,14 @@ or change text.  The following operators
 	|<|	<	shift left
 	|zf|	zf	define a fold
 	|g@|	g@	call function set with the 'operatorfunc' option
-
+						*motion-count-multiplied*
 If the motion includes a count and the operator also had a count before it,
 the two counts are multiplied.  For example: "2d3w" deletes six words.
+						*operator-doubled*
+When doubling the operator it operates on a line.  When using a count, before
+or after the first character, that many lines are operated upon.  Thus `3dd`
+deletes three lines. A count before and after the first character is
+multiplied, thus `2y3y` yanks six lines.
 
 After applying the operator the cursor is mostly left at the start of the text
 that was operated upon.  For example, "yfe" doesn't move the cursor, but "yFe"
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2021 May 16
+*options.txt*	For Vim version 8.2.  Last change: 2021 May 31
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -767,12 +767,12 @@ 9. VMS related changes					*vms-changes*
 
 Version 8.2
 - make all changes needed for clean compile build of v8.2 on VMS on all platforms
-- fix the call mkdir bug (vicente_polo@yahoo.es) 
+- fix the call mkdir bug (vicente_polo@yahoo.es)
 - test on VSI OpenVMS Alpha and Itanium platforms
 - added LUA support
 - added XPM support - Motif GUI with toolbar on all platforms
-- XPM v3.4.11 libraries for IA64, AXP and VAX are added 
-- start integrating the new test scripts 
+- XPM v3.4.11 libraries for IA64, AXP and VAX are added
+- start integrating the new test scripts
 
 Version 8.1
 - make necessary changes to build v8.1 on VMS
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1217,7 +1217,7 @@ x	A single character, with no special me
 
 \%d123	Matches the character specified with a decimal number.  Must be
 	followed by a non-digit.
-\%o40	Matches the character specified with an octal number up to 0377.
+\%o40	Matches the character specified with an octal number up to 0o377.
 	Numbers below 0o40 must be followed by a non-octal digit or a
 	non-digit.
 \%x2a	Matches the character specified with up to two hexadecimal characters.
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -3809,7 +3809,7 @@ netrw:
 	  Decho.vim is provided as a "vimball"; see |vimball-intro|.  You
 	  should edit the Decho.vba.gz file and source it in: >
 
-	  	vim Decho.vba.gz
+		vim Decho.vba.gz
 		:so %
 		:q
 <
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.2.  Last change: 2021 May 08
+*repeat.txt*    For Vim version 8.2.  Last change: 2021 Jun 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -279,7 +279,9 @@ For writing a Vim script, see chapter 41
 			ftdetect scripts are loaded, only the matching
 			directories are added to 'runtimepath'.  This is
 			useful in your .vimrc.  The plugins will then be
-			loaded during initialization, see |load-plugins|.
+			loaded during initialization, see |load-plugins| (note
+			that the loading order will be reversed, because each
+			directory is inserted before others).
 			Note that for ftdetect scripts to be loaded
 			you will need to write `filetype plugin indent on`
 			AFTER all `packadd!` commands.
@@ -372,7 +374,7 @@ For writing a Vim script, see chapter 41
 			for some commands.
 			See |:vim9cmd| for executing one command with Vim9
 			syntax and semantics.
-			 
+
 						*:scr* *:scriptnames*
 :scr[iptnames]		List all sourced script names, in the order they were
 			first sourced.  The number is used for the script ID
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -3430,8 +3430,8 @@ syntax highlighting script handles this 
  Tex: Match Check Control~
 
 	Sometimes one actually wants mismatched parentheses, square braces,
-	and or curly braces; for example, \text{(1,10] is a range from but
-	not including 1 to and including 10}.  This wish, of course, conflicts
+	and or curly braces; for example, \text{(1,10]} is a range from but
+	not including 1 to and including 10.  This wish, of course, conflicts
 	with the desire to provide delimiter mismatch detection.  To
 	accommodate these conflicting goals, syntax/tex.vim provides >
 		g:tex_matchcheck = '[({[]'
@@ -4084,7 +4084,7 @@ match in the same position overrules an 
 argument makes the "myVim" match use the same highlighting as "myString".  But
 it does not contain anything.  If the "contains=NONE" argument would be left
 out, then "myVim" would use the contains argument from myString and allow
-"myWord" to be contained, which will be highlighted as a Constant.  This
+"myWord" to be contained, which will be highlighted as a Comment.  This
 happens because a contained match doesn't match inside itself in the same
 position, thus the "myVim" match doesn't overrule the "myWord" match here.
 
@@ -4970,8 +4970,8 @@ ctermul={color-nr}				*highlight-ctermul
 							*tmux*
 	When using tmux you may want to use this in the tmux config: >
 	    # tmux colors
-	    set -g default-terminal "xterm-256color"
-	    set -ag terminal-overrides ",xterm-256color:Tc"
+	    set -s default-terminal "tmux-256color"
+	    set -as terminal-overrides ",*-256color:Tc"
 <	More info at:
 	https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-a-256-colour-terminal
 	https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-rgb-colour
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7000,6 +7000,7 @@ getchar()	eval.txt	/*getchar()*
 getcharmod()	eval.txt	/*getcharmod()*
 getcharpos()	eval.txt	/*getcharpos()*
 getcharsearch()	eval.txt	/*getcharsearch()*
+getcharstr()	eval.txt	/*getcharstr()*
 getcmdline()	eval.txt	/*getcmdline()*
 getcmdpos()	eval.txt	/*getcmdpos()*
 getcmdtype()	eval.txt	/*getcmdtype()*
@@ -7901,6 +7902,7 @@ moo.vim	syntax.txt	/*moo.vim*
 more-compatible	version5.txt	/*more-compatible*
 more-prompt	message.txt	/*more-prompt*
 more-variables	eval.txt	/*more-variables*
+motion-count-multiplied	motion.txt	/*motion-count-multiplied*
 motion.txt	motion.txt	/*motion.txt*
 mouse-mode-table	term.txt	/*mouse-mode-table*
 mouse-overview	term.txt	/*mouse-overview*
@@ -8348,6 +8350,7 @@ omni-sql-completion	ft_sql.txt	/*omni-sq
 online-help	helphelp.txt	/*online-help*
 opening-window	windows.txt	/*opening-window*
 operator	motion.txt	/*operator*
+operator-doubled	motion.txt	/*operator-doubled*
 operator-pending-index	index.txt	/*operator-pending-index*
 operator-variable	eval.txt	/*operator-variable*
 option-backslash	options.txt	/*option-backslash*
@@ -8401,6 +8404,7 @@ page_up	intro.txt	/*page_up*
 pager	message.txt	/*pager*
 papp.vim	syntax.txt	/*papp.vim*
 paragraph	motion.txt	/*paragraph*
+partial	eval.txt	/*partial*
 pascal.vim	syntax.txt	/*pascal.vim*
 patches-8	version8.txt	/*patches-8*
 patches-8.1	version8.txt	/*patches-8.1*
@@ -10066,6 +10070,7 @@ v_u	change.txt	/*v_u*
 v_v	visual.txt	/*v_v*
 v_x	change.txt	/*v_x*
 v_y	change.txt	/*v_y*
+v_zy	change.txt	/*v_zy*
 v_~	change.txt	/*v_~*
 vab	motion.txt	/*vab*
 val-variable	eval.txt	/*val-variable*
@@ -10435,6 +10440,7 @@ zOS-PuTTY	os_390.txt	/*zOS-PuTTY*
 zOS-has-ebcdic	os_390.txt	/*zOS-has-ebcdic*
 zOS-limitations	os_390.txt	/*zOS-limitations*
 zOS-open-source	os_390.txt	/*zOS-open-source*
+zP	change.txt	/*zP*
 zR	fold.txt	/*zR*
 zW	spell.txt	/*zW*
 zX	fold.txt	/*zX*
@@ -10462,6 +10468,7 @@ zl	scroll.txt	/*zl*
 zm	fold.txt	/*zm*
 zn	fold.txt	/*zn*
 zo	fold.txt	/*zo*
+zp	change.txt	/*zp*
 zr	fold.txt	/*zr*
 zs	scroll.txt	/*zs*
 zsh.vim	syntax.txt	/*zsh.vim*
@@ -10473,6 +10480,7 @@ zuw	spell.txt	/*zuw*
 zv	fold.txt	/*zv*
 zw	spell.txt	/*zw*
 zx	fold.txt	/*zx*
+zy	change.txt	/*zy*
 zz	scroll.txt	/*zz*
 {	motion.txt	/*{*
 {Visual}	intro.txt	/*{Visual}*
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -373,9 +373,9 @@ Added by Vim (there are no standard code
 	t_Ri	restore icon text from stack			*t_Ri* *'t_Ri'*
 	t_TE	end of "raw" mode				*t_TE* *'t_TE'*
 	t_TI	put terminal into "raw" mode 			*t_TI* *'t_TI'*
-	t_fd	disable focus-event tracking 			*t_fd* *'t_fd'*
+	t_fe	enable focus-event tracking 			*t_fe* *'t_fe'*
 		|xterm-focus-event|
-	t_fe	enable focus-event tracking 			*t_fe* *'t_fe'*
+	t_fd	disable focus-event tracking 			*t_fd* *'t_fd'*
 		|xterm-focus-event|
 
 Some codes have a start, middle and end part.  The start and end are defined
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2021 May 28
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Jun 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,57 +38,30 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Geen memory leak?
-
-Crash using outer var from nested lambda:
-	vim9script
-	def F(text: string): func(string): func(string): string
-	  return (arg: string): func(string): string => ((sep: string): string => {
-	      return text .. ' ' .. arg
-	    })
-	enddef
-
-	echo F('hello')(' ')('there')
-
-
-
 Vim9 - Make everything work:
-- function returning nothing should return void instead of zero
-- compile "expr" and "call" expression of a channel in channel_exe_cmd()?
-- Need some solution for dict function.  Can we implement part of classes?
-- A lambda without {} does not require a return type, using { return x } does.
-  That's unexpected, since the arguments are not required to have a type.
-  alt 1: not require a return type, figure it out from the common type of all
-	  the return statements found
-  alt 2: also require argument types
-- Using "windo echo expr" does not accept a line break inside "expr" (in a
-  :def function and at script level in a not executed block). #7681
-- use CheckLegacyAndVim9Success(lines) in many more places
+- Make debugging work - at least per function.  
+  - How to evaluate the stack and variables on the stack?
+  - FIXME in test_debugger.vim
 - For builtin functions using tv_get_string*() use check_for_string() to be
   more strict about the argument type (not a bool).
     done: balloon_()
 - Check many more builtin function arguments at compile time.
     map() could check that the return type of the function argument matches
     the type of the list or dict member. (#8092)
-- Allow for using an autoload function name without quotes.  It is then loaded
-  (and compiled) right away.  #8124
-- Test more expressions in legacy and Vim9 script, using
-  CheckLegacyAndVim9Success()
+    Same for other functions, such as searchpair().
+- use CheckLegacyAndVim9Success(lines) in many more places
 - Test try/catch and throw better, also nested.
   Test that return inside try/finally jumps to finally and then returns.
 - Test that a function defined inside a :def function is local to that
   function, g: functions can be defined and script-local functions cannot be
   defined.
-- Make debugging work - at least per function.  Need to recompile a function
-  to step through it line-by-line?  Evaluate the stack and variables on the
-  stack?
-- Reserve command for future use: :type, :class, :enum
+- compile get_lambda_tv() in popup_add_timeout()
 
 Once Vim9 is stable:
+- Add the "vim9script" feature, can use has('vim9script')
 - Change the help to prefer Vim9 syntax where appropriate
 - Add all the error numbers in a good place in documentation.
 - In the generic eval docs, point out the Vim9 syntax where it differs.
-- Add the "vim9script" feature, can use has('vim9script')
 - Use Vim9 for runtime files.
     PR #7497 for autoload/ccomplete.vim
 
@@ -100,13 +73,12 @@ Further Vim9 improvements, possibly afte
   Give an error if compilation fails. (#7625)
   Use the location where the option was set for deciding whether it's to be
   evaluated in Vim9 script context.
-- implement :type, import type declaration.
-- implement enum,  import enum.
-- Future work: See |vim9-classes|
+- implement :type, "import type"
+- implement enum,  "import enum".
+- implement class and interface: See |vim9-classes|
 - For range: make table of first ASCII character with flag to quickly check if
   it can be a Vim9 command. E.g. "+" can, but "." can't.
-- compile get_lambda_tv() in popup_add_timeout()
-- inline call to map() and filter()
+- Inline call to map() and filter(), better type checking.
 - Make accessing varargs faster: arg[expr]
 	EVAL expr
 	LOADVARARG (varargs idx)
@@ -300,6 +272,9 @@ inconsistent with the documentation.
 Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
 Scroll doesn't work correctly, why?
 
+glob() and globfile() do not always honor 'wildignorecase'. #8350
+globpath() does not use 'wildignorecase' at all?
+
 Add 'termguiattr' option, use "gui=" attributes in the terminal?  Would work
 with 'termguicolors'. #1740
 
@@ -344,6 +319,9 @@ Should also work without any group:
     :echo matchstr('aaa bbb', '.\{-1,}\>\|.*')
     aaa bbb  (should be aaa)
 
+Should add a match/str/list/pos method that also returns the test and position
+of submatches.  #8355
+
 Check out PR #543 (Roland Puntaier).
 Patch for multibyte characters in langmap and applying a mapping on them.
 (Christian Brabandt, 2015 Jun 12, update July 25)
@@ -380,6 +358,10 @@ work.
 Using "au!" after "filetype on" is a bit slow.  Can the matching of
 autocommands be made faster?  (#7056)
 
+Append in Visual block mode inserts the wrong character.
+Test_visual_block_mode() already has the proper check, which is commented out.
+(#8288)
+
 Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
     replace this:
 	let left = GetLeftFunc()
@@ -2263,9 +2245,6 @@ Win32: Improved Makefile for MSVC. (Leon
 
 Win32: Expanding 'path' runs into a maximum size limit. (bgold12, 2009 Nov 15)
 
-Win32: Patch for enabling quick edit mode in console. (Craig Barkhouse, 2010
-Sep 1)
-
 Win32: Patch for using .png files for icons. (Charles Peacech, 2012 Feb 5)
 
 Putting a Visual block while 'visualedit' is "all" does not leave the cursor
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.2.  Last change: 2021 Apr 19
+*usr_41.txt*	For Vim version 8.2.  Last change: 2021 Jun 07
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -724,7 +724,7 @@ K			Run a program to lookup the keyword 
 			feature}
 
 							*:sl!* *:sleep!*
-:[N]sl[eep]! [N] [m]	Same as above, but hide the cursor.
+:[N]sl[eep]! [N][m]	Same as above, but hide the cursor.
 
 							*:xrestore* *:xr*
 :xr[estore] [display]	Reinitializes the connection to the X11 server. Useful
--- a/runtime/doc/vim.1
+++ b/runtime/doc/vim.1
@@ -186,7 +186,7 @@ behave mostly like Vi, even though a .vi
 .TP
 \-d
 Start in diff mode.
-There should be two, three or four file name arguments.
+There should between two to eight file name arguments.
 .B Vim
 will open all the files and show differences between them.
 Works like vimdiff(1).
--- a/runtime/doc/vim.man
+++ b/runtime/doc/vim.man
@@ -135,9 +135,9 @@ OPTIONS
                    Vim behave mostly like Vi, even though a  .vimrc  file  ex‐
                    ists.
 
-       -d          Start  in  diff  mode.   There should be two, three or four
-                   file name arguments.  Vim will open all the files and  show
-                   differences between them.  Works like vimdiff(1).
+       -d          Start in diff mode.  There should between two to eight file
+                   name arguments.  Vim will open all the files and show  dif‐
+                   ferences between them.  Works like vimdiff(1).
 
        -d {device} Open  {device}  for  use as a terminal.  Only on the Amiga.
                    Example: "-d con:20/30/600/150".
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -457,7 +457,8 @@ which is similar to JavaScript: >
 	var Lambda = (arg) => expression
 
 No line break is allowed in the arguments of a lambda up to and including the
-"=>".  This is OK: >
+"=>" (so that Vim can tell the difference between an expression in parenthesis
+and lambda arguments).  This is OK: >
 	filter(list, (k, v) =>
 			v > 0)
 This does not work: >
@@ -998,9 +999,14 @@ prefix if they do not exist at the time 
 			Note that for command line completion of {func} you
 			can prepend "s:" to find script-local functions.
 
-:disa[ssemble]! {func}	Like `:disassemble` but with the instructions used for
+:disa[ssemble] profile {func}
+			Like `:disassemble` but with the instructions used for
 			profiling.
 
+:disa[ssemble] debug {func}
+			Like `:disassemble` but with the instructions used for
+			debugging.
+
 Limitations ~
 
 Local variables will not be visible to string evaluation.  For example: >
--- a/runtime/doc/vimdiff.1
+++ b/runtime/doc/vimdiff.1
@@ -1,17 +1,17 @@
 .TH VIMDIFF 1 "2001 March 30"
 .SH NAME
-vimdiff \- edit two, three or four versions of a file with Vim and show differences
+vimdiff \- edit between two and eight versions of a file with Vim and show differences
 .SH SYNOPSIS
 .br
 .B vimdiff
-[options] file1 file2 [file3 [file4]]
+[options] file1 file2 [file3 [file4 [file5 [file6 [file7 [file8]]]]]]
 .PP
 .B gvimdiff
 .SH DESCRIPTION
 .B Vimdiff
 starts
 .B Vim
-on two (or three or four) files.
+on two up to eight files.
 Each file gets its own window.
 The differences between the files are highlighted.
 This is a nice way to inspect changes and to move changes from one version
--- a/runtime/doc/vimdiff.man
+++ b/runtime/doc/vimdiff.man
@@ -1,27 +1,28 @@
-VIMDIFF(1)                                                          VIMDIFF(1)
+VIMDIFF(1)                  General Commands Manual                 VIMDIFF(1)
 
 
 
 NAME
-       vimdiff  - edit two, three or four versions of a file with Vim and show
-       differences
+       vimdiff  -  edit  between two and eight versions of a file with Vim and
+       show differences
 
 SYNOPSIS
-       vimdiff [options] file1 file2 [file3 [file4]]
+       vimdiff [options]  file1  file2  [file3  [file4  [file5  [file6  [file7
+       [file8]]]]]]
 
        gvimdiff
 
 DESCRIPTION
-       Vimdiff starts Vim on two (or three or four) files.  Each file gets its
-       own  window.   The differences between the files are highlighted.  This
-       is a nice way to inspect changes and to move changes from  one  version
-       to another version of the same file.
+       Vimdiff  starts  Vim  on two up to eight files.  Each file gets its own
+       window.  The differences between the files are highlighted.  This is  a
+       nice way to inspect changes and to move changes from one version to an‐
+       other version of the same file.
 
        See vim(1) for details about Vim itself.
 
        When started as gvimdiff the GUI will be started, if available.
 
-       In  each window the 'diff' option will be set, which causes the differ-
+       In each window the 'diff' option will be set, which causes the  differ‐
        ences to be highlighted.
        The 'wrap' and 'scrollbind' options are set to make the text look good.
        The  'foldmethod'  option  is set to "diff", which puts ranges of lines
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2021 Apr 17
+" Last Change:	2021 Jun 13
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
--- a/runtime/gvim.desktop
+++ b/runtime/gvim.desktop
@@ -112,6 +112,7 @@ Icon[de]=gvim
 Icon[eo]=gvim
 Icon[fr]=gvim
 Icon[ru]=gvim
+Icon[sr]=gvim
 Icon=gvim
 Categories=Utility;TextEditor;
 StartupNotify=true
--- a/runtime/indent/html.vim
+++ b/runtime/indent/html.vim
@@ -1,7 +1,7 @@
 " Vim indent script for HTML
 " Maintainer:	Bram Moolenaar
 " Original Author: Andy Wokula <anwoku@yahoo.de>
-" Last Change:	2021 Jan 26
+" Last Change:	2021 Jun 13
 " Version:	1.0 "{{{
 " Description:	HTML indent script with cached state for faster indenting on a
 "		range of lines.
@@ -62,7 +62,7 @@ let s:tagname = '\w\+\(-\w\+\)*'
 " Prefer using buffer-local settings over global settings, so that there can
 " be defaults for all HTML files and exceptions for specific types of HTML
 " files.
-func! HtmlIndent_CheckUserSettings()
+func HtmlIndent_CheckUserSettings()
   "{{{
   let inctags = ''
   if exists("b:html_indent_inctags")
@@ -178,7 +178,7 @@ let s:endtags = [0,0,0,0,0,0,0]   " long
 "}}}
 
 " Add a list of tag names for a pair of <tag> </tag> to "tags".
-func! s:AddITags(tags, taglist)
+func s:AddITags(tags, taglist)
   "{{{
   for itag in a:taglist
     let a:tags[itag] = 1
@@ -187,7 +187,7 @@ func! s:AddITags(tags, taglist)
 endfunc "}}}
 
 " Take a list of tag name pairs that are not to be used as tag pairs.
-func! s:RemoveITags(tags, taglist)
+func s:RemoveITags(tags, taglist)
   "{{{
   for itag in a:taglist
     let a:tags[itag] = 1
@@ -196,7 +196,7 @@ func! s:RemoveITags(tags, taglist)
 endfunc "}}}
 
 " Add a block tag, that is a tag with a different kind of indenting.
-func! s:AddBlockTag(tag, id, ...)
+func s:AddBlockTag(tag, id, ...)
   "{{{
   if !(a:id >= 2 && a:id < len(s:endtags))
     echoerr 'AddBlockTag ' . a:id
@@ -255,7 +255,7 @@ call s:AddBlockTag('<!--[', 6, '![endif]
 " Return non-zero when "tagname" is an opening tag, not being a block tag, for
 " which there should be a closing tag.  Can be used by scripts that include
 " HTML indenting.
-func! HtmlIndent_IsOpenTag(tagname)
+func HtmlIndent_IsOpenTag(tagname)
   "{{{
   if get(s:indent_tags, a:tagname) == 1
     return 1
@@ -264,7 +264,7 @@ func! HtmlIndent_IsOpenTag(tagname)
 endfunc "}}}
 
 " Get the value for "tagname", taking care of buffer-local tags.
-func! s:get_tag(tagname)
+func s:get_tag(tagname)
   "{{{
   let i = get(s:indent_tags, a:tagname)
   if (i == 1 || i == -1) && get(b:hi_removed_tags, a:tagname) != 0
@@ -277,7 +277,7 @@ func! s:get_tag(tagname)
 endfunc "}}}
 
 " Count the number of start and end tags in "text".
-func! s:CountITags(text)
+func s:CountITags(text)
   "{{{
   " Store the result in s:curind and s:nextrel.
   let s:curind = 0  " relative indent steps for current line [unit &sw]:
@@ -289,7 +289,7 @@ func! s:CountITags(text)
 endfunc "}}}
 
 " Count the number of start and end tags in text.
-func! s:CountTagsAndState(text)
+func s:CountTagsAndState(text)
   "{{{
   " Store the result in s:curind and s:nextrel.  Update b:hi_newstate.block.
   let s:curind = 0  " relative indent steps for current line [unit &sw]:
@@ -304,7 +304,7 @@ func! s:CountTagsAndState(text)
 endfunc "}}}
 
 " Used by s:CountITags() and s:CountTagsAndState().
-func! s:CheckTag(itag)
+func s:CheckTag(itag)
   "{{{
   " Returns an empty string or "SCRIPT".
   " a:itag can be "tag" or "/tag" or "<!--" or "-->"
@@ -338,7 +338,7 @@ func! s:CheckTag(itag)
 endfunc "}}}
 
 " Used by s:CheckTag(). Returns an empty string or "SCRIPT".
-func! s:CheckBlockTag(blocktag, ind)
+func s:CheckBlockTag(blocktag, ind)
   "{{{
   if a:ind > 0
     " a block starts here
@@ -366,7 +366,7 @@ func! s:CheckBlockTag(blocktag, ind)
 endfunc "}}}
 
 " Used by s:CheckTag().
-func! s:CheckCustomTag(ctag)
+func s:CheckCustomTag(ctag)
   "{{{
   " Returns 1 if ctag is the tag for a custom element, 0 otherwise.
   " a:ctag can be "tag" or "/tag" or "<!--" or "-->"
@@ -396,7 +396,7 @@ func! s:CheckCustomTag(ctag)
 endfunc "}}}
 
 " Return the <script> type: either "javascript" or ""
-func! s:GetScriptType(str)
+func s:GetScriptType(str)
   "{{{
   if a:str == "" || a:str =~ "java"
     return "javascript"
@@ -407,7 +407,7 @@ endfunc "}}}
 
 " Look back in the file, starting at a:lnum - 1, to compute a state for the
 " start of line a:lnum.  Return the new state.
-func! s:FreshState(lnum)
+func s:FreshState(lnum)
   "{{{
   " A state is to know ALL relevant details about the
   " lines 1..a:lnum-1, initial calculating (here!) can be slow, but updating is
@@ -568,24 +568,29 @@ func! s:FreshState(lnum)
 endfunc "}}}
 
 " Indent inside a <pre> block: Keep indent as-is.
-func! s:Alien2()
+func s:Alien2()
   "{{{
   return -1
 endfunc "}}}
 
 " Return the indent inside a <script> block for javascript.
-func! s:Alien3()
+func s:Alien3()
   "{{{
   let lnum = prevnonblank(v:lnum - 1)
   while lnum > 1 && getline(lnum) =~ '^\s*/[/*]'
     " Skip over comments to avoid that cindent() aligns with the <script> tag
     let lnum = prevnonblank(lnum - 1)
   endwhile
+  if lnum < b:hi_indent.blocklnr
+    " indent for <script> itself
+    return b:hi_indent.blocktagind
+  endif
   if lnum == b:hi_indent.blocklnr
     " indent for the first line after <script>
     return eval(b:hi_js1indent)
   endif
   if b:hi_indent.scripttype == "javascript"
+    " indent for further lines
     return eval(b:hi_js1indent) + GetJavascriptIndent()
   else
     return -1
@@ -593,7 +598,7 @@ func! s:Alien3()
 endfunc "}}}
 
 " Return the indent inside a <style> block.
-func! s:Alien4()
+func s:Alien4()
   "{{{
   if prevnonblank(v:lnum-1) == b:hi_indent.blocklnr
     " indent for first content line
@@ -603,7 +608,7 @@ func! s:Alien4()
 endfunc "}}}
 
 " Indending inside a <style> block.  Returns the indent.
-func! s:CSSIndent()
+func s:CSSIndent()
   "{{{
   " This handles standard CSS and also Closure stylesheets where special lines
   " start with @.
@@ -720,13 +725,13 @@ endfunc "}}}
 " 	tag: blah
 " 	tag: blah &&
 " 	tag: blah ||
-func! s:CssUnfinished(text)
+func s:CssUnfinished(text)
   "{{{
   return a:text =~ '\(||\|&&\|:\|\k\)\s*$'
 endfunc "}}}
 
 " Search back for the first unfinished line above "lnum".
-func! s:CssFirstUnfinished(lnum, min_lnum)
+func s:CssFirstUnfinished(lnum, min_lnum)
   "{{{
   let align_lnum = a:lnum
   while align_lnum > a:min_lnum && s:CssUnfinished(getline(align_lnum - 1))
@@ -736,7 +741,7 @@ func! s:CssFirstUnfinished(lnum, min_lnu
 endfunc "}}}
 
 " Find the non-empty line at or before "lnum" that is not a comment.
-func! s:CssPrevNonComment(lnum, stopline)
+func s:CssPrevNonComment(lnum, stopline)
   "{{{
   " caller starts from a line a:lnum + 1 that is not a comment
   let lnum = prevnonblank(a:lnum)
@@ -761,7 +766,7 @@ func! s:CssPrevNonComment(lnum, stopline
 endfunc "}}}
 
 " Check the number of {} and () in line "lnum". Return a dict with the counts.
-func! HtmlIndent_CountBraces(lnum)
+func HtmlIndent_CountBraces(lnum)
   "{{{
   let brs = substitute(getline(a:lnum), '[''"].\{-}[''"]\|/\*.\{-}\*/\|/\*.*$\|[^{}()]', '', 'g')
   let c_open = 0
@@ -794,7 +799,7 @@ func! HtmlIndent_CountBraces(lnum)
 endfunc "}}}
 
 " Return the indent for a comment: <!-- -->
-func! s:Alien5()
+func s:Alien5()
   "{{{
   let curtext = getline(v:lnum)
   if curtext =~ '^\s*\zs-->'
@@ -826,7 +831,7 @@ func! s:Alien5()
 endfunc "}}}
 
 " Return the indent for conditional comment: <!--[ ![endif]-->
-func! s:Alien6()
+func s:Alien6()
   "{{{
   let curtext = getline(v:lnum)
   if curtext =~ '\s*\zs<!\[endif\]-->'
@@ -840,7 +845,7 @@ func! s:Alien6()
 endfunc "}}}
 
 " When the "lnum" line ends in ">" find the line containing the matching "<".
-func! HtmlIndent_FindTagStart(lnum)
+func HtmlIndent_FindTagStart(lnum)
   "{{{
   " Avoids using the indent of a continuation line.
   " Moves the cursor.
@@ -863,7 +868,7 @@ func! HtmlIndent_FindTagStart(lnum)
 endfunc "}}}
 
 " Find the unclosed start tag from the current cursor position.
-func! HtmlIndent_FindStartTag()
+func HtmlIndent_FindStartTag()
   "{{{
   " The cursor must be on or before a closing tag.
   " If found, positions the cursor at the match and returns the line number.
@@ -877,7 +882,7 @@ func! HtmlIndent_FindStartTag()
 endfunc "}}}
 
 " Moves the cursor from a "<" to the matching ">".
-func! HtmlIndent_FindTagEnd()
+func HtmlIndent_FindTagEnd()
   "{{{
   " Call this with the cursor on the "<" of a start tag.
   " This will move the cursor to the ">" of the matching end tag or, when it's
@@ -897,7 +902,7 @@ func! HtmlIndent_FindTagEnd()
 endfunc "}}}
 
 " Indenting inside a start tag. Return the correct indent or -1 if unknown.
-func! s:InsideTag(foundHtmlString)
+func s:InsideTag(foundHtmlString)
   "{{{
   if a:foundHtmlString
     " Inside an attribute string.
@@ -958,7 +963,7 @@ func! s:InsideTag(foundHtmlString)
 endfunc "}}}
 
 " THE MAIN INDENT FUNCTION. Return the amount of indent for v:lnum.
-func! HtmlIndent()
+func HtmlIndent()
   "{{{
   if prevnonblank(v:lnum - 1) < 1
     " First non-blank line has no indent.
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/gvpr.vim
@@ -0,0 +1,85 @@
+" Vim syntax file
+" Language: Graphviz program
+" Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com>
+" Last Change: Tue, 28 Jul 2020 17:20:44 -0700
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword gvArg  ARGC ARGV
+syn keyword gvBeg  BEGIN BEG_G N E END END_G
+syn keyword gvFunc
+  \ graph fstsubg isDirect isStrict isSubg nEdges nNodes nxtsubg subg
+  \ degreeOf fstnode indegreeOf isNode isSubnode node nxtnode nxtnode_sg
+    \ outDegreeOf subnode
+  \ edge edge_sg fstedge fstedge_sg fstin fstin_sg fstout fstout_sg isEdge
+    \ isEdge_sg isSubedge nxtedge nxtedge_sg nxtin nxtin_sg nxtout nxtout_sg opp
+    \ subedge
+  \ freadG fwriteG readG write[] writeG
+  \ aget aset clone cloneG compOf copy[] copyA delete[] fstAttr getDflt hasAttr
+    \ induce isAttr isIn kindOf lock[] nxtAttr setDflt
+  \ canon gsub html index ishtml length llOf match[] rindex split[] sprintf
+    \ sscanf strcmp sub substr tokens tolower toupper urOf xOf yOf
+  \ closeF openF print[] printf scanf readL
+  \ atan2 cos exp log MAX MIN pow sin[] sqrt
+  \ in[] unset
+  \ colorx exit[] rand srand system
+syn keyword gvCons
+  \ NULL TV_bfs TV_dfs TV_en TV_flat TV_fwd TV_ne TV_prepostdfs TV_prepostfwd
+  \ TV_prepostrev TV_postdfs TV_postfwd tv_postrev TV_rev
+syn keyword gvType char double float int long unsigned void
+                 \ string
+                 \ edge_t graph_t node_t obj_t
+syn match   gvVar 
+  \ "\$\(\(F\|G\|NG\|O\|T\|tgtname\|tvedge\|tvnext\|tvroot\|tvtype\)\>\)\?\(\<\)\@!"
+syn keyword gvWord break continue else for forr if return switch while
+
+" numbers adapted from c.vim's cNumbers and friends
+syn match gvNums      transparent "\<\d\|\.\d" contains=gvNumber,gvFloat,gvOctal
+syn match gvNumber    contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
+syn match gvNumber    contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
+syn match gvOctal     contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=gvOctalZero
+syn match gvOctalZero contained "\<0"
+syn match gvFloat     contained "\d\+f"
+syn match gvFloat     contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
+syn match gvFloat     contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+syn match gvFloat     contained "\d\+e[-+]\=\d\+[fl]\=\>"
+
+syn region gvString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gvFormat,gvSpecial extend
+syn region gvString start="'" skip="\\\\\|\\'" end="'" contains=gvFormat,gvSpecial extend
+
+" adapted from c.vim's cFormat for c_no_c99
+syn match gvFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
+
+syn match gvSpecial "\\." contained
+
+syn region gvCComment   start="//"  skip="\\$" end="$" keepend
+syn region gvCPPComment start="#"   skip="\\$" end="$" keepend
+syn region gvCXXComment start="/\*" end="\*/" fold
+
+hi def link gvArg        Identifier
+hi def link gvBeg        Keyword
+hi def link gvFloat      Number
+hi def link gvFunc       Identifier
+hi def link gvCons       Number
+hi def link gvNumber     Number
+hi def link gvType       Type
+hi def link gvVar        Statement
+hi def link gvWord       Keyword
+
+hi def link gvString     String
+hi def link gvFormat     Special
+hi def link gvSpecial    Special
+
+hi def link gvCComment   Comment
+hi def link gvCPPComment Comment
+hi def link gvCXXComment Comment
+
+let b:current_syntax = "gvpr"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
--- a/runtime/vim.desktop
+++ b/runtime/vim.desktop
@@ -112,6 +112,7 @@ Icon[de]=gvim
 Icon[eo]=gvim
 Icon[fr]=gvim
 Icon[ru]=gvim
+Icon[sr]=gvim
 Icon=gvim
 Categories=Utility;TextEditor;
 StartupNotify=false
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -284,7 +284,8 @@ open the window from the start menu, MSY
 Execute:
     $ pacman -Syu
 
-And restart MSYS2 console (select "MSYS2 MSYS" icon from the Start Menu).
+And restart MSYS2 console (select "MSYS2 MSYS 32-Bit" icon from the Start
+Menu for building 32 bit Vim, otherwise select "MSYS2 MinGW 64-Bit").
 Then execute:
     $ pacman -Su
 
--- a/src/po/sr.po
+++ b/src/po/sr.po
@@ -2,7 +2,7 @@
 #
 # Do ":help uganda"  in Vim to read copying and usage conditions.
 # Do ":help credits" in Vim to see a list of people who contributed.
-# Copyright (C) 2017
+# Copyright (C) 2021
 # This file is distributed under the same license as the Vim package.
 # FIRST AUTHOR Ivan Pešić <ivan.pesic@gmail.com>, 2017.
 #
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim(Serbian)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-14 01:49+0400\n"
-"PO-Revision-Date: 2021-02-14 01:54+0400\n"
+"POT-Creation-Date: 2021-06-13 13:16+0400\n"
+"PO-Revision-Date: 2021-06-13 13:50+0400\n"
 "Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
 "Language-Team: Serbian\n"
 "Language: sr\n"
@@ -97,6 +97,9 @@ msgstr "Извршавање %s"
 msgid "autocommand %s"
 msgstr "аутокоманда %s"
 
+msgid "E972: Blob value does not have the right number of bytes"
+msgstr "E972: Блоб вредност нема одговарајући број бајтова"
+
 msgid "E831: bf_key_init() called with empty password"
 msgstr "E831: bf_key_init() је позвана са празном лозинком"
 
@@ -731,9 +734,6 @@ msgstr "E708: [:] мора да буде последња"
 msgid "E709: [:] requires a List or Blob value"
 msgstr "E709: [:] захтева вредност типа Листа или Блоб"
 
-msgid "E972: Blob value does not have the right number of bytes"
-msgstr "E972: Блоб вредност нема одговарајући број бајтова"
-
 msgid "E996: Cannot lock a range"
 msgstr "E996: Опсег не може да се закључа"
 
@@ -763,9 +763,6 @@ msgstr ""
 "\n"
 "\tПоследње постављено из "
 
-msgid "E808: Number or Float required"
-msgstr "E808: Захтева се Број или Покретни"
-
 #, c-format
 msgid "E158: Invalid buffer name: %s"
 msgstr "E158: Неисправно име бафера: %s"
@@ -932,6 +929,10 @@ msgstr "E135: *Филтер* Аутокоманде не смеју да мењају текући бафер"
 msgid "[No write since last change]\n"
 msgstr "[Нема уписа од последње промене]\n"
 
+#, c-format
+msgid "E503: \"%s\" is not a file or writable device"
+msgstr "E503: „%s” није фајл или уређај на који може да се уписује"
+
 msgid "Save As"
 msgstr "Сачувај као"
 
@@ -1594,6 +1595,9 @@ msgstr "E446: Под курсором се не налази име фајла"
 msgid "E447: Can't find file \"%s\" in path"
 msgstr "E447: Фајл \"%s\" не може да се пронађе у путањи"
 
+msgid "E808: Number or Float required"
+msgstr "E808: Захтева се Број или Покретни"
+
 msgid "E490: No fold found"
 msgstr "E490: Није пронађен ниједан свијутак"
 
@@ -4069,12 +4073,12 @@ msgstr "E531: Користите \":gui\" да покренете ГКИ"
 msgid "E589: 'backupext' and 'patchmode' are equal"
 msgstr "E589: 'backupext' и 'patchmode' су истоветни"
 
+msgid "E835: Conflicts with value of 'fillchars'"
+msgstr "E835: У конфликту са вредношћу 'fillchars'"
+
 msgid "E834: Conflicts with value of 'listchars'"
 msgstr "E834: У конфликту са вредношћу 'listchars'"
 
-msgid "E835: Conflicts with value of 'fillchars'"
-msgstr "E835: У конфликту са вредношћу 'fillchars'"
-
 msgid "E617: Cannot be changed in the GTK+ 2 GUI"
 msgstr "E617: Не може да се промени у GTK+ 2 ГКИ"
 
@@ -4513,7 +4517,7 @@ msgstr "E554: Синтаксна грешка у %s{...}"
 
 #, c-format
 msgid "E888: (NFA regexp) cannot repeat %s"
-msgstr "E888: (НКА регизраз) не може да се понови %s"
+msgstr "E888: (НКА регуларни израз) не може да се понови %s"
 
 msgid ""
 "E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
@@ -4579,15 +4583,15 @@ msgid "External submatches:\n"
 msgstr "Спољна подподударања:\n"
 
 msgid "E865: (NFA) Regexp end encountered prematurely"
-msgstr "E865: (НКА) прерано је достигнут крај регизраза"
+msgstr "E865: (НКА) прерано је достигнут крај регуларног израза"
 
 #, c-format
 msgid "E866: (NFA regexp) Misplaced %c"
-msgstr "E866: (НКА регизраз) %c је на погрешном месту"
+msgstr "E866: (НКА регуларни израз) %c је на погрешном месту"
 
 #, c-format
 msgid "E877: (NFA regexp) Invalid character class: %d"
-msgstr "E877: (НКА регизраз) Неважећа карактер класа: %d"
+msgstr "E877: (НКА регуларни израз) Неважећа карактер класа: %d"
 
 msgid "E951: \\% value too large"
 msgstr "E951: Вредност \\% је предугачка"
@@ -4608,19 +4612,19 @@ msgid "E869: (NFA) Unknown operator '\\@
 msgstr "E869: (НКА) Непознати оператор '\\@%c'"
 
 msgid "E870: (NFA regexp) Error reading repetition limits"
-msgstr "E870: (НКА регизраз) Грешка при читању граница понављања"
+msgstr "E870: (НКА регуларни израз) Грешка при читању граница понављања"
 
 msgid "E871: (NFA regexp) Can't have a multi follow a multi"
-msgstr "E871: (НКА регизраз) Мулти не може следи иза мулти"
+msgstr "E871: (НКА регуларни израз) Мулти не може следи иза мулти"
 
 msgid "E872: (NFA regexp) Too many '('"
-msgstr "E872: (НКА регизраз) Превише '('"
+msgstr "E872: (НКА регуларни израз) Превише '('"
 
 msgid "E879: (NFA regexp) Too many \\z("
-msgstr "E879: (НКА регизраз) Превише \\z("
+msgstr "E879: (НКА регуларни израз) Превише \\z("
 
 msgid "E873: (NFA regexp) proper termination error"
-msgstr "E873: (НКА регизраз) грешка правилне терминације"
+msgstr "E873: (НКА регуларни израз) грешка правилне терминације"
 
 msgid "Could not open temporary log file for writing, displaying on stderr... "
 msgstr ""
@@ -4634,12 +4638,12 @@ msgid ""
 "E875: (NFA regexp) (While converting from postfix to NFA), too many states "
 "left on stack"
 msgstr ""
-"E875: (НКА регизраз) (Док је вршена конверзија из постфикног облика у НКА), "
+"E875: (НКА регуларни израз) (Док је вршена конверзија из постфикног облика у НКА), "
 "превише стања је остало на стеку"
 
 msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
 msgstr ""
-"E876: (НКА регизраз) Нема довољно простора да се ускладишти комплетан НКА "
+"E876: (НКА регуларни израз) Нема довољно простора да се ускладишти комплетан НКА "
 
 msgid "E878: (NFA) Could not allocate memory for branch traversal!"
 msgstr "E878: (НКА) Није могла да се алоцира меморија за обилазак грана!"
@@ -6027,6 +6031,13 @@ msgstr "E853: Име аргумента је дуплирано: %s"
 msgid "E989: Non-default argument follows default argument"
 msgstr "E989: Неподразумевани аргумент следи иза подразумеваног аргумента"
 
+msgid "E126: Missing :endfunction"
+msgstr "E126: Недостаје :endfunction"
+
+#, c-format
+msgid "W22: Text found after :endfunction: %s"
+msgstr "W22: Пронађен текст након :endfunction: %s"
+
 #, c-format
 msgid "E451: Expected }: %s"
 msgstr "E451: Очекује се }: %s"
@@ -6102,17 +6113,6 @@ msgstr "E862: Овде не може да се користи g:"
 msgid "E932: Closure function should not be at top level: %s"
 msgstr "E932: Затварајућа функција не би требало да буде на највишем нивоу: %s"
 
-msgid "E126: Missing :endfunction"
-msgstr "E126: Недостаје :endfunction"
-
-#, c-format
-msgid "W1001: Text found after :enddef: %s"
-msgstr "W1001: Пронађен је текст након :enddef: %s"
-
-#, c-format
-msgid "W22: Text found after :endfunction: %s"
-msgstr "W22: Пронађен текст након :endfunction: %s"
-
 #, c-format
 msgid "E707: Function name conflicts with variable: %s"
 msgstr "E707: Име функције је у конфликту са променљивом: %s"
@@ -6635,25 +6635,25 @@ msgid "E366: Not allowed to enter a popu
 msgstr "E366: Није дозвољено да се уђе у искачући прозор"
 
 msgid "Edit with &multiple Vims"
-msgstr "Уређуј са &више Vim-ова"
+msgstr "Уређуј са &више Vim програма"
 
 msgid "Edit with single &Vim"
-msgstr "Уређуј са једним &Vim-ом"
+msgstr "Уређуј са једним програмом &Vim"
 
 msgid "Diff with Vim"
-msgstr "Diff са Vim"
+msgstr "Diff са програмом Vim"
 
 msgid "Edit with &Vim"
-msgstr "Уређуј са &Vim-ом"
+msgstr "Уређуј са програмом &Vim"
 
 msgid "Edit with existing Vim"
-msgstr "Уређуј са постојећим Vim-ом"
+msgstr "Уређуј са постојећим програмом Vim"
 
 msgid "Edit with existing Vim - "
-msgstr "Уређуј са постојећим Vim - "
+msgstr "Уређуј са постојећим програмом Vim - "
 
 msgid "Edits the selected file(s) with Vim"
-msgstr "Уређује селектован(е) фајл(ове) са Vim-ом"
+msgstr "Уређује селектован(е) фајл(ове) програмом Vim"
 
 msgid "Error creating process: Check if gvim is in your path!"
 msgstr ""
@@ -6699,6 +6699,10 @@ msgstr ""
 "E856: \"assert_fails()\" други аргумент мора бити стринг или листа са једним "
 "или два стринга"
 
+#, c-format
+msgid "E908: using an invalid value as a String: %s"
+msgstr "E908: Користи се неважећа вредност као Стринг: %s"
+
 msgid "E909: Cannot index a special variable"
 msgstr "E909: Специјална променљива не може да се индексира"
 
@@ -7188,8 +7192,8 @@ msgid "E1143: Empty expression: \"%s\""
 msgstr "E1143: Празан израз: \"%s\""
 
 #, c-format
-msgid "E1144: Command is not followed by white space: %s"
-msgstr "E1144: Иза команде се не налази празан простор: %s"
+msgid "E1144: Command \"%s\" is not followed by white space: %s"
+msgstr "E1144: Иза команде „%s” се не налази празан простор: %s"
 
 #, c-format
 msgid "E1145: Missing heredoc end marker: %s"
@@ -7242,7 +7246,8 @@ msgid "E1159: Cannot split a window when
 msgstr "E1159: Прозор не може да се подели када се затвара бафер"
 
 msgid "E1160: Cannot use a default for variable arguments"
-msgstr "E1160: За аргументе променљиве не може да се користи подразумевана вредност"
+msgstr ""
+"E1160: За аргументе променљиве не може да се користи подразумевана вредност"
 
 #, c-format
 msgid "E1161: Cannot json encode a %s"
@@ -7254,7 +7259,116 @@ msgstr "E1162: Име регистра мора бити један карактер: %s"
 
 #, c-format
 msgid "E1163: Variable %d: type mismatch, expected %s but got %s"
-msgstr "E1163: Променљива %d: неодговарајући тип, очекује се %s али је наведено %s"
+msgstr ""
+"E1163: Променљива %d: неодговарајући тип, очекује се %s али је наведено %s"
+
+msgid "E1164: vim9cmd must be followed by a command"
+msgstr "E1164: Иза vim9cmd мора да следи команда"
+
+#, c-format
+msgid "E1165: Cannot use a range with an assignment: %s"
+msgstr "E1165: Опсег не може да се користи са доделом: %s"
+
+msgid "E1166: Cannot use a range with a dictionary"
+msgstr "E1166: Опсег не може да се користи са речником"
+
+#, c-format
+msgid "E1167: Argument name shadows existing variable: %s"
+msgstr "E1167: Име аргумента заклања постојећу променљиву: %s"
+
+#, c-format
+msgid "E1168: Argument already declared in the script: %s"
+msgstr "E1168: Аргумент је већ декларисан у скрипти: %s"
+
+msgid "E1169: 'import * as {name}' not supported here"
+msgstr "E1169: Овде се не подржава 'import * as {име}'"
+
+msgid "E1170: Cannot use #{ to start a comment"
+msgstr "E1170: #{ не може да се користи за почетак коментара"
+
+msgid "E1171: Missing } after inline function"
+msgstr "E1171: Након inline функције недостаје }"
+
+msgid "E1172: Cannot use default values in a lambda"
+msgstr "E1172: Није могућа употреба подразумеваних вредности у ламбди"
+
+#, c-format
+msgid "E1173: Text found after enddef: %s"
+msgstr "E1173: Пронађен је текст након enddef: %s"
+
+#, c-format
+msgid "E1174: String required for argument %d"
+msgstr "E1174: Неопходан је стринг за аргумент %d"
+
+#, c-format
+msgid "E1175: Non-empty string required for argument %d"
+msgstr "E1175: Неопходан је непразни стринг за аргумент %d"
+
+msgid "E1176: Misplaced command modifier"
+msgstr "E1176: Модификатор команде није на одговарајућем месту"
+
+#, c-format
+msgid "E1177: For loop on %s not supported"
+msgstr "E1177: Не подржава се for петља над %s"
+
+msgid "E1178: Cannot lock or unlock a local variable"
+msgstr "E1178: Локална променљива не може да се закључа или откључа"
+
+#, c-format
+msgid ""
+"E1179: Failed to extract PWD from %s, check your shell's config related to "
+"OSC 7"
+msgstr ""
+"E1179: Није успело издвајање PWD из %s, проверите подешавање командног окружења "
+"које се тиче OSC 7"
+
+#, c-format
+msgid "E1180: Variable arguments type must be a list: %s"
+msgstr "E1180: Тип променљивих аргумената мора бити листа: %s"
+
+msgid "E1181: Cannot use an underscore here"
+msgstr "E1181: Овде не може да се користи доња црта"
+
+msgid "E1182: Blob required"
+msgstr "E1182: Потребан је Блоб"
+
+#, c-format
+msgid "E1183: Cannot use a range with an assignment operator: %s"
+msgstr "E1183: Опсег не може да се користи са оператором доделе: %s"
+
+msgid "E1184: Blob not set"
+msgstr "E1184: Blob није постављен"
+
+msgid "E1185: Cannot nest :redir"
+msgstr "E1185: :redir не може да се угњеждава"
+
+msgid "E1185: Missing :redir END"
+msgstr "E1185: Недостаје :redir END"
+
+#, c-format
+msgid "E1186: Expression does not result in a value: %s"
+msgstr "E1186: Резултат израза није вредност: %s"
+
+msgid "E1187: Failed to source defaults.vim"
+msgstr "E1187: Није успело учитавање defaults.vim"
+
+msgid "E1188: Cannot open a terminal from the command line window"
+msgstr "E1188: Из прозора командне линије не може да се отвори терминал"
+
+#, c-format
+msgid "E1189: Cannot use :legacy with this command: %s"
+msgstr "E1189: :legacy не може да се користи са овом командом: %s"
+
+msgid "E1190: One argument too few"
+msgstr "E1190: Фали један аргумент"
+
+#, c-format
+msgid "E1190: %d arguments too few"
+msgstr "E1190: фали %d аргумената"
+
+#, c-format
+msgid "E1191: Call to function that failed to compile: %s"
+msgstr "E1191: Позив функције која није успела да се компајлира: %s"
 
 msgid "--No lines in buffer--"
 msgstr "--У баферу нема линија--"
@@ -7355,8 +7469,8 @@ msgid "E475: Invalid value for argument 
 msgstr "E475: Неважећа вредност за аргумент %s: %s"
 
 #, c-format
-msgid "E15: Invalid expression: %s"
-msgstr "E15: Неважећи израз: %s"
+msgid "E15: Invalid expression: \"%s\""
+msgstr "E15: Неважећи израз: „%s”"
 
 msgid "E16: Invalid range"
 msgstr "E16: Неважећи опсег"
@@ -7591,9 +7705,6 @@ msgstr "E896: Аргумент за %s мора бити Листа, Речник или Блоб"
 msgid "E804: Cannot use '%' with Float"
 msgstr "E804: '%' не може да се користи са Покретни"
 
-msgid "E908: using an invalid value as a String"
-msgstr "E908: Користи се недозвољена вредност као Стринг"
-
 msgid "E996: Cannot lock an option"
 msgstr "E996: Опција не може да се закључа"
 
@@ -8133,6 +8244,9 @@ msgstr "Уређујте текст фајлове"
 msgid "Text;editor;"
 msgstr "Текст;едитор;"
 
+msgid "gvim"
+msgstr "gvim"
+
 msgid "Vim"
 msgstr "Vim"
 
@@ -8233,6 +8347,9 @@ msgstr "листа имена директоријума који се користе за :cd"
 msgid "change to directory of file in buffer"
 msgstr "мења на директоријум фајла у баферу"
 
+msgid "change to pwd of shell in terminal buffer"
+msgstr "мења на pwd командног окружења терминал баферу"
+
 msgid "search commands wrap around the end of the buffer"
 msgstr "команде претраге се обавијају око краја бафера"
 
@@ -8245,7 +8362,7 @@ msgstr ""
 "претраге"
 
 msgid "select the default regexp engine used"
-msgstr "бира подразумевани регизраз механизам"
+msgstr "бира подразумевани механизам регуларних израза"
 
 msgid "ignore case when using a search pattern"
 msgstr "не прави разлику у величини слова када се користи шаблон претраге"
@@ -8837,7 +8954,7 @@ msgid ""
 "\"autoselect\" to always put selected text on the clipboard"
 msgstr ""
 "„unnamed” да се користи * регистар као неименовани регистар\n"
-"„autoselect” да се изабрани текст увек ставља у клипборд"
+"„autoselect” да се изабрани текст увек ставља у системску оставу"
 
 msgid "\"startsel\" and/or \"stopsel\"; what special keys can do"
 msgstr "„startsel” и/или „stopsel”; шта могу да ураде специјални тастери"