Update runtime files.
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 02d6986..b95e493 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -51,6 +51,7 @@
 runtime/compiler/sass.vim		@tpope
 runtime/compiler/se.vim			@dkearns
 runtime/compiler/shellcheck.vim		@dkearns
+runtime/compiler/sml.vim		@dkearns
 runtime/compiler/stylelint.vim		@dkearns
 runtime/compiler/tcl.vim		@dkearns
 runtime/compiler/tidy.vim		@dkearns
diff --git a/README_VIM9.md b/README_VIM9.md
index 5ee1fdc..96fab69 100644
--- a/README_VIM9.md
+++ b/README_VIM9.md
@@ -70,6 +70,7 @@
 | Vim new | 0.190276 |
 
 The differences are smaller, but Vim 9 script is clearly the fastest.
+Using LuaJIT gives 0.25, only a little bit faster than plain Lua.
 
 How does Vim9 script work?  The function is first compiled into a sequence of
 instructions.  Each instruction has one or two parameters and a stack is
diff --git a/runtime/autoload/syntaxcomplete.vim b/runtime/autoload/syntaxcomplete.vim
index 98584b4..6ba262b 100644
--- a/runtime/autoload/syntaxcomplete.vim
+++ b/runtime/autoload/syntaxcomplete.vim
@@ -1,12 +1,16 @@
 " Vim completion script
 " Language:    All languages, uses existing syntax highlighting rules
 " Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
-" Version:     13.0
-" Last Change: 2019 Aug 08
+" Version:     14.0
+" Last Change: 2020 Dec 30
 " Usage:       For detailed help, ":help ft-syntax-omni"
 
 " History
 "
+" Version 14.0
+"   - Fixed issue with single quotes and is_keyword
+"     https://github.com/vim/vim/issues/7463
+"
 " Version 13.0
 "   - Extended the option omni_syntax_group_include_{filetype}
 "     to accept a comma separated list of regex's rather than
@@ -179,7 +183,8 @@
     endif
 
     " let base = s:prepended . a:base
-    let base = s:prepended
+    " let base = s:prepended
+    let base = substitute(s:prepended, "'", "''", 'g')
 
     let filetype = substitute(&filetype, '\.', '_', 'g')
     let list_idx = index(s:cache_name, filetype, 0, &ignorecase)
@@ -548,7 +553,7 @@
         " let syn_list = substitute( @l, '^.*xxx\s*\%(contained\s*\)\?', "", '' )
         " let syn_list = substitute( @l, '^.*xxx\s*', "", '' )
 
-        " We only want the words for the lines begining with
+        " We only want the words for the lines beginning with
         " containedin, but there could be other items.
 
         " Tried to remove all lines that do not begin with contained
diff --git a/runtime/compiler/sml.vim b/runtime/compiler/sml.vim
new file mode 100644
index 0000000..c7e1b1b
--- /dev/null
+++ b/runtime/compiler/sml.vim
@@ -0,0 +1,28 @@
+" Vim compiler file
+" Compiler:	SML/NJ Compiler
+" Maintainer:	Doug Kearns <dougkearns@gmail.com>
+" Last Change:	2020 Feb 10
+
+if exists("current_compiler")
+  finish
+endif
+let current_compiler = "sml"
+
+if exists(":CompilerSet") != 2		" older Vim always used :setlocal
+  command -nargs=* CompilerSet setlocal <args>
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+CompilerSet makeprg=sml
+CompilerSet errorformat=%f:%l.%c-%\\d%\\+.%\\d%\\+\ %trror:\ %m,
+		       \%f:%l.%c\ %trror:\ %m,
+		       \%trror:\ %m
+		       \%f:%l.%c-%\\d%\\+.%\\d%\\+\ %tarning:\ %m,
+		       \%f:%l.%c\ %tarning:\ %m,
+		       \%tarning:\ %m,
+		       \%-G%.%#
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 2d96769..ea1b137 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2021 Feb 11
+*index.txt*     For Vim version 8.2.  Last change: 2021 Feb 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1699,7 +1699,8 @@
 |:version|	:ve[rsion]	print version number and other info
 |:verbose|	:verb[ose]	execute command with 'verbose' set
 |:vertical|	:vert[ical]	make following command split vertically
-|:vim9script|	:vim9[script]	indicates Vim9 script file
+|:vim9cmd|	:vim9[cmd]	make following command use Vim9 script syntax
+|:vim9script|	:vim9s[cript]	indicates Vim9 script file
 |:vimgrep|	:vim[grep]	search for pattern in files
 |:vimgrepadd|	:vimgrepa[dd]	like :vimgrep, but append to current list
 |:visual|	:vi[sual]	same as ":edit", but turns off "Ex" mode
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 82b4418..a5b9099 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 8.2.  Last change: 2021 Jan 08
+*pattern.txt*   For Vim version 8.2.  Last change: 2021 Feb 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -229,7 +229,7 @@
 							*last-pattern*
 The last used pattern and offset are remembered.  They can be used to repeat
 the search, possibly in another direction or with another count.  Note that
-two patterns are remembered: One for 'normal' search commands and one for the
+two patterns are remembered: One for "normal" search commands and one for the
 substitute command ":s".  Each time an empty pattern is given, the previously
 used pattern is used.  However, if there is no previous search command, a
 previous substitute pattern is used, if possible.
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index e7209c4..de60920 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.2.  Last change: 2021 Feb 06
+*popup.txt*  For Vim version 8.2.  Last change: 2021 Feb 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -693,8 +693,8 @@
 			the left.
 	border		List with numbers, defining the border thickness
 			above/right/below/left of the popup (similar to CSS).
-			Only values of zero and non-zero are recognized.
-			An empty list uses a border all around.
+			Only values of zero and non-zero are currently
+			recognized.  An empty list uses a border all around.
 	borderhighlight	List of highlight group names to use for the border.
 			When one entry it is used for all borders, otherwise
 			the highlight for the top/right/bottom/left border.
@@ -742,10 +742,10 @@
 			line or to another window.
 	mousemoved	Like "moved" but referring to the mouse pointer
 			position
-	cursorline	non-zero: Highlight the cursor line. Also scrolls the
-				  text to show this line (only works properly
-				  when 'wrap' is off).
-			zero: 	  Do not highlight the cursor line.
+	cursorline	TRUE:	 Highlight the cursor line. Also scrolls the
+				 text to show this line (only works properly
+				 when 'wrap' is off).
+			zero: 	 Do not highlight the cursor line.
 			Default is zero, except for |popup_menu()|.
 	filter		A callback that can filter typed characters, see
 			|popup-filter|.
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 60ef9c1..aa00dd3 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.2.  Last change: 2021 Jan 23
+*repeat.txt*    For Vim version 8.2.  Last change: 2021 Feb 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -879,7 +879,7 @@
 		valid in the script where it has been defined and if that
 		script is called from several other scripts, this will stop
 		whenever that particular variable will become visible or
-		unaccessible again.
+		inaccessible again.
 
 The [lnum] is the line number of the breakpoint.  Vim will stop at or after
 this line.  When omitted line 1 is used.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 9d3c9aa..5f0b6c6 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3402,7 +3402,9 @@
 :vie	editing.txt	/*:vie*
 :view	editing.txt	/*:view*
 :vim	quickfix.txt	/*:vim*
-:vim9	repeat.txt	/*:vim9*
+:vim9	vim9.txt	/*:vim9*
+:vim9cmd	vim9.txt	/*:vim9cmd*
+:vim9s	repeat.txt	/*:vim9s*
 :vim9script	repeat.txt	/*:vim9script*
 :vimgrep	quickfix.txt	/*:vimgrep*
 :vimgrepa	quickfix.txt	/*:vimgrepa*
@@ -10126,6 +10128,7 @@
 vim9-final	vim9.txt	/*vim9-final*
 vim9-gotchas	vim9.txt	/*vim9-gotchas*
 vim9-import	vim9.txt	/*vim9-import*
+vim9-mix	vim9.txt	/*vim9-mix*
 vim9-namespace	vim9.txt	/*vim9-namespace*
 vim9-rationale	vim9.txt	/*vim9-rationale*
 vim9-reload	vim9.txt	/*vim9-reload*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index dd2ed70..835a5cc 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2021 Feb 10
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Feb 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,13 +39,8 @@
 -------------------- Known bugs and current work -----------------------
 
 Vim9 - Make everything work:
-- Use ":vim9cmd" as a command modifier?  Then make ":vim9" short for that.
-- Add a test for profiling with nested function calls and lambda.
-- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
-- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
-- Expand `=expr` in :mkspell
-- Unlet with range: "unlet list[a : b]"
 - Implement "export {one, two three}".
+- Disallow :open ?
 - ISN_CHECKTYPE could use check_argtype()
 - Using a script variable inside a :def function doesn't work if the variable
   is inside a block, see Test_nested_function().  Should it work?
@@ -110,10 +105,11 @@
 
 Once Vim9 is stable:
 - Change the help to prefer Vim9 syntax where appropriate
-- Use Vim9 for runtime files.
-    PR #7497 for autoload/ccomplete.vim
 - 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
 
 Also for Vim9:
 - better implementation for partial and tests for that.
@@ -198,8 +194,6 @@
 'incsearch' with :s:
 - :s/foo  using CTRL-G moves to another line, should not happen, or use the
   correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)
-- :s@pat/tern@ doesn't include "/" in the pattern. (Takahiro Yoshihara, #3637)
-   pass delim to do_search() ?
 - Also support range: :/foo/,/bar/delete
 - Also support for user command, e.g. Cfilter
 - :%s/foo should take the first match below the cursor line, unless there
@@ -269,7 +263,7 @@
 - When 'encoding' is not utf-8, or the job is using another encoding, setup
   conversions.
 
-Valgind reports memory leaks in test_options
+Valgrind reports memory leaks in test_options
 
 test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
 
@@ -770,8 +764,6 @@
 matchaddpos() gets slow with many matches.  Proposal by Rick Howe, 2018 Jul
 19.
 
-Should make 'listchars' global-local.  Local to window or to buffer?
-Probably window.  #5206
 Add something like 'fillchars' local to window, but allow for specifying a
 highlight name.  Esp. for the statusline.
 And "extends" and "precedes" are also useful without 'list' set.  Also in
@@ -1241,6 +1233,8 @@
 Add "unicode true" to NSIS installer.  Doesn't work with Windows 95, which we
 no longer support.
 
+Suppoert sort(l, 'F'), convert strings to float. (#7857)
+
 sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
 4#1038)
 
diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt
index d2dc056..ac629a5 100644
--- a/runtime/doc/usr_04.txt
+++ b/runtime/doc/usr_04.txt
@@ -1,4 +1,4 @@
-*usr_04.txt*	For Vim version 8.2.  Last change: 2019 Nov 21
+*usr_04.txt*	For Vim version 8.2.  Last change: 2021 Feb 22
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -464,9 +464,9 @@
 
 You can switch between Insert mode and Replace mode with the <Insert> key.
 
-When you use <BS> (backspace) to make correction, you will notice that the
-old text is put back.  Thus it works like an undo command for the last typed
-character.
+When you use <BS> (backspace) to make a correction, you will notice that the
+old text is put back.  Thus it works like an undo command for the previously
+typed character.
 
 ==============================================================================
 *04.10*	Conclusion
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index bde3c9b..016089a 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2021 Feb 03
+*vim9.txt*	For Vim version 8.2.  Last change: 2021 Feb 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -279,8 +279,8 @@
 variables, because they are not really declared.  They can also be deleted
 with `:unlet`.
 
-Variables and functions cannot shadow previously defined or imported variables
-and functions.
+Variables, functions and function arguments cannot shadow previously defined
+or imported variables and functions in the same script file.
 Variables may shadow Ex commands, rename the variable if needed.
 
 Global variables and user defined functions must be prefixed with "g:", also
@@ -307,14 +307,14 @@
 	const myList = [1, 2]
 	myList = [3, 4]		# Error!
 	myList[0] = 9		# Error!
-	muList->add(3)		# Error!
+	myList->add(3)		# Error!
 <							*:final*
 `:final` is used for making only the variable a constant, the value can be
 changed.  This is well known from Java.  Example: >
 	final myList = [1, 2]
 	myList = [3, 4]		# Error!
 	myList[0] = 9		# OK
-	muList->add(3)		# OK
+	myList->add(3)		# OK
 
 It is common to write constants as ALL_CAPS, but you don't have to.
 
@@ -412,7 +412,7 @@
 
 							*vim9-curly*
 To avoid the "{" of a dictionary literal to be recognized as a statement block
-wrap it in parenthesis: >
+wrap it in parentheses: >
 	var Lambda = (arg) => ({key: 42})
 
 Also when confused with the start of a command block: >
@@ -1029,10 +1029,14 @@
 - Using a number where a string is expected.   *E1024*
 
 One consequence is that the item type of a list or dict given to map() must
-not change.  This will give an error in compiled code: >
+not change.  This will give an error in Vim9 script: >
 	map([1, 2, 3], (i, v) => 'item ' .. i)
-	E1012: Type mismatch; expected list<number> but got list<string>
-Instead use |mapnew()|.
+	E1012: Type mismatch; expected number but got string
+Instead use |mapnew()|.  If the item type was determined to be "any" it can
+change to a more specific type.  E.g. when a list of mixed types gets changed
+to a list of numbers.
+Same for |extend()|, use |extendnew()| instead, and for |flatten()|, use
+|flattennew()| instead.
 
 ==============================================================================
 
@@ -1084,7 +1088,7 @@
 	vim9script
 	# Vim9 script commands go here
 This allows for writing a script that takes advantage of the Vim9 script
-syntax if possible, but will also work on an Vim version without it.
+syntax if possible, but will also work on a Vim version without it.
 
 This can only work in two ways:
 1. The "if" statement evaluates to false, the commands up to `endif` are
diff --git a/runtime/ftplugin/lisp.vim b/runtime/ftplugin/lisp.vim
index 130f30b..9825d24 100644
--- a/runtime/ftplugin/lisp.vim
+++ b/runtime/ftplugin/lisp.vim
@@ -14,13 +14,11 @@
 " Don't load another plugin for this buffer
 let b:did_ftplugin = 1
 
-setl comments=:;
+setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,mb:\|,ex:\|#
 setl define=^\\s*(def\\k*
 setl formatoptions-=t
 setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
 setl lisp
 setl commentstring=;%s
 
-setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
-
 let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lisp< commentstring<"
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index 5106e86..746e80b 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	Vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2021 Feb 07
+" Last Change:	2021 Feb 20
 
 " Only do this when not done yet for this buffer
 if exists("b:did_ftplugin")
@@ -54,7 +54,7 @@
   " Comments starts with # in Vim9 script
   setlocal commentstring=#%s
 else
-  setlocal com=sO:\"\ -,mO:\"\ \ ,:\"
+  setlocal com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\"
   " Comments starts with a double quote in legacy script
   setlocal commentstring=\"%s
 endif
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index d2f5f31..5c02264 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Vim script
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2021 Feb 13
+" Last Change:	2021 Feb 18
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -160,9 +160,9 @@
   endif
 
   let ends_in_comment = has('syntax_items')
-	      \ && synIDattr(synID(lnum, col('$'), 1), "name") =~ '\(Comment\|String\)$'
+	\ && synIDattr(synID(lnum, len(getline(lnum)), 1), "name") =~ '\(Comment\|String\)$'
 
-  " A line ending in "{"/"[} is most likely the start of a dict/list literal,
+  " A line ending in "{" or "[" is most likely the start of a dict/list literal,
   " indent the next line more.  Not for a continuation line or {{{.
   if !ends_in_comment && prev_text_end =~ '\s[{[]\s*$' && !found_cont
     let ind = ind + shiftwidth()
diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim
index aa9cb12..36d3c25 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -1,10 +1,10 @@
 " Vim syntax file
 " Language:             HTML
-" Maintainer:           Jorge Maldonado Ventura <jorgesumle@freakspot.net>
+" Previous Maintainer:  Jorge Maldonado Ventura <jorgesumle@freakspot.net>
 " Previous Maintainer:  Claudio Fleiner <claudio@fleiner.com>
 " Repository:           https://notabug.org/jorgesumle/vim-html-syntax
-" Last Change:          2020 Mar 17
-" Included patch from Florian Breisch to add the summary element
+" Last Change:          2021 Feb 25
+"			Included patch #7900 to fix comments
 "
 
 " Please check :help html.vim for some comments and a description of the options
@@ -141,9 +141,21 @@
 if exists("html_wrong_comments")
   syn region htmlComment                start=+<!--+    end=+--\s*>+ contains=@Spell
 else
-  syn region htmlComment                start=+<!+      end=+>+   contains=htmlCommentPart,htmlCommentError,@Spell
-  syn match  htmlCommentError contained "[^><!]"
-  syn region htmlCommentPart  contained start=+--+      end=+--\s*+  contains=@htmlPreProc,@Spell
+  " The HTML 5.2 syntax 8.2.4.41-42: bogus comment is parser error; browser skips until next &gt;
+  " Note: must stand first to get lesser :syn-priority
+  syn region htmlComment                start=+<!+      end=+>+     contains=htmlCommentError
+  " Normal comment opening <!-- ...>
+  syn region htmlComment                start=+<!--+    end=+>+     contains=htmlCommentPart,@Spell
+  " Idem 8.2.4.43-44: <!--> and <!---> are parser errors; browser treats as comments
+  syn match htmlComment "<!---\?>" contains=htmlCommentError
+  " Idem 8.2.4.51: any number of consecutive dashes within comment is okay; --> closes comment
+  " Idem 8.2.4.52: closing comment by dash-dash-bang (--!>) is error ignored by parser(!); closes comment
+  syn region htmlCommentPart  contained start=+--+      end=+--!\?>+me=e-1  contains=htmlCommentNested,@htmlPreProc,@Spell
+  " Idem 8.2.4.49: opening nested comment <!-- is parser error, ignored by browser, except <!--> is all right
+  syn match htmlCommentNested contained "<!--[^>]"me=e-1
+  syn match htmlCommentNested contained "<!--->"me=e-3
+  syn match htmlCommentNested contained "<!---\?!>"me=e-4
+  syn match htmlCommentError contained "[^><!]"
 endif
 syn region htmlComment                  start=+<!DOCTYPE+ keepend end=+>+
 
@@ -317,6 +329,7 @@
 hi def link htmlComment            Comment
 hi def link htmlCommentPart        Comment
 hi def link htmlValue              String
+hi def link htmlCommentNested      htmlCommentError
 hi def link htmlCommentError       htmlError
 hi def link htmlTagError           htmlError
 hi def link htmlEvent              javaScript
diff --git a/runtime/syntax/lhaskell.vim b/runtime/syntax/lhaskell.vim
index 0a8a076..cf1f126 100644
--- a/runtime/syntax/lhaskell.vim
+++ b/runtime/syntax/lhaskell.vim
@@ -1,11 +1,11 @@
 " Vim syntax file
 " Language:		Haskell with literate comments, Bird style,
-"			TeX style and plain text surrounding
+"			Markdown style, TeX style and plain text surrounding
 "			\begin{code} \end{code} blocks
 " Maintainer:		Haskell Cafe mailinglist <haskell-cafe@haskell.org>
 " Original Author:	Arthur van Leeuwen <arthurvl@cs.uu.nl>
-" Last Change:		2010 Apr 11
-" Version:		1.04
+" Last Change:		2020 Feb 25
+" Version:		1.05
 "
 " Thanks to Ian Lynagh for thoughtful comments on initial versions and
 " for the inspiration for writing this in the first place.
@@ -44,8 +44,8 @@
 " First off, see if we can inherit a user preference for lhs_markup
 if !exists("b:lhs_markup")
     if exists("lhs_markup")
-	if lhs_markup =~ '\<\%(tex\|none\)\>'
-	    let b:lhs_markup = matchstr(lhs_markup,'\<\%(tex\|none\)\>')
+	if lhs_markup =~ '\<\%(tex\|md\|none\)\>'
+	    let b:lhs_markup = matchstr(lhs_markup,'\<\%(tex\|md\|none\)\>')
 	else
 	    echohl WarningMsg | echo "Unknown value of lhs_markup" | echohl None
 	    let b:lhs_markup = "unknown"
@@ -54,7 +54,7 @@
 	let b:lhs_markup = "unknown"
     endif
 else
-    if b:lhs_markup !~ '\<\%(tex\|none\)\>'
+    if b:lhs_markup !~ '\<\%(tex\|md\|none\)\>'
 	let b:lhs_markup = "unknown"
     endif
 endif
@@ -74,6 +74,8 @@
 if b:lhs_markup == "unknown"
     if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub\)*section\|\\chapter|\\part','W') != 0
 	let b:lhs_markup = "tex"
+    elseif search('```haskell','W') != 0
+        let b:lhs_markup = "md"
     else
 	let b:lhs_markup = "plain"
     endif
@@ -86,6 +88,10 @@
     " Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
     setlocal isk+=_
     syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
+elseif b:lhs_markup == "md"
+    runtime! syntax/markdown.vim
+    unlet b:current_syntax
+    syntax cluster lhsTeXContainer contains=markdown.*
 else
     syntax cluster lhsTeXContainer contains=.*
 endif
@@ -96,9 +102,12 @@
 
 syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
 syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,beginCodeBegin containedin=@lhsTeXContainer
+syntax region lhsHaskellMDBlock start="^```haskell$" matchgroup=NONE end="^```$" keepend contains=@haskellTop,lhsMarkdownCode containedin=@lhsTeXContainer
 
 syntax match lhsBirdTrack "^>" contained
 
+syntax match lhsMarkdownCode "^\(```haskell\|^```\)$" contained
+
 syntax match beginCodeBegin "^\\begin" nextgroup=beginCodeCode contained
 syntax region beginCodeCode  matchgroup=texDelimiter start="{" end="}"
 
@@ -107,6 +116,8 @@
 
 hi def link lhsBirdTrack Comment
 
+hi def link lhsMarkdownCode Comment
+
 hi def link beginCodeBegin	      texCmdName
 hi def link beginCodeCode	      texSection
 
diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim
index 23666a1..53e0734 100644
--- a/runtime/syntax/python.vim
+++ b/runtime/syntax/python.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Python
 " Maintainer:	Zvezdan Petkovic <zpetkovic@acm.org>
-" Last Change:	2016 Oct 29
+" Last Change:	2021 Feb 15
 " Credits:	Neil Schemenauer <nas@python.ca>
 "		Dmitry Vasiliev
 "
@@ -71,30 +71,17 @@
 
 " Keep Python keywords in alphabetical order inside groups for easy
 " comparison with the table in the 'Python Language Reference'
-" https://docs.python.org/2/reference/lexical_analysis.html#keywords,
-" https://docs.python.org/3/reference/lexical_analysis.html#keywords.
+" https://docs.python.org/reference/lexical_analysis.html#keywords.
 " Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
 " Exceptions come last at the end of each group (class and def below).
 "
-" Keywords 'with' and 'as' are new in Python 2.6
-" (use 'from __future__ import with_statement' in Python 2.5).
+" The list can be checked using:
 "
-" Some compromises had to be made to support both Python 3 and 2.
-" We include Python 3 features, but when a definition is duplicated,
-" the last definition takes precedence.
-"
-" - 'False', 'None', and 'True' are keywords in Python 3 but they are
-"   built-ins in 2 and will be highlighted as built-ins below.
-" - 'exec' is a built-in in Python 3 and will be highlighted as
-"   built-in below.
-" - 'nonlocal' is a keyword in Python 3 and will be highlighted.
-" - 'print' is a built-in in Python 3 and will be highlighted as
-"   built-in below (use 'from __future__ import print_function' in 2)
-" - async and await were added in Python 3.5 and are soft keywords.
+" python3 -c 'import keyword, pprint; pprint.pprint(keyword.kwlist, compact=True)'
 "
 syn keyword pythonStatement	False None True
-syn keyword pythonStatement	as assert break continue del exec global
-syn keyword pythonStatement	lambda nonlocal pass print return with yield
+syn keyword pythonStatement	as assert break continue del global
+syn keyword pythonStatement	lambda nonlocal pass return with yield
 syn keyword pythonStatement	class def nextgroup=pythonFunction skipwhite
 syn keyword pythonConditional	elif else if
 syn keyword pythonRepeat	for while
@@ -103,7 +90,7 @@
 syn keyword pythonInclude	from import
 syn keyword pythonAsync		async await
 
-" Decorators (new in Python 2.4)
+" Decorators
 " A dot must be allowed because of @MyClass.myfunc decorators.
 syn match   pythonDecorator	"@" display contained
 syn match   pythonDecoratorName	"@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator
@@ -168,8 +155,7 @@
 " - 08e0 or 08j are highlighted,
 "
 " and so on, as specified in the 'Python Language Reference'.
-" https://docs.python.org/2/reference/lexical_analysis.html#numeric-literals
-" https://docs.python.org/3/reference/lexical_analysis.html#numeric-literals
+" https://docs.python.org/reference/lexical_analysis.html#numeric-literals
 if !exists("python_no_number_highlight")
   " numbers (including longs and complex)
   syn match   pythonNumber	"\<0[oO]\=\o\+[Ll]\=\>"
@@ -186,37 +172,37 @@
 
 " Group the built-ins in the order in the 'Python Library Reference' for
 " easier comparison.
-" https://docs.python.org/2/library/constants.html
-" https://docs.python.org/3/library/constants.html
-" http://docs.python.org/2/library/functions.html
-" http://docs.python.org/3/library/functions.html
-" http://docs.python.org/2/library/functions.html#non-essential-built-in-functions
-" http://docs.python.org/3/library/functions.html#non-essential-built-in-functions
+" https://docs.python.org/library/constants.html
+" http://docs.python.org/library/functions.html
 " Python built-in functions are in alphabetical order.
+"
+" The list can be checked using:
+"
+" python3 -c 'import builtins, pprint; pprint.pprint(dir(builtins), compact=True)'
+"
+" The constants added by the `site` module are not listed below because they
+" should not be used in programs, only in interactive interpreter.
+" Similarly for some other attributes and functions `__`-enclosed from the
+" output of the above command.
+"
 if !exists("python_no_builtin_highlight")
   " built-in constants
   " 'False', 'True', and 'None' are also reserved words in Python 3
   syn keyword pythonBuiltin	False True None
   syn keyword pythonBuiltin	NotImplemented Ellipsis __debug__
+  " constants added by the `site` module
+  syn keyword pythonBuiltin	quit exit copyright credits license
   " built-in functions
-  syn keyword pythonBuiltin	abs all any bin bool bytearray callable chr
-  syn keyword pythonBuiltin	classmethod compile complex delattr dict dir
-  syn keyword pythonBuiltin	divmod enumerate eval filter float format
-  syn keyword pythonBuiltin	frozenset getattr globals hasattr hash
-  syn keyword pythonBuiltin	help hex id input int isinstance
+  syn keyword pythonBuiltin	abs all any ascii bin bool breakpoint bytearray
+  syn keyword pythonBuiltin	bytes callable chr classmethod compile complex
+  syn keyword pythonBuiltin	delattr dict dir divmod enumerate eval exec
+  syn keyword pythonBuiltin	filter float format frozenset getattr globals
+  syn keyword pythonBuiltin	hasattr hash help hex id input int isinstance
   syn keyword pythonBuiltin	issubclass iter len list locals map max
   syn keyword pythonBuiltin	memoryview min next object oct open ord pow
   syn keyword pythonBuiltin	print property range repr reversed round set
-  syn keyword pythonBuiltin	setattr slice sorted staticmethod str
-  syn keyword pythonBuiltin	sum super tuple type vars zip __import__
-  " Python 2 only
-  syn keyword pythonBuiltin	basestring cmp execfile file
-  syn keyword pythonBuiltin	long raw_input reduce reload unichr
-  syn keyword pythonBuiltin	unicode xrange
-  " Python 3 only
-  syn keyword pythonBuiltin	ascii bytes exec
-  " non-essential built-in functions; Python 2 only
-  syn keyword pythonBuiltin	apply buffer coerce intern
+  syn keyword pythonBuiltin	setattr slice sorted staticmethod str sum super
+  syn keyword pythonBuiltin	tuple type vars zip __import__
   " avoid highlighting attributes as builtins
   syn match   pythonAttribute	/\.\h\w*/hs=s+1
 	\ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync
@@ -224,28 +210,27 @@
 endif
 
 " From the 'Python Library Reference' class hierarchy at the bottom.
-" http://docs.python.org/2/library/exceptions.html
-" http://docs.python.org/3/library/exceptions.html
+" http://docs.python.org/library/exceptions.html
 if !exists("python_no_exception_highlight")
   " builtin base exceptions (used mostly as base classes for other exceptions)
   syn keyword pythonExceptions	BaseException Exception
-  syn keyword pythonExceptions	ArithmeticError BufferError
-  syn keyword pythonExceptions	LookupError
-  " builtin base exceptions removed in Python 3
-  syn keyword pythonExceptions	EnvironmentError StandardError
+  syn keyword pythonExceptions	ArithmeticError BufferError LookupError
   " builtin exceptions (actually raised)
-  syn keyword pythonExceptions	AssertionError AttributeError
-  syn keyword pythonExceptions	EOFError FloatingPointError GeneratorExit
-  syn keyword pythonExceptions	ImportError IndentationError
-  syn keyword pythonExceptions	IndexError KeyError KeyboardInterrupt
-  syn keyword pythonExceptions	MemoryError NameError NotImplementedError
-  syn keyword pythonExceptions	OSError OverflowError ReferenceError
-  syn keyword pythonExceptions	RuntimeError StopIteration SyntaxError
+  syn keyword pythonExceptions	AssertionError AttributeError EOFError
+  syn keyword pythonExceptions	FloatingPointError GeneratorExit ImportError
+  syn keyword pythonExceptions	IndentationError IndexError KeyError
+  syn keyword pythonExceptions	KeyboardInterrupt MemoryError
+  syn keyword pythonExceptions	ModuleNotFoundError NameError
+  syn keyword pythonExceptions	NotImplementedError OSError OverflowError
+  syn keyword pythonExceptions	RecursionError ReferenceError RuntimeError
+  syn keyword pythonExceptions	StopAsyncIteration StopIteration SyntaxError
   syn keyword pythonExceptions	SystemError SystemExit TabError TypeError
-  syn keyword pythonExceptions	UnboundLocalError UnicodeError
-  syn keyword pythonExceptions	UnicodeDecodeError UnicodeEncodeError
+  syn keyword pythonExceptions	UnboundLocalError UnicodeDecodeError
+  syn keyword pythonExceptions	UnicodeEncodeError UnicodeError
   syn keyword pythonExceptions	UnicodeTranslateError ValueError
   syn keyword pythonExceptions	ZeroDivisionError
+  " builtin exception aliases for OSError
+  syn keyword pythonExceptions	EnvironmentError IOError WindowsError
   " builtin OS exceptions in Python 3
   syn keyword pythonExceptions	BlockingIOError BrokenPipeError
   syn keyword pythonExceptions	ChildProcessError ConnectionAbortedError
@@ -253,18 +238,13 @@
   syn keyword pythonExceptions	ConnectionResetError FileExistsError
   syn keyword pythonExceptions	FileNotFoundError InterruptedError
   syn keyword pythonExceptions	IsADirectoryError NotADirectoryError
-  syn keyword pythonExceptions	PermissionError ProcessLookupError
-  syn keyword pythonExceptions	RecursionError StopAsyncIteration
-  syn keyword pythonExceptions	TimeoutError
-  " builtin exceptions deprecated/removed in Python 3
-  syn keyword pythonExceptions	IOError VMSError WindowsError
+  syn keyword pythonExceptions	PermissionError ProcessLookupError TimeoutError
   " builtin warnings
   syn keyword pythonExceptions	BytesWarning DeprecationWarning FutureWarning
   syn keyword pythonExceptions	ImportWarning PendingDeprecationWarning
-  syn keyword pythonExceptions	RuntimeWarning SyntaxWarning UnicodeWarning
+  syn keyword pythonExceptions	ResourceWarning RuntimeWarning
+  syn keyword pythonExceptions	SyntaxWarning UnicodeWarning
   syn keyword pythonExceptions	UserWarning Warning
-  " builtin warnings in Python 3
-  syn keyword pythonExceptions	ResourceWarning
 endif
 
 if exists("python_space_error_highlight")
diff --git a/src/po/sr.po b/src/po/sr.po
index 89bf72c..b9ae0e6 100644
--- a/src/po/sr.po
+++ b/src/po/sr.po
@@ -10,8 +10,8 @@
 msgstr ""
 "Project-Id-Version: Vim(Serbian)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-11-23 22:13+0400\n"
-"PO-Revision-Date: 2020-11-27 00:43+0400\n"
+"POT-Creation-Date: 2021-02-14 01:49+0400\n"
+"PO-Revision-Date: 2021-02-14 01:54+0400\n"
 "Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n"
 "Language-Team: Serbian\n"
 "Language: sr\n"
@@ -34,7 +34,7 @@
 msgstr "E610: Нема аргумента за брисање"
 
 msgid "E249: window layout changed unexpectedly"
-msgstr "E249: распоред прозора се нечекивано променио"
+msgstr "E249: распоред прозора се неочекивано променио"
 
 msgid "--Deleted--"
 msgstr "--Обрисано--"
@@ -366,7 +366,7 @@
 "празно да премостите)"
 
 msgid "E514: write error (file system full?)"
-msgstr "E514: грешка при упису (систем фајллова је пун?)"
+msgstr "E514: грешка при упису (систем фајлова је пун?)"
 
 msgid " CONVERSION ERROR"
 msgstr " ГРЕШКА КОНВЕРЗИЈЕ"
@@ -432,7 +432,7 @@
 msgstr "E901: gethostbyname() у channel_open()"
 
 msgid "E903: received command with non-string argument"
-msgstr "E903: примњена команда са аргуменом који није стринг"
+msgstr "E903: примљена команда са аргументом који није стринг"
 
 msgid "E904: last argument for expr/call must be a number"
 msgstr "E904: последњи аргумент за expr/call мора бити број"
@@ -502,7 +502,7 @@
 msgstr "E258: Слање ка клијенту није могуће"
 
 msgid "Used CUT_BUFFER0 instead of empty selection"
-msgstr "Уместо празне селекције корићен је CUT_BUFFER0"
+msgstr "Уместо празне селекције коришћен је CUT_BUFFER0"
 
 msgid "tagname"
 msgstr "ознака"
@@ -814,7 +814,7 @@
 
 #, c-format
 msgid "E935: invalid submatch number: %d"
-msgstr "E935: неисправан број подпоклапања: %d"
+msgstr "E935: неисправан број подподударања: %d"
 
 msgid "E991: cannot use =<< here"
 msgstr "E991: овде не може да се користи =<<"
@@ -1010,13 +1010,13 @@
 msgid_plural "%ld matches on %ld line"
 msgstr[0] "%ld подударање у %ld линији"
 msgstr[1] "%ld подударања у %ld линији"
-msgstr[2] "%ld подударањa у %ld линији"
+msgstr[2] "%ld подударања у %ld линији"
 
 #, c-format
 msgid "%ld substitution on %ld line"
 msgid_plural "%ld substitutions on %ld line"
 msgstr[0] "%ld замена у %ld линији"
-msgstr[1] "%ld заменe у %ld линији"
+msgstr[1] "%ld замене у %ld линији"
 msgstr[2] "%ld замена у %ld линији"
 
 #, c-format
@@ -1101,9 +1101,6 @@
 msgid "End of function"
 msgstr "Крај функције"
 
-msgid "E464: Ambiguous use of user-defined command"
-msgstr "E464: Двосмислена употреба кориснички дефинисане команде"
-
 msgid "E492: Not an editor command"
 msgstr "E492: Није команда едитора"
 
@@ -1153,7 +1150,7 @@
 msgstr "E185: Шема боја '%s' не може да се пронађе"
 
 msgid "Greetings, Vim user!"
-msgstr "Поздрав, корисниче Vim-a"
+msgstr "Поздрав, корисниче програма Vim!"
 
 msgid "E784: Cannot close last tab page"
 msgstr "E784: Последња картица не може да се затвори"
@@ -1183,7 +1180,7 @@
 "премошћавање)"
 
 msgid "E186: No previous directory"
-msgstr "E186: Нема претгодног директоријума"
+msgstr "E186: Нема претходног директоријума"
 
 msgid "E187: Unknown"
 msgstr "E187: Непознато"
@@ -1254,7 +1251,7 @@
 
 #, no-c-format
 msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
-msgstr "E499: Празно име фајла за'%' или '#', функционише само са \":p:h\""
+msgstr "E499: Празно име фајла за '%' или '#', функционише само са \":p:h\""
 
 msgid "E500: Evaluates to an empty string"
 msgstr "E500: Резултат израчунавања је празан стринг"
@@ -1351,6 +1348,9 @@
 msgid "E811: Not allowed to change buffer information now"
 msgstr "E811: Мењање информација о баферу тренутно није дозвољено"
 
+msgid "[Command Line]"
+msgstr "[Командна линија]"
+
 msgid "E199: Active window or buffer deleted"
 msgstr "E199: Active window or buffer deleted"
 
@@ -1595,20 +1595,20 @@
 msgstr "E447: Фајл \"%s\" не може да се пронађе у путањи"
 
 msgid "E490: No fold found"
-msgstr "E490: Није пронађено ниједно склапање"
+msgstr "E490: Није пронађен ниједан свијутак"
 
 msgid "E350: Cannot create fold with current 'foldmethod'"
-msgstr "E350: Склапање не може да се креира са текућим 'foldmethod'"
+msgstr "E350: Текући 'foldmethod' не дозвољава креирање свијутака"
 
 msgid "E351: Cannot delete fold with current 'foldmethod'"
-msgstr "E351: Склапање не може да се обрише са текћим 'foldmethod'"
+msgstr "E351: Текући 'foldmethod' не дозвољава брисање свијутака"
 
 #, c-format
 msgid "+--%3ld line folded "
 msgid_plural "+--%3ld lines folded "
 msgstr[0] "+--%3ld линија подвијена"
-msgstr[1] "+--%3ld линијe подвијенe"
-msgstr[2] "+--%3ld линија подвијенo"
+msgstr[1] "+--%3ld линијe подвијене"
+msgstr[2] "+--%3ld линија подвијено"
 
 #, c-format
 msgid "+-%s%3ld line: "
@@ -1835,7 +1835,7 @@
 
 #, c-format
 msgid "E250: Fonts for the following charsets are missing in fontset %s:"
-msgstr "E250: Фонтови за следеће сетове карактера недостају у фонтсету %s:"
+msgstr "E250: У фонтсету %s недостају фонтови за следеће скупове карактера:"
 
 #, c-format
 msgid "E252: Fontset name: %s"
@@ -1843,7 +1843,7 @@
 
 #, c-format
 msgid "Font '%s' is not fixed-width"
-msgstr "Фонт %s' није фиксне ширине"
+msgstr "Фонт '%s' није фиксне ширине"
 
 #, c-format
 msgid "E253: Fontset name: %s"
@@ -1859,7 +1859,7 @@
 
 #, c-format
 msgid "Font%d width is not twice that of font0"
-msgstr "Ширина фонт%d није два пута већа од ширине фонт0"
+msgstr "Фонт%d није два пута шири од фонт0"
 
 #, c-format
 msgid "Font0 width: %d"
@@ -2070,7 +2070,7 @@
 
 #, c-format
 msgid "E415: unexpected equal sign: %s"
-msgstr "E415: неочкиван знак једнакости: %s"
+msgstr "E415: неочекиван знак једнакости: %s"
 
 #, c-format
 msgid "E416: missing equal sign: %s"
@@ -2237,7 +2237,7 @@
 msgstr "E625: cscope database: %s не може да се отвори"
 
 msgid "E626: cannot get cscope database information"
-msgstr "E626: Инфорамције о cscope бази података не могу да се добију"
+msgstr "E626: Информације о cscope бази података не могу да се добију"
 
 msgid "E568: duplicate cscope database not added"
 msgstr "E568: Дупликат cscope база података није додата"
@@ -2284,7 +2284,7 @@
 msgstr "Lua библиотека не може да се учита"
 
 msgid "cannot save undo information"
-msgstr "инфорамције за опозив не могу да се сачувају"
+msgstr "информације за опозив не могу да се сачувају"
 
 msgid ""
 "E815: Sorry, this command is disabled, the MzScheme libraries could not be "
@@ -2349,7 +2349,7 @@
 msgstr "linenr је ван опсега"
 
 msgid "not allowed in the Vim sandbox"
-msgstr "није дозвољено у Vim sandbox-у"
+msgstr "није дозвољено унутар Vim sandbox"
 
 #, c-format
 msgid "E370: Could not load library %s"
@@ -2362,7 +2362,7 @@
 
 msgid "E299: Perl evaluation forbidden in sandbox without the Safe module"
 msgstr ""
-"E299: Perl одређивање вредности у sandbox-у је забрањено без Safe модула"
+"E299: Perl одређивање вредности унутар sandbox је забрањено без Safe модула"
 
 msgid "E836: This Vim cannot execute :python after using :py3"
 msgstr "E836: Овај Vim не може да изврши :python након коришћења :py3"
@@ -2378,7 +2378,7 @@
 "E887: Sorry, this command is disabled, the Python's site module could not be "
 "loaded."
 msgstr ""
-"E887: Жао нам је, ова команда је онемогућена, Python-ов site модул није "
+"E887: Жао нам је, ова команда је онемогућена јер Python site модул није "
 "могао да се учита."
 
 msgid "E659: Cannot invoke Python recursively"
@@ -2393,11 +2393,11 @@
 msgid ""
 "E266: Sorry, this command is disabled, the Ruby library could not be loaded."
 msgstr ""
-"E266: Жао нам је, ова команда је онемогућена, Ruby библиотека није могла да "
-"се учита."
+"E266: Жао нам је, ова команда је онемогућена јер Ruby библиотека није могла "
+"да се учита."
 
 msgid "E267: unexpected return"
-msgstr "E267: неочекиван return"
+msgstr "E267: неочекивано return"
 
 msgid "E268: unexpected next"
 msgstr "E268: неочекивано next"
@@ -2409,7 +2409,7 @@
 msgstr "E270: неочекивано redo"
 
 msgid "E271: retry outside of rescue clause"
-msgstr "E271: retry ван rescue клаузуле"
+msgstr "E271: retry ван rescue одредбе"
 
 msgid "E272: unhandled exception"
 msgstr "E272: необрађени изузетак"
@@ -2481,7 +2481,7 @@
 
 #, c-format
 msgid "E572: exit code %d"
-msgstr "E572: излазни код %d"
+msgstr "E572: излазни кôд %d"
 
 msgid "cannot get line"
 msgstr "линија не може да се добије"
@@ -2494,7 +2494,7 @@
 
 #, c-format
 msgid "E573: Invalid server id used: %s"
-msgstr "E573: Користи се несправан ид сервера: %s"
+msgstr "E573: Користи се неважећи ид сервера: %s"
 
 msgid "E251: VIM instance registry property is badly formed.  Deleted!"
 msgstr "E251: registry својство VIM инстанце је лоше формирано. Обрисано!"
@@ -2555,9 +2555,6 @@
 msgid "Hit end of paragraph"
 msgstr "Достигнут је крај пасуса"
 
-msgid "E839: Completion function changed window"
-msgstr "E839: Функција довршавања је променила прозор"
-
 msgid "E840: Completion function deleted text"
 msgstr "E840: Функција довршавања је обрисала текст"
 
@@ -2672,6 +2669,9 @@
 msgid "add() argument"
 msgstr "add() аргумент"
 
+msgid "extendnew() argument"
+msgstr "extendnew() аргумент"
+
 msgid "insert() argument"
 msgstr "insert() аргумент"
 
@@ -2829,7 +2829,7 @@
 msgstr "-e\t\t\tEx режим (као \"ex\")"
 
 msgid "-E\t\t\tImproved Ex mode"
-msgstr "-E\t\t\tУнапређен Ex режим"
+msgstr "-E\t\t\tУнапређени Ex режим"
 
 msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
 msgstr "-s\t\t\tНечујни (batch) режим (само за \"ex\")"
@@ -2838,13 +2838,13 @@
 msgstr "-d\t\t\tDiff режим (као \"vimdiff\")"
 
 msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
-msgstr "-y\t\t\tEasy режим (као \"evim\", безрежимни)"
+msgstr "-y\t\t\tЈедноставни режим (као \"evim\", безрежимни)"
 
 msgid "-R\t\t\tReadonly mode (like \"view\")"
-msgstr "-R\t\t\tReadonly режим (као \"view\")"
+msgstr "-R\t\t\tСамо-за-читање режим (као \"view\")"
 
 msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
-msgstr "-Z\t\t\tRestricted режим (као \"rvim\")"
+msgstr "-Z\t\t\tОграничени режим (као \"rvim\")"
 
 msgid "-m\t\t\tModifications (writing files) not allowed"
 msgstr "-m\t\t\tИзмене (уписивање фајлова) нису дозвољене"
@@ -2862,10 +2862,10 @@
 msgstr "-C\t\t\tКомпатибилан са Vi: 'compatible'"
 
 msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
-msgstr "-N\t\t\tНе потпуно Vi компатибилан: 'nocompatible'"
+msgstr "-N\t\t\tНе потпуно Vi компатибилно: 'nocompatible'"
 
 msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]"
-msgstr "-V[N][fname]\t\tБуди опширан [ниво N] [бележи поруке у fname]"
+msgstr "-V[N][имеф]\t\tБуди опширан [ниво N] [бележи поруке у имеф]"
 
 msgid "-D\t\t\tDebugging mode"
 msgstr "-D\t\t\tDebugging режим"
@@ -3133,7 +3133,7 @@
 
 #, c-format
 msgid "E358: 'langmap': Extra characters after semicolon: %s"
-msgstr "E358: 'langmap': Има још карактера након тачказареза: %s"
+msgstr "E358: 'langmap': Има још карактера након тачка зареза: %s"
 
 msgid "No marks set"
 msgstr "Нема постављених маркера"
@@ -3202,7 +3202,7 @@
 msgstr "E296: Грешка код постављања показивача за упис у привремени фајл"
 
 msgid "E297: Write error in swap file"
-msgstr "E297: Грешка при упису преивременог фајла"
+msgstr "E297: Грешка при упису привременог фајла"
 
 msgid "E300: Swap file already exists (symlink attack?)"
 msgstr "E300: Привремени фајл већ постоји (symlink напад?)"
@@ -3246,7 +3246,7 @@
 msgstr "E306: %s не може да се отвори"
 
 msgid "Unable to read block 0 from "
-msgstr "Није могуће литање блока 0 из "
+msgstr "Није могуће читање блока 0 из "
 
 msgid ""
 "\n"
@@ -3256,10 +3256,10 @@
 "Можда нису направљене никакве измене или Vim није освежио привремени фајл."
 
 msgid " cannot be used with this version of Vim.\n"
-msgstr " не може да се користи са овом верзијом Vim-а.\n"
+msgstr " не може да се користи са овом верзијом програма Vim.\n"
 
 msgid "Use Vim version 3.0.\n"
-msgstr "Користи се Vim верзијe 3.0.\n"
+msgstr "Користи се Vim верзије 3.0.\n"
 
 #, c-format
 msgid "E307: %s does not look like a Vim swap file"
@@ -3281,7 +3281,7 @@
 #, c-format
 msgid ""
 "E833: %s is encrypted and this version of Vim does not support encryption"
-msgstr "E833: %s је шифрована и ова верзија Vim-а не подржава шифровање"
+msgstr "E833: %s је шифрована а ова верзија програма Vim не подржава шифровање"
 
 msgid " has been damaged (page size is smaller than minimum value).\n"
 msgstr " је оштећена (величина странице је маља од минималне вредности).\n"
@@ -3485,7 +3485,7 @@
 "         [not usable with this version of Vim]"
 msgstr ""
 "\n"
-"         [није употребљив са овом верзијом Vim-а]"
+"         [није употребљив са овом верзијом програма Vim]"
 
 msgid ""
 "\n"
@@ -3690,7 +3690,7 @@
 
 #, c-format
 msgid "E335: Menu not defined for %s mode"
-msgstr "E335: Мени није дефинисан за %s рeжим"
+msgstr "E335: Мени није дефинисан за %s режим"
 
 msgid "E333: Menu path must lead to a menu item"
 msgstr "E333: Путања менија мора да води у ставку менија"
@@ -3855,7 +3855,7 @@
 msgstr "E658: NetBeans веза је изгубљена за бафер %d"
 
 msgid "E838: netbeans is not supported with this GUI"
-msgstr "E838: netbeans није подржан са овим ГКИ"
+msgstr "E838: овај ГКИ не подржава netbeans"
 
 msgid "E511: netbeans already connected"
 msgstr "E511: netbeans је већ повезан"
@@ -3968,14 +3968,14 @@
 msgstr "E519: Опција није подржана"
 
 msgid "E520: Not allowed in a modeline"
-msgstr "E520: Није довољено у режимској линији"
+msgstr "E520: Није дозвољено у режимској линији"
 
 msgid "E992: Not allowed in a modeline when 'modelineexpr' is off"
 msgstr ""
 "E992: Није дозвољено у режимској линији када је 'modelineexpr' искључена"
 
 msgid "E846: Key code not set"
-msgstr "E846: Није постављeн код тастера"
+msgstr "E846: Није постављен кôд тастера"
 
 msgid "E521: Number required after ="
 msgstr "E521: Потребан је број након ="
@@ -3985,7 +3985,7 @@
 
 msgid "E946: Cannot make a terminal with running job modifiable"
 msgstr ""
-"E946: Терминал са задатком који се извршава не може да се учини измењивим"
+"E946: Терминал са послом који се извршава не може да се учини измењивим"
 
 msgid "E590: A preview window already exists"
 msgstr "E590: Прозор за преглед већ постоји"
@@ -4113,14 +4113,14 @@
 msgstr "E598: Неисправан fontset"
 
 msgid "E533: can't select wide font"
-msgstr "E533: широки фонт не може да се изабере"
+msgstr "E533: не може да се изабере широки фонт"
 
 msgid "E534: Invalid wide font"
-msgstr "E534: Неисправан широки фонт"
+msgstr "E534: Неважећи широки фонт"
 
 #, c-format
 msgid "E535: Illegal character after <%c>"
-msgstr "E535: Неважећи карактер након <%c>"
+msgstr "E535: Недозвољен карактер након <%c>"
 
 msgid "E536: comma required"
 msgstr "E536: потребан зарез"
@@ -4533,7 +4533,7 @@
 
 #, c-format
 msgid "E64: %s%c follows nothing"
-msgstr "E64: %s%c je иза ничега"
+msgstr "E64: %s%c је иза ничега"
 
 msgid "E68: Invalid character after \\z"
 msgstr "E68: Неважећи карактер након \\z"
@@ -4576,7 +4576,7 @@
 msgstr "E339: Шаблон је предугачак"
 
 msgid "External submatches:\n"
-msgstr "Спољна под-подударања:\n"
+msgstr "Спољна подподударања:\n"
 
 msgid "E865: (NFA) Regexp end encountered prematurely"
 msgstr "E865: (НКА) прерано је достигнут крај регизраза"
@@ -4782,7 +4782,7 @@
 msgstr "наставља се у %s"
 
 msgid "modeline"
-msgstr "режимскe линијe (modeline)"
+msgstr "режимске линијe (modeline)"
 
 msgid "--cmd argument"
 msgstr "--cmd аргументa"
@@ -4791,10 +4791,13 @@
 msgstr "-c аргументa"
 
 msgid "environment variable"
-msgstr "променљивe окружења"
+msgstr "променљиве окружења"
 
 msgid "error handler"
-msgstr "процедурe за обраду грешке"
+msgstr "процедуре за обраду грешке"
+
+msgid "changed window size"
+msgstr "промењена величина прозора"
 
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr "W15: Упозорење: Погрешан сепаратор линије, можда недостаје ^M"
@@ -4994,7 +4997,7 @@
 msgstr "E771: Стари правописни фајл, потребно је да се освежи"
 
 msgid "E772: Spell file is for newer version of Vim"
-msgstr "E772: Правописни фајл је за новију верзију Vim-а"
+msgstr "E772: Правописни фајл је за новију верзију програма Vim"
 
 msgid "E770: Unsupported section in spell file"
 msgstr "E770: Неподржана секција у правописном фајлу"
@@ -5009,7 +5012,7 @@
 
 #, c-format
 msgid "E780: .sug file is for newer version of Vim: %s"
-msgstr "E780: .sug фајл је за новију верзију Vim-а: %s"
+msgstr "E780: .sug фајл је за новију верзију програма Vim: %s"
 
 #, c-format
 msgid "E781: .sug file doesn't match .spl file: %s"
@@ -5115,7 +5118,7 @@
 
 #, c-format
 msgid "Unrecognized or duplicate item in %s line %d: %s"
-msgstr "Непрепосната или дупла ставка у %s линија %d: %s"
+msgstr "Непрепозната или дупла ставка у %s линија %d: %s"
 
 #, c-format
 msgid "Missing FOL/LOW/UPP line in %s"
@@ -5191,7 +5194,7 @@
 
 #, c-format
 msgid "Duplicate /encoding= line ignored in %s line %ld: %s"
-msgstr "Дупликат /encoding= линије sе игнорише у %s линија %ld: %s"
+msgstr "Дупликат /encoding= линије се игнорише у %s линија %ld: %s"
 
 #, c-format
 msgid "/encoding= line after word ignored in %s line %ld: %s"
@@ -5279,6 +5282,9 @@
 msgid "Word '%.*s' removed from %s"
 msgstr "Реч '%.*s' је уклоњена из %s"
 
+msgid "Seek error in spellfile"
+msgstr "Грешка постављања у правописном фајлу"
+
 #, c-format
 msgid "Word '%.*s' added to %s"
 msgstr "Реч '%.*s' је додата у %s"
@@ -5371,7 +5377,7 @@
 "--- Syntax sync items ---"
 msgstr ""
 "\n"
-"--- Ставке синхро синтаксе ---"
+"--- Синхро ставке синтаксе ---"
 
 msgid ""
 "\n"
@@ -5642,7 +5648,7 @@
 msgstr "завршен"
 
 msgid "E958: Job already finished"
-msgstr "E958: Задатак је већ завршен"
+msgstr "E958: Посао је већ завршен"
 
 #, c-format
 msgid "E953: File exists: %s"
@@ -5676,7 +5682,7 @@
 msgstr "E967: информације о особини текста се искварене"
 
 msgid "E968: Need at least one of 'id' or 'type'"
-msgstr "E968: Неопхпдан је бар један од 'id' или 'type'"
+msgstr "E968: Неопходан је бар један од 'id' или 'type'"
 
 msgid "E860: Need 'id' and 'type' with 'both'"
 msgstr "E860: 'id' и 'type' су потребни уз 'both'"
@@ -5970,7 +5976,7 @@
 msgstr "E177: Бројач не може да се наведе два пута"
 
 msgid "E178: Invalid default value for count"
-msgstr "E178: Несправна подразумевана вредност за бројач"
+msgstr "E178: Неисправна подразумевана вредност за бројач"
 
 msgid "E179: argument required for -complete"
 msgstr "E179: потребан је аргумент за -complete"
@@ -6090,7 +6096,7 @@
 msgstr "E124: Недостаје '(': %s"
 
 msgid "E862: Cannot use g: here"
-msgstr "E862: g: не може овде да се користи"
+msgstr "E862: Овде не може да се користи g:"
 
 #, c-format
 msgid "E932: Closure function should not be at top level: %s"
@@ -6201,14 +6207,14 @@
 "Included patches: "
 msgstr ""
 "\n"
-"Укључене исправке: "
+"Укључене закрпе: "
 
 msgid ""
 "\n"
 "Extra patches: "
 msgstr ""
 "\n"
-"Екстра исправке: "
+"Додатне закрпе: "
 
 msgid "Modified by "
 msgstr "Модификовао "
@@ -6343,7 +6349,7 @@
 msgstr "Повезивање: "
 
 msgid "  DEBUG BUILD"
-msgstr "  DEBUG ИЗДАЊЕ"
+msgstr "  ДИБАГ ИЗДАЊЕ"
 
 msgid "VIM - Vi IMproved"
 msgstr "VIM - Vi IMproved"
@@ -6352,7 +6358,7 @@
 msgstr "верзија "
 
 msgid "by Bram Moolenaar et al."
-msgstr "написали Bram Moolenaar et al."
+msgstr "написали Брам Моленар и др."
 
 msgid "Vim is open source and freely distributable"
 msgstr "Vim је отвореног кода и може слободно да се дистрибуира"
@@ -6367,7 +6373,7 @@
 msgstr "откуцајте  :q<Ентер>               за излаз         "
 
 msgid "type  :help<Enter>  or  <F1>  for on-line help"
-msgstr "откуцајте  :help<Ентер>  или  <F1> за on-line помоћ "
+msgstr "откуцајте  :help<Ентер>  или  <F1> за директну помоћ"
 
 msgid "type  :help version8<Enter>   for version info"
 msgstr "откуцајте  :help version8<Ентер>   за инфо о верзији"
@@ -6388,13 +6394,13 @@
 msgstr "Безрежимски рад, умеће се откуцани текст"
 
 msgid "menu  Edit->Global Settings->Toggle Insert Mode  "
-msgstr "мени  Уређивање->Глобална подешавања->Преклапај режим Уметање  "
+msgstr "мени  Уређивање->Општа подешавања->Режим Уметање (да/не)  "
 
 msgid "                              for two modes      "
 msgstr "                              за два режима      "
 
 msgid "menu  Edit->Global Settings->Toggle Vi Compatible"
-msgstr "мени  Уређивање->Глобална подешавања->Преклапај Vi Компатибилно"
+msgstr "мени  Уређивање->Општа подешавања->'Vi' сагласно (да/не)"
 
 msgid "                              for Vim defaults   "
 msgstr "                              за Vim подразумевано   "
@@ -6412,7 +6418,7 @@
 msgstr "откуцајте  :help register<Ентер>   за информације   "
 
 msgid "menu  Help->Sponsor/Register  for information    "
-msgstr "мени  Помоћ->Спонзор/Региструј се  за информације    "
+msgstr "мени  Помоћ->Спонзор/Региструјте се  за информације    "
 
 msgid "[end of lines]"
 msgstr "[крај линија]"
@@ -6575,7 +6581,7 @@
 
 #, c-format
 msgid "E137: Viminfo file is not writable: %s"
-msgstr "E137: Viminfo фајл није уписив: %s"
+msgstr "E137: У viminfo фајл не може да се упише: %s"
 
 #, c-format
 msgid "E929: Too many viminfo temp files, like %s!"
@@ -6641,7 +6647,7 @@
 msgstr "Уређуј са &Vim-ом"
 
 msgid "Edit with existing Vim"
-msgstr "Уређуј са постојећим Vim"
+msgstr "Уређуј са постојећим Vim-ом"
 
 msgid "Edit with existing Vim - "
 msgstr "Уређуј са постојећим Vim - "
@@ -6667,6 +6673,9 @@
 msgid "E121: Undefined variable: %c:%s"
 msgstr "E121: Недефинисана променљива: %c:%s"
 
+msgid "E464: Ambiguous use of user-defined command"
+msgstr "E464: Двосмислена употреба кориснички дефинисане команде"
+
 msgid "E476: Invalid command"
 msgstr "E476: Неважећа команда"
 
@@ -6694,8 +6703,8 @@
 msgstr "E909: Специјална променљива не може да се индексира"
 
 #, c-format
-msgid "E1100: Missing :var: %s"
-msgstr "E1100: Недостаје :var: %s"
+msgid "E1100: Command not supported in Vim9 script (missing :var?): %s"
+msgstr "E1100: Команда се не подржава у Vim9 скрипту (недостаје :var?): %s"
 
 #, c-format
 msgid "E1001: Variable not found: %s"
@@ -6709,8 +6718,8 @@
 msgstr "E1003: Недостаје повратна вредност"
 
 #, c-format
-msgid "E1004: White space required before and after '%s'"
-msgstr "E1004: Неопходан је празан простор испред и иза '%s'"
+msgid "E1004: White space required before and after '%s' at \"%s\""
+msgstr "E1004: Неопходан је празан простор испред и иза '%s' код \"%s\""
 
 msgid "E1005: Too many argument types"
 msgstr "E1005: Сувише типова аргумената"
@@ -6783,8 +6792,8 @@
 msgstr "E1022: Потребан је тип или иницијализација"
 
 #, c-format
-msgid "E1023: Using a Number as a Bool: %d"
-msgstr "E1023: Број се користи као Логичка: %d"
+msgid "E1023: Using a Number as a Bool: %lld"
+msgstr "E1023: Број се користи као Логичка: %lld"
 
 msgid "E1024: Using a Number as a String"
 msgstr "E1024: Број се користи као Стринг"
@@ -6870,10 +6879,11 @@
 
 #, c-format
 msgid "E1049: Item not exported in script: %s"
-msgstr "E1049: Ставка није експортована у скрипт: %s"
+msgstr "E1049: Ставка није извезена у скрипти: %s"
 
-msgid "E1050: Colon required before a range"
-msgstr "E1050: Испред опсега је неопходна двотачка"
+#, c-format
+msgid "E1050: Colon required before a range: %s"
+msgstr "E1050: Испред опсега је неопходна двотачка: %s"
 
 msgid "E1051: Wrong argument type for +"
 msgstr "E1051: Погрешан тип аргумента за +"
@@ -6931,12 +6941,12 @@
 msgstr "E1067: Граничници се не подударају: %s"
 
 #, c-format
-msgid "E1068: No white space allowed before '%s'"
-msgstr "E1068: Није дозвољен празан простор испред '%s'"
+msgid "E1068: No white space allowed before '%s': %s"
+msgstr "E1068: Није дозвољен празан простор испред '%s': %s"
 
 #, c-format
-msgid "E1069: White space required after '%s'"
-msgstr "E1069: Потребан је празан простор након '%s'"
+msgid "E1069: White space required after '%s': %s"
+msgstr "E1069: Потребан је празан простор након '%s': %s"
 
 msgid "E1070: Missing \"from\""
 msgstr "E1070: Недостаје \"from\""
@@ -7014,7 +7024,7 @@
 msgstr "E1094: Import може да се употреби само у скрипти"
 
 msgid "E1095: Unreachable code after :return"
-msgstr "E1095: Код не може да се досегне након :return"
+msgstr "E1095: Кôд не може да се досегне након :return"
 
 msgid "E1096: Returning a value in a function without a return type"
 msgstr "E1096: Враћа се вредност из функције без наведеног повратног типа"
@@ -7042,7 +7052,7 @@
 
 #, c-format
 msgid "E1105: Cannot convert %s to string"
-msgstr "E1105: %s не може да се ковертује у стринг"
+msgstr "E1105: %s не може да се конвертује у стринг"
 
 msgid "E1106: One argument too many"
 msgstr "E1106: Један аргумент вишка"
@@ -7068,7 +7078,7 @@
 
 #, c-format
 msgid "E1111: List item %d range invalid"
-msgstr "E1111: Опсег ставке листе %d је неважћи"
+msgstr "E1111: Опсег ставке листе %d је неважећи"
 
 #, c-format
 msgid "E1112: List item %d cell width invalid"
@@ -7152,7 +7162,7 @@
 msgstr "E1135: <Cmd> мапирање мора да се заврши са <CR>"
 
 msgid "E1136: <Cmd> mapping must end with <CR> before second <Cmd>"
-msgstr "E1136: <Cmd> мапирање мора да се заврђи са <CR> пре другог <Cmd>"
+msgstr "E1136: <Cmd> мапирање мора да се заврши са <CR> пре другог <Cmd>"
 
 #, c-format
 msgid "E1137: <Cmd> mapping must not include %s key"
@@ -7167,6 +7177,85 @@
 msgid "E1140: For argument must be a sequence of lists"
 msgstr "E1140: For аргумент мора бити низ листи"
 
+msgid "E1141: Indexable type required"
+msgstr "E1141: Потребан је тип који може да се индексира"
+
+msgid "E1142: Non-empty string required"
+msgstr "E1142: Потребан је стринг који није празан"
+
+#, c-format
+msgid "E1143: Empty expression: \"%s\""
+msgstr "E1143: Празан израз: \"%s\""
+
+#, c-format
+msgid "E1144: Command is not followed by white space: %s"
+msgstr "E1144: Иза команде се не налази празан простор: %s"
+
+#, c-format
+msgid "E1145: Missing heredoc end marker: %s"
+msgstr "E1145: Недостаје heredoc маркер краја: %s"
+
+#, c-format
+msgid "E1146: Command not recognized: %s"
+msgstr "E1146: Команда се не препознаје: %s"
+
+msgid "E1147: List not set"
+msgstr "E1147: Листа није постављена"
+
+#, c-format
+msgid "E1148: Cannot index a %s"
+msgstr "E1148: %s не може да се индексира"
+
+#, c-format
+msgid "E1149: Script variable is invalid after reload in function %s"
+msgstr ""
+"E1149: Скрипт променљива више важи након поновног учитавања у функцији %s"
+
+msgid "E1150: Script variable type changed"
+msgstr "E1150: Тип скрипт променљиве се променио"
+
+msgid "E1151: Mismatched endfunction"
+msgstr "E1151: Неупарено endfunction"
+
+msgid "E1152: Mismatched enddef"
+msgstr "E1152: Неупарено enddef"
+
+msgid "E1153: Invalid operation for bool"
+msgstr "E1153: Неважећа операција за логички"
+
+msgid "E1154: Divide by zero"
+msgstr "E1154: Дељење са нулом"
+
+msgid "E1155: Cannot define autocommands for ALL events"
+msgstr "E1155: Аутокоманде не могу да се дефинишу за СВЕ догађаје"
+
+msgid "E1156: Cannot change the argument list recursively"
+msgstr "E1156: Листа аргумената не може да се мења рекурзивно"
+
+msgid "E1157: Missing return type"
+msgstr "E1157: Недостаје тип резултата који се враћа"
+
+msgid "E1158: Cannot use flatten() in Vim9 script"
+msgstr "E1158: Функција flatten() не може да се користи у Vim9 скрипту"
+
+msgid "E1159: Cannot split a window when closing the buffer"
+msgstr "E1159: Прозор не може да се подели када се затвара бафер"
+
+msgid "E1160: Cannot use a default for variable arguments"
+msgstr "E1160: За аргументе променљиве не може да се користи подразумевана вредност"
+
+#, c-format
+msgid "E1161: Cannot json encode a %s"
+msgstr "E1161: %s не може да се кодује у json"
+
+#, c-format
+msgid "E1162: Register name must be one character: %s"
+msgstr "E1162: Име регистра мора бити један карактер: %s"
+
+#, c-format
+msgid "E1163: Variable %d: type mismatch, expected %s but got %s"
+msgstr "E1163: Променљива %d: неодговарајући тип, очекује се %s али је наведено %s"
+
 msgid "--No lines in buffer--"
 msgstr "--У баферу нема линија--"
 
@@ -7259,11 +7348,11 @@
 
 #, c-format
 msgid "E475: Invalid value for argument %s"
-msgstr "E475: Неважећa вредност за аргумент: %s"
+msgstr "E475: Неважећа вредност за аргумент: %s"
 
 #, c-format
 msgid "E475: Invalid value for argument %s: %s"
-msgstr "E475: Неважећa вредност за аргумент %s: %s"
+msgstr "E475: Неважећа вредност за аргумент %s: %s"
 
 #, c-format
 msgid "E15: Invalid expression: %s"
@@ -7365,7 +7454,7 @@
 
 #, c-format
 msgid "E247: no registered server named \"%s\""
-msgstr "E247: нема регистованог сервера под именом \"%s\""
+msgstr "E247: нема регистрованог сервера под именом \"%s\""
 
 #, c-format
 msgid "E482: Can't create file %s"
@@ -7443,7 +7532,7 @@
 
 #, c-format
 msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr "E794: Не може да се постави променљива у sandbox-у: \"%s\""
+msgstr "E794: Не може да се постави променљива унутар sandbox: \"%s\""
 
 msgid "E928: String required"
 msgstr "E928: Захтева се Стринг"
@@ -7527,7 +7616,7 @@
 msgstr "E47: Грешка приликом читања фајла грешке"
 
 msgid "E48: Not allowed in sandbox"
-msgstr "E48: Није дозвољено у sandbox-у"
+msgstr "E48: Није дозвољено унутар sandbox"
 
 msgid "E523: Not allowed here"
 msgstr "E523: Није дозвољено овде"
@@ -7605,7 +7694,7 @@
 
 #, c-format
 msgid "E720: Missing colon in Dictionary: %s"
-msgstr "E720: Недостаје тачка-зарез у Речнику: %s"
+msgstr "E720: У Речнику недостаје двотачка: %s"
 
 #, c-format
 msgid "E721: Duplicate key in Dictionary: \"%s\""
@@ -7660,7 +7749,7 @@
 msgstr "E919: Није пронађен директоријум у '%s': \"%s\""
 
 msgid "E952: Autocommand caused recursive behavior"
-msgstr "E952: Аутокомандa je изазвала рекурзивно понашање"
+msgstr "E952: Аутокоманда је изазвала рекурзивно понашање"
 
 msgid "E813: Cannot close autocmd or popup window"
 msgstr "E813: Прозор аутокоманде или искачући прозор не може да се затвори"
@@ -8058,7 +8147,8 @@
 
 msgid ""
 "\" Each \"set\" line shows the current value of an option (on the left)."
-msgstr "\" Свака „set” линија приказује текућу вредност опције (са леве стране)."
+msgstr ""
+"\" Свака „set” линија приказује текућу вредност опције (са леве стране)."
 
 msgid "\" Hit <Enter> on a \"set\" line to execute it."
 msgstr "\" Притисните <Ентер> на „set” линији да је извршите."
@@ -8070,11 +8160,13 @@
 "\"            For other options you can edit the value before hitting "
 "<Enter>."
 msgstr ""
-"\"            Осталим опцијама можете променити вредност пре притиска "
-"на <Ентер>."
+"\"            Осталим опцијама можете променити вредност пре притиска на "
+"<Ентер>."
 
 msgid "\" Hit <Enter> on a help line to open a help window on this option."
-msgstr "\" Притисните <Ентер> на линији помоћи да се отвори прозор помоћи за ову опцију."
+msgstr ""
+"\" Притисните <Ентер> на линији помоћи да се отвори прозор помоћи за ову "
+"опцију."
 
 msgid "\" Hit <Enter> on an index line to jump there."
 msgstr "\" Притисните <Ентер> на линији индекса да скочите тамо."
@@ -8239,7 +8331,7 @@
 msgstr "број линија које скролују CTRL-U и CTRL-D"
 
 msgid "number of screen lines to show around the cursor"
-msgstr "број екранских линија које се пеиказују око курсора"
+msgstr "број екранских линија које се приказују око курсора"
 
 msgid "long lines wrap"
 msgstr "дуге линије се обавијају"
@@ -8529,7 +8621,7 @@
 msgstr "наводи како у различитим режимима изгледа курсор"
 
 msgid "show info in the window title"
-msgstr "у наслову прозора се приказују инфомрмације"
+msgstr "у наслову прозора се приказују информације"
 
 msgid "percentage of 'columns' used for the window title"
 msgstr "проценат 'columns' који се користи за наслов прозора"
@@ -8587,7 +8679,7 @@
 msgstr "листа имена фонтова који ће да се користе у ГКИ"
 
 msgid "pair of fonts to be used, for multibyte editing"
-msgstr "пар фонтова који ће да се користе, за уређевање вишебајтног текста"
+msgstr "пар фонтова који ће да се користе, за уређивање вишебајтног текста"
 
 msgid "list of font names to be used for double-wide characters"
 msgstr ""
@@ -8813,10 +8905,10 @@
 msgstr "минимална ширина искачућег менија"
 
 msgid "user defined function for Insert mode completion"
-msgstr "кориснички дефинисана фунцкија за довршавање у режиму Уметање"
+msgstr "кориснички дефинисана функција за довршавање у режиму Уметање"
 
 msgid "function for filetype-specific Insert mode completion"
-msgstr "фунцкија за довршавање у режиму Уметање специфично за тип фајла"
+msgstr "функција за довршавање у режиму Уметање специфично за тип фајла"
 
 msgid "list of dictionary files for keyword completion"
 msgstr "листа фајлова речника за довршавање кључних речи"
@@ -8876,7 +8968,7 @@
 msgstr "<Tab> у увлачењу умеће 'shiftwidth' размака"
 
 msgid "if non-zero, number of spaces to insert for a <Tab>"
-msgstr "ако је различито од нуле, број разнака који се умеће за <Tab>"
+msgstr "ако је различито од нуле, број размака који се умеће за <Tab>"
 
 msgid "round to 'shiftwidth' for \"<<\" and \">>\""
 msgstr "заокружено на 'shiftwidth' за „<<” и „>>”"
@@ -8903,7 +8995,7 @@
 msgstr "листа речи које изазивају још C-увлачења"
 
 msgid "expression used to obtain the indent of a line"
-msgstr "израз који се користи за израчунавање увлачњеа линије"
+msgstr "израз који се користи за израчунавање увлачења линије"
 
 msgid "keys that trigger indenting with 'indentexpr' in Insert mode"
 msgstr "тастери који окидају увлачење са 'indentexpr' у режиму Уметање"
@@ -9273,7 +9365,7 @@
 msgstr "када се командна-линија уређује с десна-у-лево"
 
 msgid "insert characters backwards"
-msgstr "умерање карактера уназад"
+msgstr "уметање карактера уназад"
 
 msgid "allow CTRL-_ in Insert and Command-line mode to toggle 'revins'"
 msgstr ""
@@ -9356,7 +9448,7 @@
 msgstr "кодирање карактера које користи терминал"
 
 msgid "expression used for character encoding conversion"
-msgstr "израз који се корсти за конверзију кодирања карактера"
+msgstr "израз који се користи за конверзију кодирања карактера"
 
 msgid "delete combining (composing) characters on their own"
 msgstr "брисање самих комбинујућих (компонујућих) карактера"
@@ -9474,5 +9566,3 @@
 
 msgid "name of the MzScheme GC dynamic library"
 msgstr "име MzScheme GC динамичке библиотеке"
-
-