changeset 26779:edb7d53fc7e3

Update runtime files Commit: https://github.com/vim/vim/commit/a4d131d11052cafcc5baad2273ef48e0dd4d09c5 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 27 21:33:07 2021 +0000 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Mon, 27 Dec 2021 22:45:03 +0100
parents 144f71ba54c0
children b24b2217ff9e
files runtime/autoload/ccomplete.vim runtime/doc/change.txt runtime/doc/cmdline.txt runtime/doc/editing.txt runtime/doc/fold.txt runtime/doc/help.txt runtime/doc/insert.txt runtime/doc/map.txt runtime/doc/motion.txt runtime/doc/options.txt runtime/doc/remote.txt runtime/doc/repeat.txt runtime/doc/tags runtime/doc/todo.txt runtime/filetype.vim src/po/tr.po
diffstat 16 files changed, 1757 insertions(+), 1469 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/ccomplete.vim
+++ b/runtime/autoload/ccomplete.vim
@@ -1,482 +1,523 @@
-" Vim completion script
-" Language:	C
-" Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2020 Nov 14
+vim9script noclear
 
-let s:cpo_save = &cpo
-set cpo&vim
+# Vim completion script
+# Language:     C
+# Maintainer:   Bram Moolenaar <Bram@vim.org>
+#		Rewritten in Vim9 script by github user lacygoill
+# Last Change:  2021 Dec 27
 
-" This function is used for the 'omnifunc' option.
-func ccomplete#Complete(findstart, base)
-  if a:findstart
-    " Locate the start of the item, including ".", "->" and "[...]".
-    let line = getline('.')
-    let start = col('.') - 1
-    let lastword = -1
+var prepended: string
+var grepCache: dict<list<dict<any>>>
+
+# This function is used for the 'omnifunc' option.
+def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
+  if findstart
+    # Locate the start of the item, including ".", "->" and "[...]".
+    var line: string = getline('.')
+    var start: number = charcol('.') - 1
+    var lastword: number = -1
     while start > 0
       if line[start - 1] =~ '\w'
-	let start -= 1
+        --start
       elseif line[start - 1] =~ '\.'
-	if lastword == -1
-	  let lastword = start
-	endif
-	let start -= 1
-      elseif start > 1 && line[start - 2] == '-' && line[start - 1] == '>'
-	if lastword == -1
-	  let lastword = start
-	endif
-	let start -= 2
+        if lastword == -1
+          lastword = start
+        endif
+        --start
+      elseif start > 1 && line[start - 2] == '-'
+        && line[start - 1] == '>'
+        if lastword == -1
+          lastword = start
+        endif
+        start -= 2
       elseif line[start - 1] == ']'
-	" Skip over [...].
-	let n = 0
-	let start -= 1
-	while start > 0
-	  let start -= 1
-	  if line[start] == '['
-	    if n == 0
-	      break
-	    endif
-	    let n -= 1
-	  elseif line[start] == ']'  " nested []
-	    let n += 1
-	  endif
-	endwhile
+        # Skip over [...].
+        var n: number = 0
+        --start
+        while start > 0
+          --start
+          if line[start] == '['
+            if n == 0
+              break
+            endif
+            --n
+          elseif line[start] == ']'  # nested []
+            ++n
+          endif
+        endwhile
       else
-	break
+        break
       endif
     endwhile
 
-    " Return the column of the last word, which is going to be changed.
-    " Remember the text that comes before it in s:prepended.
+    # Return the column of the last word, which is going to be changed.
+    # Remember the text that comes before it in prepended.
     if lastword == -1
-      let s:prepended = ''
-      return start
+      prepended = ''
+      return byteidx(line, start)
     endif
-    let s:prepended = strpart(line, start, lastword - start)
-    return lastword
+    prepended = line[start : lastword - 1]
+    return byteidx(line, lastword)
   endif
 
-  " Return list of matches.
+  # Return list of matches.
 
-  let base = s:prepended . a:base
+  var base: string = prepended .. abase
 
-  " Don't do anything for an empty base, would result in all the tags in the
-  " tags file.
+  # Don't do anything for an empty base, would result in all the tags in the
+  # tags file.
   if base == ''
     return []
   endif
 
-  " init cache for vimgrep to empty
-  let s:grepCache = {}
+  # init cache for vimgrep to empty
+  grepCache = {}
 
-  " Split item in words, keep empty word after "." or "->".
-  " "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
-  " We can't use split, because we need to skip nested [...].
-  " "aa[...]" -> ['aa', '[...]'], "aa.bb[...]" -> ['aa', 'bb', '[...]'], etc.
-  let items = []
-  let s = 0
-  let arrays = 0
+  # Split item in words, keep empty word after "." or "->".
+  # "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
+  # We can't use split, because we need to skip nested [...].
+  # "aa[...]" -> ['aa', '[...]'], "aa.bb[...]" -> ['aa', 'bb', '[...]'], etc.
+  var items: list<string>
+  var s: number = 0
+  var arrays: number = 0
   while 1
-    let e = match(base, '\.\|->\|\[', s)
+    var e: number = base->charidx(match(base, '\.\|->\|\[', s))
     if e < 0
       if s == 0 || base[s - 1] != ']'
-	call add(items, strpart(base, s))
+        items->add(base[s :])
       endif
       break
     endif
     if s == 0 || base[s - 1] != ']'
-      call add(items, strpart(base, s, e - s))
+      items->add(base[s : e - 1])
     endif
     if base[e] == '.'
-      let s = e + 1	" skip over '.'
+      # skip over '.'
+      s = e + 1
     elseif base[e] == '-'
-      let s = e + 2	" skip over '->'
+      # skip over '->'
+      s = e + 2
     else
-      " Skip over [...].
-      let n = 0
-      let s = e
-      let e += 1
-      while e < len(base)
-	if base[e] == ']'
-	  if n == 0
-	    break
-	  endif
-	  let n -= 1
-	elseif base[e] == '['  " nested [...]
-	  let n += 1
-	endif
-	let e += 1
+      # Skip over [...].
+      var n: number = 0
+      s = e
+      ++e
+      while e < strcharlen(base)
+        if base[e] == ']'
+          if n == 0
+            break
+          endif
+          --n
+        elseif base[e] == '['  # nested [...]
+          ++n
+        endif
+        ++e
       endwhile
-      let e += 1
-      call add(items, strpart(base, s, e - s))
-      let arrays += 1
-      let s = e
+      ++e
+      items->add(base[s : e - 1])
+      ++arrays
+      s = e
     endif
   endwhile
 
-  " Find the variable items[0].
-  " 1. in current function (like with "gd")
-  " 2. in tags file(s) (like with ":tag")
-  " 3. in current file (like with "gD")
-  let res = []
-  if searchdecl(items[0], 0, 1) == 0
-    " Found, now figure out the type.
-    " TODO: join previous line if it makes sense
-    let line = getline('.')
-    let col = col('.')
-    if stridx(strpart(line, 0, col), ';') != -1
-      " Handle multiple declarations on the same line.
-      let col2 = col - 1
+  # Find the variable items[0].
+  # 1. in current function (like with "gd")
+  # 2. in tags file(s) (like with ":tag")
+  # 3. in current file (like with "gD")
+  var res: list<dict<any>>
+  if items[0]->searchdecl(false, true) == 0
+    # Found, now figure out the type.
+    # TODO: join previous line if it makes sense
+    var line: string = getline('.')
+    var col: number = charcol('.')
+    if line[: col - 1]->stridx(';') >= 0
+      # Handle multiple declarations on the same line.
+      var col2: number = col - 1
       while line[col2] != ';'
-	let col2 -= 1
+        --col2
       endwhile
-      let line = strpart(line, col2 + 1)
-      let col -= col2
+      line = line[col2 + 1 :]
+      col -= col2
     endif
-    if stridx(strpart(line, 0, col), ',') != -1
-      " Handle multiple declarations on the same line in a function
-      " declaration.
-      let col2 = col - 1
+    if line[: col - 1]->stridx(',') >= 0
+      # Handle multiple declarations on the same line in a function
+      # declaration.
+      var col2: number = col - 1
       while line[col2] != ','
-	let col2 -= 1
+        --col2
       endwhile
-      if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]*  *[^ ]'
-	let line = strpart(line, col2 + 1)
-	let col -= col2
+      if line[col2 + 1 : col - 1] =~ ' *[^ ][^ ]*  *[^ ]'
+        line = line[col2 + 1 :]
+        col -= col2
       endif
     endif
     if len(items) == 1
-      " Completing one word and it's a local variable: May add '[', '.' or
-      " '->'.
-      let match = items[0]
-      let kind = 'v'
-      if match(line, '\<' . match . '\s*\[') > 0
-	let match .= '['
+      # Completing one word and it's a local variable: May add '[', '.' or
+      # '->'.
+      var match: string = items[0]
+      var kind: string = 'v'
+      if match(line, '\<' .. match .. '\s*\[') > 0
+        match ..= '['
       else
-	let res = s:Nextitem(strpart(line, 0, col), [''], 0, 1)
-	if len(res) > 0
-	  " There are members, thus add "." or "->".
-	  if match(line, '\*[ \t(]*' . match . '\>') > 0
-	    let match .= '->'
-	  else
-	    let match .= '.'
-	  endif
-	endif
+        res = line[: col - 1]->Nextitem([''], 0, true)
+        if len(res) > 0
+          # There are members, thus add "." or "->".
+          if match(line, '\*[ \t(]*' .. match .. '\>') > 0
+            match ..= '->'
+          else
+            match ..= '.'
+          endif
+        endif
       endif
-      let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
+      res = [{match: match, tagline: '', kind: kind, info: line}]
     elseif len(items) == arrays + 1
-      " Completing one word and it's a local array variable: build tagline
-      " from declaration line
-      let match = items[0]
-      let kind = 'v'
-      let tagline = "\t/^" . line . '$/'
-      let res = [{'match': match, 'tagline' : tagline, 'kind' : kind, 'info' : line}]
+      # Completing one word and it's a local array variable: build tagline
+      # from declaration line
+      var match: string = items[0]
+      var kind: string = 'v'
+      var tagline: string = "\t/^" .. line .. '$/'
+      res = [{match: match, tagline: tagline, kind: kind, info: line}]
     else
-      " Completing "var.", "var.something", etc.
-      let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
+      # Completing "var.", "var.something", etc.
+      res = line[: col - 1]->Nextitem(items[1 :], 0, true)
     endif
   endif
 
   if len(items) == 1 || len(items) == arrays + 1
-    " Only one part, no "." or "->": complete from tags file.
+    # Only one part, no "." or "->": complete from tags file.
+    var tags: list<dict<any>>
     if len(items) == 1
-      let tags = taglist('^' . base)
+      tags = taglist('^' .. base)
     else
-      let tags = taglist('^' . items[0] . '$')
+      tags = taglist('^' .. items[0] .. '$')
     endif
 
-    " Remove members, these can't appear without something in front.
-    call filter(tags, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')
+    tags
+      # Remove members, these can't appear without something in front.
+      ->filter((_, v: dict<any>): bool =>
+                v->has_key('kind') ? v.kind != 'm' : true)
+      # Remove static matches in other files.
+      ->filter((_, v: dict<any>): bool =>
+                 !v->has_key('static')
+              || !v['static']
+              || bufnr('%') == bufnr(v['filename']))
 
-    " Remove static matches in other files.
-    call filter(tags, '!has_key(v:val, "static") || !v:val["static"] || bufnr("%") == bufnr(v:val["filename"])')
-
-    call extend(res, map(tags, 's:Tag2item(v:val)'))
+    res = extendnew(res, tags->map((_, v: dict<any>) => Tag2item(v)))
   endif
 
   if len(res) == 0
-    " Find the variable in the tags file(s)
-    let diclist = taglist('^' . items[0] . '$')
-
-    " Remove members, these can't appear without something in front.
-    call filter(diclist, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')
+    # Find the variable in the tags file(s)
+    var diclist: list<dict<any>> = taglist('^' .. items[0] .. '$')
+      # Remove members, these can't appear without something in front.
+      ->filter((_, v: dict<string>): bool =>
+                v->has_key('kind') ? v.kind != 'm' : true)
 
-    let res = []
-    for i in range(len(diclist))
-      " New ctags has the "typeref" field.  Patched version has "typename".
-      if has_key(diclist[i], 'typename')
-	call extend(res, s:StructMembers(diclist[i]['typename'], items[1:], 1))
-      elseif has_key(diclist[i], 'typeref')
-	call extend(res, s:StructMembers(diclist[i]['typeref'], items[1:], 1))
+    res = []
+    for i: number in len(diclist)->range()
+      # New ctags has the "typeref" field.  Patched version has "typename".
+      if diclist[i]->has_key('typename')
+        res = extendnew(res, diclist[i]['typename']->StructMembers(items[1 :], true))
+      elseif diclist[i]->has_key('typeref')
+        res = extendnew(res, diclist[i]['typeref']->StructMembers(items[1 :], true))
       endif
 
-      " For a variable use the command, which must be a search pattern that
-      " shows the declaration of the variable.
+      # For a variable use the command, which must be a search pattern that
+      # shows the declaration of the variable.
       if diclist[i]['kind'] == 'v'
-	let line = diclist[i]['cmd']
-	if line[0] == '/' && line[1] == '^'
-	  let col = match(line, '\<' . items[0] . '\>')
-	  call extend(res, s:Nextitem(strpart(line, 2, col - 2), items[1:], 0, 1))
-	endif
+        var line: string = diclist[i]['cmd']
+        if line[: 1] == '/^'
+          var col: number = line->charidx(match(line, '\<' .. items[0] .. '\>'))
+          res = extendnew(res, line[2 : col - 1]->Nextitem(items[1 :], 0, true))
+        endif
       endif
     endfor
   endif
 
-  if len(res) == 0 && searchdecl(items[0], 1) == 0
-    " Found, now figure out the type.
-    " TODO: join previous line if it makes sense
-    let line = getline('.')
-    let col = col('.')
-    let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
+  if len(res) == 0 && items[0]->searchdecl(true) == 0
+    # Found, now figure out the type.
+    # TODO: join previous line if it makes sense
+    var line: string = getline('.')
+    var col: number = charcol('.')
+    res = line[: col - 1]->Nextitem(items[1 :], 0, true)
   endif
 
-  " If the last item(s) are [...] they need to be added to the matches.
-  let last = len(items) - 1
-  let brackets = ''
+  # If the last item(s) are [...] they need to be added to the matches.
+  var last: number = len(items) - 1
+  var brackets: string = ''
   while last >= 0
     if items[last][0] != '['
       break
     endif
-    let brackets = items[last] . brackets
-    let last -= 1
+    brackets = items[last] .. brackets
+    --last
   endwhile
 
-  return map(res, 's:Tagline2item(v:val, brackets)')
-endfunc
+  return res->map((_, v: dict<any>): dict<string> => Tagline2item(v, brackets))
+enddef
 
-func s:GetAddition(line, match, memarg, bracket)
-  " Guess if the item is an array.
-  if a:bracket && match(a:line, a:match . '\s*\[') > 0
+def GetAddition( # {{{1
+  line: string,
+  match: string,
+  memarg: list<dict<any>>,
+  bracket: bool
+): string
+  # Guess if the item is an array.
+  if bracket && match(line, match .. '\s*\[') > 0
     return '['
   endif
 
-  " Check if the item has members.
-  if len(s:SearchMembers(a:memarg, [''], 0)) > 0
-    " If there is a '*' before the name use "->".
-    if match(a:line, '\*[ \t(]*' . a:match . '\>') > 0
+  # Check if the item has members.
+  if SearchMembers(memarg, [''], false)->len() > 0
+    # If there is a '*' before the name use "->".
+    if match(line, '\*[ \t(]*' .. match .. '\>') > 0
       return '->'
     else
       return '.'
     endif
   endif
   return ''
-endfunc
+enddef
 
-" Turn the tag info "val" into an item for completion.
-" "val" is is an item in the list returned by taglist().
-" If it is a variable we may add "." or "->".  Don't do it for other types,
-" such as a typedef, by not including the info that s:GetAddition() uses.
-func s:Tag2item(val)
-  let res = {'match': a:val['name']}
+def Tag2item(val: dict<any>): dict<any> # {{{1
+# Turn the tag info "val" into an item for completion.
+# "val" is is an item in the list returned by taglist().
+# If it is a variable we may add "." or "->".  Don't do it for other types,
+# such as a typedef, by not including the info that GetAddition() uses.
+  var res: dict<any> = {match: val['name']}
 
-  let res['extra'] = s:Tagcmd2extra(a:val['cmd'], a:val['name'], a:val['filename'])
+  res['extra'] = Tagcmd2extra(val['cmd'], val['name'], val['filename'])
 
-  let s = s:Dict2info(a:val)
+  var s: string = Dict2info(val)
   if s != ''
-    let res['info'] = s
+    res['info'] = s
   endif
 
-  let res['tagline'] = ''
-  if has_key(a:val, "kind")
-    let kind = a:val['kind']
-    let res['kind'] = kind
+  res['tagline'] = ''
+  if val->has_key('kind')
+    var kind: string = val['kind']
+    res['kind'] = kind
     if kind == 'v'
-      let res['tagline'] = "\t" . a:val['cmd']
-      let res['dict'] = a:val
+      res['tagline'] = "\t" .. val['cmd']
+      res['dict'] = val
     elseif kind == 'f'
-      let res['match'] = a:val['name'] . '('
+      res['match'] = val['name'] .. '('
     endif
   endif
 
   return res
-endfunc
+enddef
 
-" Use all the items in dictionary for the "info" entry.
-func s:Dict2info(dict)
-  let info = ''
-  for k in sort(keys(a:dict))
-    let info  .= k . repeat(' ', 10 - len(k))
+def Dict2info(dict: dict<any>): string # {{{1
+# Use all the items in dictionary for the "info" entry.
+  var info: string = ''
+  for k: string in dict->keys()->sort()
+    info  ..= k .. repeat(' ', 10 - strlen(k))
     if k == 'cmd'
-      let info .= substitute(matchstr(a:dict['cmd'], '/^\s*\zs.*\ze$/'), '\\\(.\)', '\1', 'g')
+      info ..= dict['cmd']
+        ->matchstr('/^\s*\zs.*\ze$/')
+        ->substitute('\\\(.\)', '\1', 'g')
     else
-      let info .= a:dict[k]
+      var dictk: any = dict[k]
+      if typename(dictk) != 'string'
+        info ..= dictk->string()
+      else
+        info ..= dictk
+      endif
     endif
-    let info .= "\n"
+    info ..= "\n"
   endfor
   return info
-endfunc
+enddef
 
-" Parse a tag line and return a dictionary with items like taglist()
-func s:ParseTagline(line)
-  let l = split(a:line, "\t")
-  let d = {}
+def ParseTagline(line: string): dict<any> # {{{1
+# Parse a tag line and return a dictionary with items like taglist()
+  var l: list<string> = split(line, "\t")
+  var d: dict<any>
   if len(l) >= 3
-    let d['name'] = l[0]
-    let d['filename'] = l[1]
-    let d['cmd'] = l[2]
-    let n = 2
+    d['name'] = l[0]
+    d['filename'] = l[1]
+    d['cmd'] = l[2]
+    var n: number = 2
     if l[2] =~ '^/'
-      " Find end of cmd, it may contain Tabs.
+      # Find end of cmd, it may contain Tabs.
       while n < len(l) && l[n] !~ '/;"$'
-	let n += 1
-	let d['cmd'] .= "  " . l[n]
+        ++n
+        d['cmd'] ..= '  ' .. l[n]
       endwhile
     endif
-    for i in range(n + 1, len(l) - 1)
+    for i: number in range(n + 1, len(l) - 1)
       if l[i] == 'file:'
-	let d['static'] = 1
+        d['static'] = 1
       elseif l[i] !~ ':'
-	let d['kind'] = l[i]
+        d['kind'] = l[i]
       else
-	let d[matchstr(l[i], '[^:]*')] = matchstr(l[i], ':\zs.*')
+        d[l[i]->matchstr('[^:]*')] = l[i]->matchstr(':\zs.*')
       endif
     endfor
   endif
 
   return d
-endfunc
+enddef
 
-" Turn a match item "val" into an item for completion.
-" "val['match']" is the matching item.
-" "val['tagline']" is the tagline in which the last part was found.
-func s:Tagline2item(val, brackets)
-  let line = a:val['tagline']
-  let add = s:GetAddition(line, a:val['match'], [a:val], a:brackets == '')
-  let res = {'word': a:val['match'] . a:brackets . add }
+def Tagline2item(val: dict<any>, brackets: string): dict<string> # {{{1
+# Turn a match item "val" into an item for completion.
+# "val['match']" is the matching item.
+# "val['tagline']" is the tagline in which the last part was found.
+  var line: string = val['tagline']
+  var add: string = GetAddition(line, val['match'], [val], brackets == '')
+  var res: dict<string> = {word: val['match'] .. brackets .. add}
 
-  if has_key(a:val, 'info')
-    " Use info from Tag2item().
-    let res['info'] = a:val['info']
+  if val->has_key('info')
+    # Use info from Tag2item().
+    res['info'] = val['info']
   else
-    " Parse the tag line and add each part to the "info" entry.
-    let s = s:Dict2info(s:ParseTagline(line))
+    # Parse the tag line and add each part to the "info" entry.
+    var s: string = ParseTagline(line)->Dict2info()
     if s != ''
-      let res['info'] = s
+      res['info'] = s
     endif
   endif
 
-  if has_key(a:val, 'kind')
-    let res['kind'] = a:val['kind']
+  if val->has_key('kind')
+    res['kind'] = val['kind']
   elseif add == '('
-    let res['kind'] = 'f'
+    res['kind'] = 'f'
   else
-    let s = matchstr(line, '\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
+    var s: string = line->matchstr('\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
     if s != ''
-      let res['kind'] = s
+      res['kind'] = s
     endif
   endif
 
-  if has_key(a:val, 'extra')
-    let res['menu'] = a:val['extra']
+  if val->has_key('extra')
+    res['menu'] = val['extra']
     return res
   endif
 
-  " Isolate the command after the tag and filename.
-  let s = matchstr(line, '[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)')
+  # Isolate the command after the tag and filename.
+  var s: string = line->matchstr('[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)')
   if s != ''
-    let res['menu'] = s:Tagcmd2extra(s, a:val['match'], matchstr(line, '[^\t]*\t\zs[^\t]*\ze\t'))
+    res['menu'] = s->Tagcmd2extra(val['match'], line->matchstr('[^\t]*\t\zs[^\t]*\ze\t'))
   endif
   return res
-endfunc
+enddef
 
-" Turn a command from a tag line to something that is useful in the menu
-func s:Tagcmd2extra(cmd, name, fname)
-  if a:cmd =~ '^/^'
-    " The command is a search command, useful to see what it is.
-    let x = matchstr(a:cmd, '^/^\s*\zs.*\ze$/')
-    let x = substitute(x, '\<' . a:name . '\>', '@@', '')
-    let x = substitute(x, '\\\(.\)', '\1', 'g')
-    let x = x . ' - ' . a:fname
-  elseif a:cmd =~ '^\d*$'
-    " The command is a line number, the file name is more useful.
-    let x = a:fname . ' - ' . a:cmd
+def Tagcmd2extra( # {{{1
+  cmd: string,
+  name: string,
+  fname: string
+): string
+# Turn a command from a tag line to something that is useful in the menu
+  var x: string
+  if cmd =~ '^/^'
+    # The command is a search command, useful to see what it is.
+    x = cmd
+      ->matchstr('^/^\s*\zs.*\ze$/')
+      ->substitute('\<' .. name .. '\>', '@@', '')
+      ->substitute('\\\(.\)', '\1', 'g')
+      .. ' - ' .. fname
+  elseif cmd =~ '^\d*$'
+    # The command is a line number, the file name is more useful.
+    x = fname .. ' - ' .. cmd
   else
-    " Not recognized, use command and file name.
-    let x = a:cmd . ' - ' . a:fname
+    # Not recognized, use command and file name.
+    x = cmd .. ' - ' .. fname
   endif
   return x
-endfunc
-
-" Find composing type in "lead" and match items[0] with it.
-" Repeat this recursively for items[1], if it's there.
-" When resolving typedefs "depth" is used to avoid infinite recursion.
-" Return the list of matches.
-func s:Nextitem(lead, items, depth, all)
+enddef
 
-  " Use the text up to the variable name and split it in tokens.
-  let tokens = split(a:lead, '\s\+\|\<')
+def Nextitem( # {{{1
+  lead: string,
+  items: list<string>,
+  depth: number,
+  all: bool
+): list<dict<string>>
+# Find composing type in "lead" and match items[0] with it.
+# Repeat this recursively for items[1], if it's there.
+# When resolving typedefs "depth" is used to avoid infinite recursion.
+# Return the list of matches.
 
-  " Try to recognize the type of the variable.  This is rough guessing...
-  let res = []
-  for tidx in range(len(tokens))
+  # Use the text up to the variable name and split it in tokens.
+  var tokens: list<string> = split(lead, '\s\+\|\<')
 
-    " Skip tokens starting with a non-ID character.
+  # Try to recognize the type of the variable.  This is rough guessing...
+  var res: list<dict<string>>
+  for tidx: number in len(tokens)->range()
+
+    # Skip tokens starting with a non-ID character.
     if tokens[tidx] !~ '^\h'
       continue
     endif
 
-    " Recognize "struct foobar" and "union foobar".
-    " Also do "class foobar" when it's C++ after all (doesn't work very well
-    " though).
-    if (tokens[tidx] == 'struct' || tokens[tidx] == 'union' || tokens[tidx] == 'class') && tidx + 1 < len(tokens)
-      let res = s:StructMembers(tokens[tidx] . ':' . tokens[tidx + 1], a:items, a:all)
+    # Recognize "struct foobar" and "union foobar".
+    # Also do "class foobar" when it's C++ after all (doesn't work very well
+    # though).
+    if (tokens[tidx] == 'struct'
+      || tokens[tidx] == 'union'
+      || tokens[tidx] == 'class')
+      && tidx + 1 < len(tokens)
+      res = StructMembers(tokens[tidx] .. ':' .. tokens[tidx + 1], items, all)
       break
     endif
 
-    " TODO: add more reserved words
-    if index(['int', 'short', 'char', 'float', 'double', 'static', 'unsigned', 'extern'], tokens[tidx]) >= 0
+    # TODO: add more reserved words
+    if ['int', 'short', 'char', 'float',
+        'double', 'static', 'unsigned', 'extern']->index(tokens[tidx]) >= 0
       continue
     endif
 
-    " Use the tags file to find out if this is a typedef.
-    let diclist = taglist('^' . tokens[tidx] . '$')
-    for tagidx in range(len(diclist))
-      let item = diclist[tagidx]
+    # Use the tags file to find out if this is a typedef.
+    var diclist: list<dict<any>> = taglist('^' .. tokens[tidx] .. '$')
+    for tagidx: number in len(diclist)->range()
+      var item: dict<any> = diclist[tagidx]
 
-      " New ctags has the "typeref" field.  Patched version has "typename".
-      if has_key(item, 'typeref')
-	call extend(res, s:StructMembers(item['typeref'], a:items, a:all))
-	continue
+      # New ctags has the "typeref" field.  Patched version has "typename".
+      if item->has_key('typeref')
+        res = extendnew(res, item['typeref']->StructMembers(items, all))
+        continue
       endif
-      if has_key(item, 'typename')
-	call extend(res, s:StructMembers(item['typename'], a:items, a:all))
-	continue
+      if item->has_key('typename')
+        res = extendnew(res, item['typename']->StructMembers(items, all))
+        continue
       endif
 
-      " Only handle typedefs here.
+      # Only handle typedefs here.
       if item['kind'] != 't'
-	continue
+        continue
       endif
 
-      " Skip matches local to another file.
-      if has_key(item, 'static') && item['static'] && bufnr('%') != bufnr(item['filename'])
-	continue
+      # Skip matches local to another file.
+      if item->has_key('static') && item['static']
+        && bufnr('%') != bufnr(item['filename'])
+        continue
       endif
 
-      " For old ctags we recognize "typedef struct aaa" and
-      " "typedef union bbb" in the tags file command.
-      let cmd = item['cmd']
-      let ei = matchend(cmd, 'typedef\s\+')
+      # For old ctags we recognize "typedef struct aaa" and
+      # "typedef union bbb" in the tags file command.
+      var cmd: string = item['cmd']
+      var ei: number = cmd->charidx(matchend(cmd, 'typedef\s\+'))
       if ei > 1
-	let cmdtokens = split(strpart(cmd, ei), '\s\+\|\<')
-	if len(cmdtokens) > 1
-	  if cmdtokens[0] == 'struct' || cmdtokens[0] == 'union' || cmdtokens[0] == 'class'
-	    let name = ''
-	    " Use the first identifier after the "struct" or "union"
-	    for ti in range(len(cmdtokens) - 1)
-	      if cmdtokens[ti] =~ '^\w'
-		let name = cmdtokens[ti]
-		break
-	      endif
-	    endfor
-	    if name != ''
-	      call extend(res, s:StructMembers(cmdtokens[0] . ':' . name, a:items, a:all))
-	    endif
-	  elseif a:depth < 10
-	    " Could be "typedef other_T some_T".
-	    call extend(res, s:Nextitem(cmdtokens[0], a:items, a:depth + 1, a:all))
-	  endif
-	endif
+        var cmdtokens: list<string> = cmd[ei :]->split('\s\+\|\<')
+        if len(cmdtokens) > 1
+          if cmdtokens[0] == 'struct'
+            || cmdtokens[0] == 'union'
+            || cmdtokens[0] == 'class'
+            var name: string = ''
+            # Use the first identifier after the "struct" or "union"
+            for ti: number in (len(cmdtokens) - 1)->range()
+              if cmdtokens[ti] =~ '^\w'
+                name = cmdtokens[ti]
+                break
+              endif
+            endfor
+            if name != ''
+              res = extendnew(res, StructMembers(cmdtokens[0] .. ':' .. name, items, all))
+            endif
+          elseif depth < 10
+            # Could be "typedef other_T some_T".
+            res = extendnew(res, cmdtokens[0]->Nextitem(items, depth + 1, all))
+          endif
+        endif
       endif
     endfor
     if len(res) > 0
@@ -485,155 +526,173 @@ func s:Nextitem(lead, items, depth, all)
   endfor
 
   return res
-endfunc
+enddef
 
+def StructMembers( # {{{1
+  atypename: string,
+  items: list<string>,
+  all: bool
+): list<dict<string>>
 
-" Search for members of structure "typename" in tags files.
-" Return a list with resulting matches.
-" Each match is a dictionary with "match" and "tagline" entries.
-" When "all" is non-zero find all, otherwise just return 1 if there is any
-" member.
-func s:StructMembers(typename, items, all)
-  " Todo: What about local structures?
-  let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+# Search for members of structure "typename" in tags files.
+# Return a list with resulting matches.
+# Each match is a dictionary with "match" and "tagline" entries.
+# When "all" is true find all, otherwise just return 1 if there is any member.
+
+  # Todo: What about local structures?
+  var fnames: string = tagfiles()
+    ->map((_, v: string) => escape(v, ' \#%'))
+    ->join()
   if fnames == ''
     return []
   endif
 
-  let typename = a:typename
-  let qflist = []
-  let cached = 0
-  if a:all == 0
-    let n = '1'	" stop at first found match
-    if has_key(s:grepCache, a:typename)
-      let qflist = s:grepCache[a:typename]
-      let cached = 1
+  var typename: string = atypename
+  var qflist: list<dict<any>>
+  var cached: number = 0
+  var n: string
+  if !all
+    n = '1'  # stop at first found match
+    if grepCache->has_key(typename)
+      qflist = grepCache[typename]
+      cached = 1
     endif
   else
-    let n = ''
+    n = ''
   endif
   if !cached
     while 1
-      exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
+      execute 'silent! keepjumps noautocmd '
+        .. n .. 'vimgrep ' .. '/\t' .. typename .. '\(\t\|$\)/j '
+        .. fnames
 
-      let qflist = getqflist()
-      if len(qflist) > 0 || match(typename, "::") < 0
-	break
+      qflist = getqflist()
+      if len(qflist) > 0 || match(typename, '::') < 0
+        break
       endif
-      " No match for "struct:context::name", remove "context::" and try again.
-      let typename = substitute(typename, ':[^:]*::', ':', '')
+      # No match for "struct:context::name", remove "context::" and try again.
+      typename = typename->substitute(':[^:]*::', ':', '')
     endwhile
 
-    if a:all == 0
-      " Store the result to be able to use it again later.
-      let s:grepCache[a:typename] = qflist
+    if !all
+      # Store the result to be able to use it again later.
+      grepCache[typename] = qflist
     endif
   endif
 
-  " Skip over [...] items
-  let idx = 0
+  # Skip over [...] items
+  var idx: number = 0
+  var target: string
   while 1
-    if idx >= len(a:items)
-      let target = ''		" No further items, matching all members
+    if idx >= len(items)
+      target = ''  # No further items, matching all members
       break
     endif
-    if a:items[idx][0] != '['
-      let target = a:items[idx]
+    if items[idx][0] != '['
+      target = items[idx]
       break
     endif
-    let idx += 1
+    ++idx
   endwhile
-  " Put matching members in matches[].
-  let matches = []
-  for l in qflist
-    let memb = matchstr(l['text'], '[^\t]*')
-    if memb =~ '^' . target
-      " Skip matches local to another file.
-      if match(l['text'], "\tfile:") < 0 || bufnr('%') == bufnr(matchstr(l['text'], '\t\zs[^\t]*'))
-	let item = {'match': memb, 'tagline': l['text']}
+  # Put matching members in matches[].
+  var matches: list<dict<string>>
+  for l: dict<any> in qflist
+    var memb: string = l['text']->matchstr('[^\t]*')
+    if memb =~ '^' .. target
+      # Skip matches local to another file.
+      if match(l['text'], "\tfile:") < 0
+        || bufnr('%') == l['text']->matchstr('\t\zs[^\t]*')->bufnr()
+        var item: dict<string> = {match: memb, tagline: l['text']}
 
-	" Add the kind of item.
-	let s = matchstr(l['text'], '\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
-	if s != ''
-	  let item['kind'] = s
-	  if s == 'f'
-	    let item['match'] = memb . '('
-	  endif
-	endif
+        # Add the kind of item.
+        var s: string = l['text']->matchstr('\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
+        if s != ''
+          item['kind'] = s
+          if s == 'f'
+            item['match'] = memb .. '('
+          endif
+        endif
 
-	call add(matches, item)
+        matches->add(item)
       endif
     endif
   endfor
 
   if len(matches) > 0
-    " Skip over next [...] items
-    let idx += 1
+    # Skip over next [...] items
+    ++idx
     while 1
-      if idx >= len(a:items)
-	return matches		" No further items, return the result.
+      if idx >= len(items)
+        return matches  # No further items, return the result.
       endif
-      if a:items[idx][0] != '['
-	break
+      if items[idx][0] != '['
+        break
       endif
-      let idx += 1
+      ++idx
     endwhile
 
-    " More items following.  For each of the possible members find the
-    " matching following members.
-    return s:SearchMembers(matches, a:items[idx :], a:all)
+    # More items following.  For each of the possible members find the
+    # matching following members.
+    return SearchMembers(matches, items[idx :], all)
   endif
 
-  " Failed to find anything.
+  # Failed to find anything.
   return []
-endfunc
+enddef
+
+def SearchMembers( # {{{1
+  matches: list<dict<any>>,
+  items: list<string>,
+  all: bool
+): list<dict<string>>
 
-" For matching members, find matches for following items.
-" When "all" is non-zero find all, otherwise just return 1 if there is any
-" member.
-func s:SearchMembers(matches, items, all)
-  let res = []
-  for i in range(len(a:matches))
-    let typename = ''
-    if has_key(a:matches[i], 'dict')
-      if has_key(a:matches[i].dict, 'typename')
-	let typename = a:matches[i].dict['typename']
-      elseif has_key(a:matches[i].dict, 'typeref')
-	let typename = a:matches[i].dict['typeref']
+# For matching members, find matches for following items.
+# When "all" is true find all, otherwise just return 1 if there is any member.
+  var res: list<dict<string>>
+  for i: number in len(matches)->range()
+    var typename: string = ''
+    var line: string
+    if matches[i]->has_key('dict')
+      if matches[i]['dict']->has_key('typename')
+        typename = matches[i]['dict']['typename']
+      elseif matches[i]['dict']->has_key('typeref')
+        typename = matches[i]['dict']['typeref']
       endif
-      let line = "\t" . a:matches[i].dict['cmd']
+      line = "\t" .. matches[i]['dict']['cmd']
     else
-      let line = a:matches[i]['tagline']
-      let e = matchend(line, '\ttypename:')
+      line = matches[i]['tagline']
+      var eb: number = matchend(line, '\ttypename:')
+      var e: number = charidx(line, eb)
       if e < 0
-	let e = matchend(line, '\ttyperef:')
+        eb = matchend(line, '\ttyperef:')
+        e = charidx(line, eb)
       endif
       if e > 0
-	" Use typename field
-	let typename = matchstr(line, '[^\t]*', e)
+        # Use typename field
+        typename = line->matchstr('[^\t]*', eb)
       endif
     endif
 
     if typename != ''
-      call extend(res, s:StructMembers(typename, a:items, a:all))
+      res = extendnew(res, StructMembers(typename, items, all))
     else
-      " Use the search command (the declaration itself).
-      let s = match(line, '\t\zs/^')
+      # Use the search command (the declaration itself).
+      var sb: number = line->match('\t\zs/^')
+      var s: number = charidx(line, sb)
       if s > 0
-	let e = match(line, '\<' . a:matches[i]['match'] . '\>', s)
-	if e > 0
-	  call extend(res, s:Nextitem(strpart(line, s, e - s), a:items, 0, a:all))
-	endif
+        var e: number = line
+          ->charidx(match(line, '\<' .. matches[i]['match'] .. '\>', sb))
+        if e > 0
+          res = extendnew(res, line[s : e - 1]->Nextitem(items, 0, all))
+        endif
       endif
     endif
-    if a:all == 0 && len(res) > 0
+    if !all && len(res) > 0
       break
     endif
   endfor
   return res
-endfunc
+enddef
+#}}}1
 
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
-" vim: noet sw=2 sts=2
+# vim: noet sw=2 sts=2
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2021 Jun 23
+*change.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -259,6 +259,9 @@ Or use "caw" (see |aw|).
 			line.
 			Adding [!] toggles 'autoindent' for the time this
 			command is executed.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 ==============================================================================
 3. Simple changes					*simple-change*
@@ -1374,6 +1377,9 @@ The next three commands always work on w
 
 							*:t*
 :t			Synonym for copy.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 :[range]m[ove] {address}			*:m* *:mo* *:move* *E134*
 			Move the lines given by [range] to below the line
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 8.2.  Last change: 2021 Dec 04
+*cmdline.txt*   For Vim version 8.2.  Last change: 2021 Dec 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -705,6 +705,15 @@ Some Ex commands accept a line range in 
 
 The basics are explained in section |10.3| of the user manual.
 
+In |Vim9| script a range needs to be prefixed with a colon to avoid ambiguity
+with continuation lines.  For example, "+" can be used for a range but is also
+a continuation of an expression: >
+	var result = start
+	+ print
+If the "+" is a range then it must be prefixed with a colon: >
+	var result = start
+	:+ print
+<
 						*:,* *:;*
 When separated with ';' the cursor position will be set to that line
 before interpreting the next line specifier.  This doesn't happen for ','.
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.2.  Last change: 2021 Dec 11
+*editing.txt*   For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1147,6 +1147,9 @@ 5. Writing and quitting					*write-quit*
 			made.
 			When 'hidden' is set and there are more windows, the
 			current buffer becomes hidden, after writing the file.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 							*:exi* *:exit*
 :[range]exi[t][!] [++opt] [file]
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -553,8 +553,6 @@ A closed fold is indicated with a '+'.
 
 These characters can be changed with the 'fillchars' option.
 
-These characters can be changed with the 'fillchars' option.
-
 Where the fold column is too narrow to display all nested folds, digits are
 shown to indicate the nesting level.
 
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 8.2.  Last change: 2020 Aug 15
+*help.txt*	For Vim version 8.2.  Last change: 2021 Dec 27
 
 			VIM - main help file
 									 k
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.2.  Last change: 2021 Oct 24
+*insert.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1958,6 +1958,9 @@ 9. Ex insert commands					*inserting-ex*
 			inserted after the current line.
 			Adding [!] toggles 'autoindent' for the time this
 			command is executed.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 							*:i* *:in* *:insert*
 :{range}i[nsert][!]	Insert several lines of text above the specified
@@ -1965,6 +1968,9 @@ 9. Ex insert commands					*inserting-ex*
 			inserted before the current line.
 			Adding [!] toggles 'autoindent' for the time this
 			command is executed.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 These two commands will keep on asking for lines, until you type a line
 containing only a ".".  Watch out for lines starting with a backslash, see
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.2.  Last change: 2021 Dec 20
+*map.txt*       For Vim version 8.2.  Last change: 2021 Dec 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -356,7 +356,7 @@ Note:
 - In Select mode, |:map| and |:vmap| command mappings are executed in
   Visual mode.  Use |:smap| to handle Select mode differently.
 
-							*E1135* *E1136*
+							*E1255* *E1136*
 <Cmd> commands must terminate, that is, they must be followed by <CR> in the
 {rhs} of the mapping definition.  |Command-line| mode is never entered.
 
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 8.2.  Last change: 2021 Dec 13
+*motion.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -788,6 +788,9 @@ m<  or  m>		Set the |'<| or |'>| mark.  
 						*:k*
 :[range]k{a-zA-Z'}	Same as :mark, but the space before the mark name can
 			be omitted.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 						*'* *'a* *`* *`a*
 '{a-z}  `{a-z}		Jump to the mark {a-z} in the current buffer.
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2021 Dec 21
+*options.txt*	For Vim version 8.2.  Last change: 2021 Dec 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt*    For Vim version 8.2.  Last change: 2019 May 05
+*remote.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.2.  Last change: 2021 Nov 24
+*repeat.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -495,6 +495,9 @@ space at the end of a line is hard to se
 		\ "very long regexp"
 		\ keepend
 
+In |Vim9| script the backslash can often be omitted, but not always.
+See |vim9-line-continuation|.
+
 There is a problem with the ":append" and ":insert" commands: >
    :1append
    \asdf
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1414,7 +1414,7 @@
 +timers	various.txt	/*+timers*
 +title	various.txt	/*+title*
 +toolbar	various.txt	/*+toolbar*
-+unix	eval.txt	/*+unix*
++unix	builtin.txt	/*+unix*
 +user_commands	various.txt	/*+user_commands*
 +vartabs	various.txt	/*+vartabs*
 +vertsplit	various.txt	/*+vertsplit*
@@ -2123,6 +2123,8 @@ 90.5	usr_90.txt	/*90.5*
 :arga	editing.txt	/*:arga*
 :argadd	editing.txt	/*:argadd*
 :argd	editing.txt	/*:argd*
+:argded	editing.txt	/*:argded*
+:argdedupe	editing.txt	/*:argdedupe*
 :argdelete	editing.txt	/*:argdelete*
 :argdo	editing.txt	/*:argdo*
 :arge	editing.txt	/*:arge*
@@ -3584,7 +3586,7 @@ 90.5	usr_90.txt	/*90.5*
 <F9>	term.txt	/*<F9>*
 <Help>	helphelp.txt	/*<Help>*
 <Home>	motion.txt	/*<Home>*
-<Ignore>	eval.txt	/*<Ignore>*
+<Ignore>	builtin.txt	/*<Ignore>*
 <Insert>	insert.txt	/*<Insert>*
 <Leader>	map.txt	/*<Leader>*
 <Left>	motion.txt	/*<Left>*
@@ -3960,15 +3962,14 @@ E1091	vim9.txt	/*E1091*
 E1094	vim9.txt	/*E1094*
 E11	cmdline.txt	/*E11*
 E110	eval.txt	/*E110*
-E1109	eval.txt	/*E1109*
+E1109	builtin.txt	/*E1109*
 E111	eval.txt	/*E111*
-E1110	eval.txt	/*E1110*
-E1111	eval.txt	/*E1111*
-E1112	eval.txt	/*E1112*
-E1113	eval.txt	/*E1113*
+E1110	builtin.txt	/*E1110*
+E1111	builtin.txt	/*E1111*
+E1112	builtin.txt	/*E1112*
+E1113	builtin.txt	/*E1113*
 E112	eval.txt	/*E112*
 E113	eval.txt	/*E113*
-E1135	map.txt	/*E1135*
 E1136	map.txt	/*E1136*
 E1137	map.txt	/*E1137*
 E114	eval.txt	/*E114*
@@ -3991,21 +3992,22 @@ E12	message.txt	/*E12*
 E120	eval.txt	/*E120*
 E1200	options.txt	/*E1200*
 E1201	options.txt	/*E1201*
-E1205	eval.txt	/*E1205*
+E1205	builtin.txt	/*E1205*
 E121	eval.txt	/*E121*
-E1214	eval.txt	/*E1214*
+E1214	builtin.txt	/*E1214*
 E122	eval.txt	/*E122*
 E123	eval.txt	/*E123*
 E1231	map.txt	/*E1231*
-E1232	eval.txt	/*E1232*
-E1233	eval.txt	/*E1233*
+E1232	builtin.txt	/*E1232*
+E1233	builtin.txt	/*E1233*
 E1237	map.txt	/*E1237*
-E1239	eval.txt	/*E1239*
+E1239	builtin.txt	/*E1239*
 E124	eval.txt	/*E124*
 E1243	options.txt	/*E1243*
 E1244	message.txt	/*E1244*
 E1245	cmdline.txt	/*E1245*
 E125	eval.txt	/*E125*
+E1255	map.txt	/*E1255*
 E126	eval.txt	/*E126*
 E127	eval.txt	/*E127*
 E128	eval.txt	/*E128*
@@ -4131,7 +4133,7 @@ E238	print.txt	/*E238*
 E239	sign.txt	/*E239*
 E24	message.txt	/*E24*
 E240	remote.txt	/*E240*
-E241	eval.txt	/*E241*
+E241	builtin.txt	/*E241*
 E242	windows.txt	/*E242*
 E243	if_ole.txt	/*E243*
 E244	gui.txt	/*E244*
@@ -4257,10 +4259,10 @@ E359	term.txt	/*E359*
 E36	windows.txt	/*E36*
 E360	various.txt	/*E360*
 E363	options.txt	/*E363*
-E364	eval.txt	/*E364*
+E364	builtin.txt	/*E364*
 E365	print.txt	/*E365*
 E367	autocmd.txt	/*E367*
-E368	eval.txt	/*E368*
+E368	builtin.txt	/*E368*
 E369	pattern.txt	/*E369*
 E37	message.txt	/*E37*
 E370	various.txt	/*E370*
@@ -4348,7 +4350,7 @@ E445	windows.txt	/*E445*
 E446	editing.txt	/*E446*
 E447	editing.txt	/*E447*
 E448	various.txt	/*E448*
-E449	eval.txt	/*E449*
+E449	builtin.txt	/*E449*
 E45	message.txt	/*E45*
 E452	eval.txt	/*E452*
 E453	syntax.txt	/*E453*
@@ -4358,7 +4360,7 @@ E457	print.txt	/*E457*
 E458	message.txt	/*E458*
 E459	message.txt	/*E459*
 E46	message.txt	/*E46*
-E460	eval.txt	/*E460*
+E460	builtin.txt	/*E460*
 E461	eval.txt	/*E461*
 E462	editing.txt	/*E462*
 E463	netbeans.txt	/*E463*
@@ -4561,7 +4563,7 @@ E65	pattern.txt	/*E65*
 E650	netbeans.txt	/*E650*
 E651	netbeans.txt	/*E651*
 E652	netbeans.txt	/*E652*
-E655	eval.txt	/*E655*
+E655	builtin.txt	/*E655*
 E656	netbeans.txt	/*E656*
 E657	netbeans.txt	/*E657*
 E658	netbeans.txt	/*E658*
@@ -4585,7 +4587,7 @@ E673	print.txt	/*E673*
 E674	print.txt	/*E674*
 E675	print.txt	/*E675*
 E676	options.txt	/*E676*
-E677	eval.txt	/*E677*
+E677	builtin.txt	/*E677*
 E678	pattern.txt	/*E678*
 E679	syntax.txt	/*E679*
 E68	pattern.txt	/*E68*
@@ -4607,12 +4609,12 @@ E694	eval.txt	/*E694*
 E695	eval.txt	/*E695*
 E696	eval.txt	/*E696*
 E697	eval.txt	/*E697*
-E698	eval.txt	/*E698*
-E699	eval.txt	/*E699*
+E698	builtin.txt	/*E698*
+E699	builtin.txt	/*E699*
 E70	pattern.txt	/*E70*
-E700	eval.txt	/*E700*
-E701	eval.txt	/*E701*
-E702	eval.txt	/*E702*
+E700	builtin.txt	/*E700*
+E701	builtin.txt	/*E701*
+E702	builtin.txt	/*E702*
 E703	eval.txt	/*E703*
 E704	eval.txt	/*E704*
 E705	eval.txt	/*E705*
@@ -4635,10 +4637,10 @@ E720	eval.txt	/*E720*
 E721	eval.txt	/*E721*
 E722	eval.txt	/*E722*
 E723	eval.txt	/*E723*
-E724	eval.txt	/*E724*
+E724	builtin.txt	/*E724*
 E725	eval.txt	/*E725*
-E726	eval.txt	/*E726*
-E727	eval.txt	/*E727*
+E726	builtin.txt	/*E726*
+E727	builtin.txt	/*E727*
 E728	eval.txt	/*E728*
 E729	eval.txt	/*E729*
 E73	tagsrch.txt	/*E73*
@@ -4649,9 +4651,9 @@ E733	eval.txt	/*E733*
 E734	eval.txt	/*E734*
 E735	eval.txt	/*E735*
 E736	eval.txt	/*E736*
-E737	eval.txt	/*E737*
+E737	builtin.txt	/*E737*
 E738	eval.txt	/*E738*
-E739	eval.txt	/*E739*
+E739	builtin.txt	/*E739*
 E74	message.txt	/*E74*
 E740	eval.txt	/*E740*
 E741	eval.txt	/*E741*
@@ -4681,8 +4683,8 @@ E762	spell.txt	/*E762*
 E763	spell.txt	/*E763*
 E764	options.txt	/*E764*
 E765	options.txt	/*E765*
-E766	eval.txt	/*E766*
-E767	eval.txt	/*E767*
+E766	builtin.txt	/*E766*
+E767	builtin.txt	/*E767*
 E768	message.txt	/*E768*
 E769	pattern.txt	/*E769*
 E77	message.txt	/*E77*
@@ -4702,8 +4704,8 @@ E781	spell.txt	/*E781*
 E782	spell.txt	/*E782*
 E783	spell.txt	/*E783*
 E784	tabpage.txt	/*E784*
-E785	eval.txt	/*E785*
-E786	eval.txt	/*E786*
+E785	builtin.txt	/*E785*
+E786	builtin.txt	/*E786*
 E787	diff.txt	/*E787*
 E788	autocmd.txt	/*E788*
 E789	syntax.txt	/*E789*
@@ -4716,17 +4718,17 @@ E794	eval.txt	/*E794*
 E795	eval.txt	/*E795*
 E796	editing.txt	/*E796*
 E797	spell.txt	/*E797*
-E798	eval.txt	/*E798*
-E799	eval.txt	/*E799*
+E798	builtin.txt	/*E798*
+E799	builtin.txt	/*E799*
 E80	message.txt	/*E80*
 E800	arabic.txt	/*E800*
-E801	eval.txt	/*E801*
-E802	eval.txt	/*E802*
-E803	eval.txt	/*E803*
+E801	builtin.txt	/*E801*
+E802	builtin.txt	/*E802*
+E803	builtin.txt	/*E803*
 E804	eval.txt	/*E804*
 E805	eval.txt	/*E805*
 E806	eval.txt	/*E806*
-E807	eval.txt	/*E807*
+E807	builtin.txt	/*E807*
 E808	eval.txt	/*E808*
 E809	cmdline.txt	/*E809*
 E81	map.txt	/*E81*
@@ -4780,8 +4782,8 @@ E852	gui_x11.txt	/*E852*
 E853	eval.txt	/*E853*
 E854	options.txt	/*E854*
 E855	autocmd.txt	/*E855*
-E858	eval.txt	/*E858*
-E859	eval.txt	/*E859*
+E858	builtin.txt	/*E858*
+E859	builtin.txt	/*E859*
 E86	windows.txt	/*E86*
 E860	textprop.txt	/*E860*
 E861	popup.txt	/*E861*
@@ -4807,8 +4809,8 @@ E879	syntax.txt	/*E879*
 E88	windows.txt	/*E88*
 E880	if_pyth.txt	/*E880*
 E881	autocmd.txt	/*E881*
-E882	eval.txt	/*E882*
-E883	eval.txt	/*E883*
+E882	builtin.txt	/*E882*
+E883	builtin.txt	/*E883*
 E884	eval.txt	/*E884*
 E885	sign.txt	/*E885*
 E886	starting.txt	/*E886*
@@ -4827,7 +4829,7 @@ E897	eval.txt	/*E897*
 E898	channel.txt	/*E898*
 E899	eval.txt	/*E899*
 E90	message.txt	/*E90*
-E900	eval.txt	/*E900*
+E900	builtin.txt	/*E900*
 E901	channel.txt	/*E901*
 E902	channel.txt	/*E902*
 E903	channel.txt	/*E903*
@@ -4851,29 +4853,29 @@ E919	repeat.txt	/*E919*
 E92	message.txt	/*E92*
 E920	channel.txt	/*E920*
 E921	channel.txt	/*E921*
-E922	eval.txt	/*E922*
-E923	eval.txt	/*E923*
+E922	builtin.txt	/*E922*
+E923	builtin.txt	/*E923*
 E924	quickfix.txt	/*E924*
 E925	quickfix.txt	/*E925*
 E926	quickfix.txt	/*E926*
-E927	eval.txt	/*E927*
+E927	builtin.txt	/*E927*
 E928	message.txt	/*E928*
 E929	starting.txt	/*E929*
 E93	windows.txt	/*E93*
-E930	eval.txt	/*E930*
+E930	builtin.txt	/*E930*
 E931	message.txt	/*E931*
 E932	eval.txt	/*E932*
 E933	eval.txt	/*E933*
 E934	sign.txt	/*E934*
-E935	eval.txt	/*E935*
+E935	builtin.txt	/*E935*
 E936	autocmd.txt	/*E936*
 E937	autocmd.txt	/*E937*
-E938	eval.txt	/*E938*
+E938	builtin.txt	/*E938*
 E939	change.txt	/*E939*
 E94	windows.txt	/*E94*
 E940	eval.txt	/*E940*
-E941	eval.txt	/*E941*
-E942	eval.txt	/*E942*
+E941	builtin.txt	/*E941*
+E942	builtin.txt	/*E942*
 E943	message.txt	/*E943*
 E944	pattern.txt	/*E944*
 E945	pattern.txt	/*E945*
@@ -4889,13 +4891,13 @@ E953	terminal.txt	/*E953*
 E954	options.txt	/*E954*
 E955	terminal.txt	/*E955*
 E956	pattern.txt	/*E956*
-E957	eval.txt	/*E957*
+E957	builtin.txt	/*E957*
 E958	terminal.txt	/*E958*
 E959	diff.txt	/*E959*
 E96	diff.txt	/*E96*
 E960	options.txt	/*E960*
 E961	cmdline.txt	/*E961*
-E962	eval.txt	/*E962*
+E962	builtin.txt	/*E962*
 E963	eval.txt	/*E963*
 E964	textprop.txt	/*E964*
 E965	textprop.txt	/*E965*
@@ -4915,7 +4917,7 @@ E977	eval.txt	/*E977*
 E978	eval.txt	/*E978*
 E979	eval.txt	/*E979*
 E98	diff.txt	/*E98*
-E980	eval.txt	/*E980*
+E980	builtin.txt	/*E980*
 E981	starting.txt	/*E981*
 E982	terminal.txt	/*E982*
 E983	message.txt	/*E983*
@@ -4930,11 +4932,11 @@ E990	eval.txt	/*E990*
 E991	eval.txt	/*E991*
 E992	options.txt	/*E992*
 E993	popup.txt	/*E993*
-E994	eval.txt	/*E994*
+E994	builtin.txt	/*E994*
 E995	eval.txt	/*E995*
 E996	eval.txt	/*E996*
 E997	popup.txt	/*E997*
-E998	eval.txt	/*E998*
+E998	builtin.txt	/*E998*
 E999	repeat.txt	/*E999*
 EX	intro.txt	/*EX*
 EXINIT	starting.txt	/*EXINIT*
@@ -5069,7 +5071,7 @@ Operator-pending-mode	intro.txt	/*Operat
 OptionSet	autocmd.txt	/*OptionSet*
 OverTheSpot	mbyte.txt	/*OverTheSpot*
 P	change.txt	/*P*
-PATHEXT	eval.txt	/*PATHEXT*
+PATHEXT	builtin.txt	/*PATHEXT*
 PEP8	filetype.txt	/*PEP8*
 PHP_BracesAtCodeLevel	indent.txt	/*PHP_BracesAtCodeLevel*
 PHP_IndentFunctionCallParameters	indent.txt	/*PHP_IndentFunctionCallParameters*
@@ -5394,8 +5396,8 @@ ab	motion.txt	/*ab*
 abandon	editing.txt	/*abandon*
 abbreviations	map.txt	/*abbreviations*
 abel.vim	syntax.txt	/*abel.vim*
-abs()	eval.txt	/*abs()*
-acos()	eval.txt	/*acos()*
+abs()	builtin.txt	/*abs()*
+acos()	builtin.txt	/*acos()*
 active-buffer	windows.txt	/*active-buffer*
 ada#Create_Tags()	ft_ada.txt	/*ada#Create_Tags()*
 ada#Jump_Tag()	ft_ada.txt	/*ada#Jump_Tag()*
@@ -5407,7 +5409,7 @@ ada-ctags	ft_ada.txt	/*ada-ctags*
 ada-extra-plugins	ft_ada.txt	/*ada-extra-plugins*
 ada-reference	ft_ada.txt	/*ada-reference*
 ada.vim	ft_ada.txt	/*ada.vim*
-add()	eval.txt	/*add()*
+add()	builtin.txt	/*add()*
 add-filetype-plugin	usr_05.txt	/*add-filetype-plugin*
 add-global-plugin	usr_05.txt	/*add-global-plugin*
 add-local-help	usr_05.txt	/*add-local-help*
@@ -5447,30 +5449,30 @@ alt	intro.txt	/*alt*
 alt-input	debugger.txt	/*alt-input*
 alternate-file	editing.txt	/*alternate-file*
 amiga-window	starting.txt	/*amiga-window*
-and()	eval.txt	/*and()*
+and()	builtin.txt	/*and()*
 anonymous-function	eval.txt	/*anonymous-function*
 ant.vim	syntax.txt	/*ant.vim*
 ap	motion.txt	/*ap*
 apache.vim	syntax.txt	/*apache.vim*
-append()	eval.txt	/*append()*
-appendbufline()	eval.txt	/*appendbufline()*
+append()	builtin.txt	/*append()*
+appendbufline()	builtin.txt	/*appendbufline()*
 aquote	motion.txt	/*aquote*
 arabic.txt	arabic.txt	/*arabic.txt*
 arabicfonts	arabic.txt	/*arabicfonts*
 arabickeymap	arabic.txt	/*arabickeymap*
 arg-functions	usr_41.txt	/*arg-functions*
-argc()	eval.txt	/*argc()*
-argidx()	eval.txt	/*argidx()*
+argc()	builtin.txt	/*argc()*
+argidx()	builtin.txt	/*argidx()*
 arglist	editing.txt	/*arglist*
 arglist-position	editing.txt	/*arglist-position*
 arglist-quit	usr_07.txt	/*arglist-quit*
-arglistid()	eval.txt	/*arglistid()*
+arglistid()	builtin.txt	/*arglistid()*
 argument-list	editing.txt	/*argument-list*
-argv()	eval.txt	/*argv()*
+argv()	builtin.txt	/*argv()*
 argv-variable	eval.txt	/*argv-variable*
 arrow_modifiers	term.txt	/*arrow_modifiers*
 as	motion.txt	/*as*
-asin()	eval.txt	/*asin()*
+asin()	builtin.txt	/*asin()*
 asm.vim	syntax.txt	/*asm.vim*
 asm68k	syntax.txt	/*asm68k*
 asmh8300.vim	syntax.txt	/*asmh8300.vim*
@@ -5490,8 +5492,8 @@ assert_notmatch()	testing.txt	/*assert_n
 assert_report()	testing.txt	/*assert_report()*
 assert_true()	testing.txt	/*assert_true()*
 at	motion.txt	/*at*
-atan()	eval.txt	/*atan()*
-atan2()	eval.txt	/*atan2()*
+atan()	builtin.txt	/*atan()*
+atan2()	builtin.txt	/*atan2()*
 athena-intellimouse	gui.txt	/*athena-intellimouse*
 attr-list	syntax.txt	/*attr-list*
 author	intro.txt	/*author*
@@ -5553,9 +5555,9 @@ backup-changed	version4.txt	/*backup-cha
 backup-extension	version4.txt	/*backup-extension*
 backup-table	editing.txt	/*backup-table*
 balloon-eval	debugger.txt	/*balloon-eval*
-balloon_gettext()	eval.txt	/*balloon_gettext()*
-balloon_show()	eval.txt	/*balloon_show()*
-balloon_split()	eval.txt	/*balloon_split()*
+balloon_gettext()	builtin.txt	/*balloon_gettext()*
+balloon_show()	builtin.txt	/*balloon_show()*
+balloon_split()	builtin.txt	/*balloon_split()*
 bar	motion.txt	/*bar*
 bars	help.txt	/*bars*
 base_font_name_list	mbyte.txt	/*base_font_name_list*
@@ -5577,7 +5579,7 @@ blob-identity	eval.txt	/*blob-identity*
 blob-index	eval.txt	/*blob-index*
 blob-literal	eval.txt	/*blob-literal*
 blob-modification	eval.txt	/*blob-modification*
-blob2list()	eval.txt	/*blob2list()*
+blob2list()	builtin.txt	/*blob2list()*
 blockwise-examples	visual.txt	/*blockwise-examples*
 blockwise-operators	visual.txt	/*blockwise-operators*
 blockwise-register	change.txt	/*blockwise-register*
@@ -5591,28 +5593,28 @@ bookmark	usr_03.txt	/*bookmark*
 books	intro.txt	/*books*
 boolean	options.txt	/*boolean*
 break-finally	eval.txt	/*break-finally*
-browse()	eval.txt	/*browse()*
-browsedir()	eval.txt	/*browsedir()*
+browse()	builtin.txt	/*browse()*
+browsedir()	builtin.txt	/*browsedir()*
 browsefilter	editing.txt	/*browsefilter*
-bufadd()	eval.txt	/*bufadd()*
-bufexists()	eval.txt	/*bufexists()*
+bufadd()	builtin.txt	/*bufadd()*
+bufexists()	builtin.txt	/*bufexists()*
 buffer-functions	usr_41.txt	/*buffer-functions*
 buffer-hidden	windows.txt	/*buffer-hidden*
 buffer-list	windows.txt	/*buffer-list*
 buffer-variable	eval.txt	/*buffer-variable*
 buffer-write	editing.txt	/*buffer-write*
-buffer_exists()	eval.txt	/*buffer_exists()*
-buffer_name()	eval.txt	/*buffer_name()*
-buffer_number()	eval.txt	/*buffer_number()*
+buffer_exists()	builtin.txt	/*buffer_exists()*
+buffer_name()	builtin.txt	/*buffer_name()*
+buffer_number()	builtin.txt	/*buffer_number()*
 buffers	windows.txt	/*buffers*
 buffers-menu	gui.txt	/*buffers-menu*
-buflisted()	eval.txt	/*buflisted()*
-bufload()	eval.txt	/*bufload()*
-bufloaded()	eval.txt	/*bufloaded()*
-bufname()	eval.txt	/*bufname()*
-bufnr()	eval.txt	/*bufnr()*
-bufwinid()	eval.txt	/*bufwinid()*
-bufwinnr()	eval.txt	/*bufwinnr()*
+buflisted()	builtin.txt	/*buflisted()*
+bufload()	builtin.txt	/*bufload()*
+bufloaded()	builtin.txt	/*bufloaded()*
+bufname()	builtin.txt	/*bufname()*
+bufnr()	builtin.txt	/*bufnr()*
+bufwinid()	builtin.txt	/*bufwinid()*
+bufwinnr()	builtin.txt	/*bufwinnr()*
 bug-fixes-5	version5.txt	/*bug-fixes-5*
 bug-fixes-6	version6.txt	/*bug-fixes-6*
 bug-fixes-7	version7.txt	/*bug-fixes-7*
@@ -5620,13 +5622,17 @@ bug-fixes-8	version8.txt	/*bug-fixes-8*
 bug-reports	intro.txt	/*bug-reports*
 bugreport.vim	intro.txt	/*bugreport.vim*
 bugs	intro.txt	/*bugs*
+builtin-function-details	builtin.txt	/*builtin-function-details*
+builtin-function-list	builtin.txt	/*builtin-function-list*
+builtin-functions	builtin.txt	/*builtin-functions*
 builtin-terms	term.txt	/*builtin-terms*
 builtin-tools	gui.txt	/*builtin-tools*
+builtin.txt	builtin.txt	/*builtin.txt*
 builtin_terms	term.txt	/*builtin_terms*
 byte-count	editing.txt	/*byte-count*
-byte2line()	eval.txt	/*byte2line()*
-byteidx()	eval.txt	/*byteidx()*
-byteidxcomp()	eval.txt	/*byteidxcomp()*
+byte2line()	builtin.txt	/*byte2line()*
+byteidx()	builtin.txt	/*byteidx()*
+byteidxcomp()	builtin.txt	/*byteidxcomp()*
 bzip2	pi_gzip.txt	/*bzip2*
 c	change.txt	/*c*
 c.vim	syntax.txt	/*c.vim*
@@ -5742,7 +5748,7 @@ c_no_utf	syntax.txt	/*c_no_utf*
 c_space_errors	syntax.txt	/*c_space_errors*
 c_syntax_for_h	syntax.txt	/*c_syntax_for_h*
 c_wildchar	cmdline.txt	/*c_wildchar*
-call()	eval.txt	/*call()*
+call()	builtin.txt	/*call()*
 carriage-return	intro.txt	/*carriage-return*
 case	change.txt	/*case*
 catch-all	eval.txt	/*catch-all*
@@ -5751,7 +5757,7 @@ catch-interrupt	eval.txt	/*catch-interru
 catch-order	eval.txt	/*catch-order*
 catch-text	eval.txt	/*catch-text*
 cc	change.txt	/*cc*
-ceil()	eval.txt	/*ceil()*
+ceil()	builtin.txt	/*ceil()*
 cfilter-plugin	quickfix.txt	/*cfilter-plugin*
 ch.vim	syntax.txt	/*ch.vim*
 ch_canread()	channel.txt	/*ch_canread()*
@@ -5796,7 +5802,7 @@ changed-8.1	version8.txt	/*changed-8.1*
 changed-8.2	version8.txt	/*changed-8.2*
 changelist	motion.txt	/*changelist*
 changelog.vim	syntax.txt	/*changelog.vim*
-changenr()	eval.txt	/*changenr()*
+changenr()	builtin.txt	/*changenr()*
 changetick	eval.txt	/*changetick*
 changing	change.txt	/*changing*
 channel	channel.txt	/*channel*
@@ -5818,22 +5824,22 @@ channel-timeout	channel.txt	/*channel-ti
 channel-use	channel.txt	/*channel-use*
 channel.txt	channel.txt	/*channel.txt*
 char-variable	eval.txt	/*char-variable*
-char2nr()	eval.txt	/*char2nr()*
+char2nr()	builtin.txt	/*char2nr()*
 characterwise	motion.txt	/*characterwise*
 characterwise-register	change.txt	/*characterwise-register*
 characterwise-visual	visual.txt	/*characterwise-visual*
-charclass()	eval.txt	/*charclass()*
-charcol()	eval.txt	/*charcol()*
+charclass()	builtin.txt	/*charclass()*
+charcol()	builtin.txt	/*charcol()*
 charconvert_from-variable	eval.txt	/*charconvert_from-variable*
 charconvert_to-variable	eval.txt	/*charconvert_to-variable*
-charidx()	eval.txt	/*charidx()*
+charidx()	builtin.txt	/*charidx()*
 charity	uganda.txt	/*charity*
 charset	mbyte.txt	/*charset*
 charset-conversion	mbyte.txt	/*charset-conversion*
-chdir()	eval.txt	/*chdir()*
+chdir()	builtin.txt	/*chdir()*
 chill.vim	syntax.txt	/*chill.vim*
-chmod	eval.txt	/*chmod*
-cindent()	eval.txt	/*cindent()*
+chmod	builtin.txt	/*chmod*
+cindent()	builtin.txt	/*cindent()*
 cinkeys-format	indent.txt	/*cinkeys-format*
 cino-#	indent.txt	/*cino-#*
 cino-(	indent.txt	/*cino-(*
@@ -5874,7 +5880,7 @@ cino-{	indent.txt	/*cino-{*
 cino-}	indent.txt	/*cino-}*
 cinoptions-values	indent.txt	/*cinoptions-values*
 clear-undo	undo.txt	/*clear-undo*
-clearmatches()	eval.txt	/*clearmatches()*
+clearmatches()	builtin.txt	/*clearmatches()*
 client-server	remote.txt	/*client-server*
 client-server-name	remote.txt	/*client-server-name*
 clientserver	remote.txt	/*clientserver*
@@ -5907,7 +5913,7 @@ cmdwin-char	cmdline.txt	/*cmdwin-char*
 cobol.vim	syntax.txt	/*cobol.vim*
 codeset	mbyte.txt	/*codeset*
 coding-style	develop.txt	/*coding-style*
-col()	eval.txt	/*col()*
+col()	builtin.txt	/*col()*
 coldfusion.vim	syntax.txt	/*coldfusion.vim*
 collapse	tips.txt	/*collapse*
 collate-variable	eval.txt	/*collate-variable*
@@ -5950,7 +5956,7 @@ compl-thesaurus	insert.txt	/*compl-thesa
 compl-thesaurusfunc	insert.txt	/*compl-thesaurusfunc*
 compl-vim	insert.txt	/*compl-vim*
 compl-whole-line	insert.txt	/*compl-whole-line*
-complete()	eval.txt	/*complete()*
+complete()	builtin.txt	/*complete()*
 complete-functions	insert.txt	/*complete-functions*
 complete-item-kind	insert.txt	/*complete-item-kind*
 complete-items	insert.txt	/*complete-items*
@@ -5959,17 +5965,17 @@ complete-popuphidden	insert.txt	/*comple
 complete-script-local-functions	cmdline.txt	/*complete-script-local-functions*
 complete_CTRL-E	insert.txt	/*complete_CTRL-E*
 complete_CTRL-Y	insert.txt	/*complete_CTRL-Y*
-complete_add()	eval.txt	/*complete_add()*
-complete_check()	eval.txt	/*complete_check()*
-complete_info()	eval.txt	/*complete_info()*
-complete_info_mode	eval.txt	/*complete_info_mode*
+complete_add()	builtin.txt	/*complete_add()*
+complete_check()	builtin.txt	/*complete_check()*
+complete_info()	builtin.txt	/*complete_info()*
+complete_info_mode	builtin.txt	/*complete_info_mode*
 completed_item-variable	eval.txt	/*completed_item-variable*
 completion-functions	usr_41.txt	/*completion-functions*
 complex-change	change.txt	/*complex-change*
 complex-repeat	repeat.txt	/*complex-repeat*
 compress	pi_gzip.txt	/*compress*
 conceal	syntax.txt	/*conceal*
-confirm()	eval.txt	/*confirm()*
+confirm()	builtin.txt	/*confirm()*
 connection-refused	message.txt	/*connection-refused*
 console-menus	gui.txt	/*console-menus*
 control	intro.txt	/*control*
@@ -5977,15 +5983,15 @@ conversion-server	mbyte.txt	/*conversion
 convert-to-HTML	syntax.txt	/*convert-to-HTML*
 convert-to-XHTML	syntax.txt	/*convert-to-XHTML*
 convert-to-XML	syntax.txt	/*convert-to-XML*
-copy()	eval.txt	/*copy()*
+copy()	builtin.txt	/*copy()*
 copy-diffs	diff.txt	/*copy-diffs*
 copy-move	change.txt	/*copy-move*
 copying	uganda.txt	/*copying*
 copyright	uganda.txt	/*copyright*
-cos()	eval.txt	/*cos()*
-cosh()	eval.txt	/*cosh()*
+cos()	builtin.txt	/*cos()*
+cosh()	builtin.txt	/*cosh()*
 count	intro.txt	/*count*
-count()	eval.txt	/*count()*
+count()	builtin.txt	/*count()*
 count-bytes	tips.txt	/*count-bytes*
 count-items	tips.txt	/*count-items*
 count-variable	eval.txt	/*count-variable*
@@ -6068,7 +6074,7 @@ cscope-limitations	if_cscop.txt	/*cscope
 cscope-options	if_cscop.txt	/*cscope-options*
 cscope-suggestions	if_cscop.txt	/*cscope-suggestions*
 cscope-win32	if_cscop.txt	/*cscope-win32*
-cscope_connection()	eval.txt	/*cscope_connection()*
+cscope_connection()	builtin.txt	/*cscope_connection()*
 cscopepathcomp	if_cscop.txt	/*cscopepathcomp*
 cscopeprg	if_cscop.txt	/*cscopeprg*
 cscopequickfix	if_cscop.txt	/*cscopequickfix*
@@ -6095,7 +6101,7 @@ curpos-visual	version6.txt	/*curpos-visu
 current-directory	editing.txt	/*current-directory*
 current-file	editing.txt	/*current-file*
 current_compiler	quickfix.txt	/*current_compiler*
-cursor()	eval.txt	/*cursor()*
+cursor()	builtin.txt	/*cursor()*
 cursor-blinking	options.txt	/*cursor-blinking*
 cursor-down	intro.txt	/*cursor-down*
 cursor-functions	usr_41.txt	/*cursor-functions*
@@ -6135,22 +6141,22 @@ debug-vs2005	debug.txt	/*debug-vs2005*
 debug-win32	debug.txt	/*debug-win32*
 debug-windbg	debug.txt	/*debug-windbg*
 debug.txt	debug.txt	/*debug.txt*
-debugbreak()	eval.txt	/*debugbreak()*
+debugbreak()	builtin.txt	/*debugbreak()*
 debugger-compilation	debugger.txt	/*debugger-compilation*
 debugger-features	debugger.txt	/*debugger-features*
 debugger-support	debugger.txt	/*debugger-support*
 debugger.txt	debugger.txt	/*debugger.txt*
 dec-mouse	options.txt	/*dec-mouse*
 decada_members	ft_ada.txt	/*decada_members*
-deepcopy()	eval.txt	/*deepcopy()*
+deepcopy()	builtin.txt	/*deepcopy()*
 defaults.vim	starting.txt	/*defaults.vim*
 defaults.vim-explained	usr_05.txt	/*defaults.vim-explained*
 definition-search	tagsrch.txt	/*definition-search*
 definitions	intro.txt	/*definitions*
-delete()	eval.txt	/*delete()*
+delete()	builtin.txt	/*delete()*
 delete-insert	change.txt	/*delete-insert*
 delete-menus	gui.txt	/*delete-menus*
-deletebufline()	eval.txt	/*deletebufline()*
+deletebufline()	builtin.txt	/*deletebufline()*
 deleting	change.txt	/*deleting*
 demoserver.py	channel.txt	/*demoserver.py*
 design-assumptions	develop.txt	/*design-assumptions*
@@ -6180,7 +6186,7 @@ dict	eval.txt	/*dict*
 dict-functions	usr_41.txt	/*dict-functions*
 dict-identity	eval.txt	/*dict-identity*
 dict-modification	eval.txt	/*dict-modification*
-did_filetype()	eval.txt	/*did_filetype()*
+did_filetype()	builtin.txt	/*did_filetype()*
 diff	diff.txt	/*diff*
 diff-diffexpr	diff.txt	/*diff-diffexpr*
 diff-mode	diff.txt	/*diff-mode*
@@ -6190,8 +6196,8 @@ diff-patchexpr	diff.txt	/*diff-patchexpr
 diff-slow	diff.txt	/*diff-slow*
 diff.txt	diff.txt	/*diff.txt*
 diff.vim	syntax.txt	/*diff.vim*
-diff_filler()	eval.txt	/*diff_filler()*
-diff_hlID()	eval.txt	/*diff_hlID()*
+diff_filler()	builtin.txt	/*diff_filler()*
+diff_hlID()	builtin.txt	/*diff_hlID()*
 diff_translations	diff.txt	/*diff_translations*
 digraph	digraph.txt	/*digraph*
 digraph-arg	change.txt	/*digraph-arg*
@@ -6199,10 +6205,10 @@ digraph-encoding	digraph.txt	/*digraph-e
 digraph-table	digraph.txt	/*digraph-table*
 digraph-table-mbyte	digraph.txt	/*digraph-table-mbyte*
 digraph.txt	digraph.txt	/*digraph.txt*
-digraph_get()	eval.txt	/*digraph_get()*
-digraph_getlist()	eval.txt	/*digraph_getlist()*
-digraph_set()	eval.txt	/*digraph_set()*
-digraph_setlist()	eval.txt	/*digraph_setlist()*
+digraph_get()	builtin.txt	/*digraph_get()*
+digraph_getlist()	builtin.txt	/*digraph_getlist()*
+digraph_set()	builtin.txt	/*digraph_set()*
+digraph_setlist()	builtin.txt	/*digraph_setlist()*
 digraphs	digraph.txt	/*digraphs*
 digraphs-changed	version6.txt	/*digraphs-changed*
 digraphs-default	digraph.txt	/*digraphs-default*
@@ -6252,7 +6258,7 @@ dtd2vim	insert.txt	/*dtd2vim*
 dying-variable	eval.txt	/*dying-variable*
 e	motion.txt	/*e*
 easy	starting.txt	/*easy*
-echoraw()	eval.txt	/*echoraw()*
+echoraw()	builtin.txt	/*echoraw()*
 echospace-variable	eval.txt	/*echospace-variable*
 edit-a-file	editing.txt	/*edit-a-file*
 edit-binary	editing.txt	/*edit-binary*
@@ -6271,7 +6277,7 @@ elixir.vim	syntax.txt	/*elixir.vim*
 emacs-keys	tips.txt	/*emacs-keys*
 emacs-tags	tagsrch.txt	/*emacs-tags*
 emacs_tags	tagsrch.txt	/*emacs_tags*
-empty()	eval.txt	/*empty()*
+empty()	builtin.txt	/*empty()*
 encoding-names	mbyte.txt	/*encoding-names*
 encoding-table	mbyte.txt	/*encoding-table*
 encoding-values	mbyte.txt	/*encoding-values*
@@ -6279,7 +6285,7 @@ encryption	editing.txt	/*encryption*
 end	intro.txt	/*end*
 end-of-file	pattern.txt	/*end-of-file*
 enlightened-terminal	syntax.txt	/*enlightened-terminal*
-environ()	eval.txt	/*environ()*
+environ()	builtin.txt	/*environ()*
 erlang.vim	syntax.txt	/*erlang.vim*
 err_buf	channel.txt	/*err_buf*
 err_cb	channel.txt	/*err_cb*
@@ -6305,17 +6311,17 @@ errorformats	quickfix.txt	/*errorformats
 errors	message.txt	/*errors*
 errors-variable	eval.txt	/*errors-variable*
 escape	intro.txt	/*escape*
-escape()	eval.txt	/*escape()*
+escape()	builtin.txt	/*escape()*
 escape-bar	version4.txt	/*escape-bar*
 euphoria3.vim	syntax.txt	/*euphoria3.vim*
 euphoria4.vim	syntax.txt	/*euphoria4.vim*
 eval	eval.txt	/*eval*
-eval()	eval.txt	/*eval()*
+eval()	builtin.txt	/*eval()*
 eval-examples	eval.txt	/*eval-examples*
 eval-sandbox	eval.txt	/*eval-sandbox*
 eval.txt	eval.txt	/*eval.txt*
 event-variable	eval.txt	/*event-variable*
-eventhandler()	eval.txt	/*eventhandler()*
+eventhandler()	builtin.txt	/*eventhandler()*
 eview	starting.txt	/*eview*
 evim	starting.txt	/*evim*
 evim-keys	starting.txt	/*evim-keys*
@@ -6342,20 +6348,20 @@ exception-handling	eval.txt	/*exception-
 exception-variable	eval.txt	/*exception-variable*
 exclusive	motion.txt	/*exclusive*
 exclusive-linewise	motion.txt	/*exclusive-linewise*
-executable()	eval.txt	/*executable()*
-execute()	eval.txt	/*execute()*
+executable()	builtin.txt	/*executable()*
+execute()	builtin.txt	/*execute()*
 execute-menus	gui.txt	/*execute-menus*
-exepath()	eval.txt	/*exepath()*
+exepath()	builtin.txt	/*exepath()*
 exim	starting.txt	/*exim*
-exists()	eval.txt	/*exists()*
-exists_compiled()	eval.txt	/*exists_compiled()*
+exists()	builtin.txt	/*exists()*
+exists_compiled()	builtin.txt	/*exists_compiled()*
 exiting	starting.txt	/*exiting*
 exiting-variable	eval.txt	/*exiting-variable*
-exp()	eval.txt	/*exp()*
-expand()	eval.txt	/*expand()*
+exp()	builtin.txt	/*exp()*
+expand()	builtin.txt	/*expand()*
 expand-env	options.txt	/*expand-env*
 expand-environment-var	options.txt	/*expand-environment-var*
-expandcmd()	eval.txt	/*expandcmd()*
+expandcmd()	builtin.txt	/*expandcmd()*
 expr	eval.txt	/*expr*
 expr-!	eval.txt	/*expr-!*
 expr-!=	eval.txt	/*expr-!=*
@@ -6415,6 +6421,7 @@ expr-unary-+	eval.txt	/*expr-unary-+*
 expr-unary--	eval.txt	/*expr-unary--*
 expr-variable	eval.txt	/*expr-variable*
 expr1	eval.txt	/*expr1*
+expr10	eval.txt	/*expr10*
 expr2	eval.txt	/*expr2*
 expr3	eval.txt	/*expr3*
 expr4	eval.txt	/*expr4*
@@ -6427,8 +6434,8 @@ expression	eval.txt	/*expression*
 expression-commands	eval.txt	/*expression-commands*
 expression-syntax	eval.txt	/*expression-syntax*
 exrc	starting.txt	/*exrc*
-extend()	eval.txt	/*extend()*
-extendnew()	eval.txt	/*extendnew()*
+extend()	builtin.txt	/*extend()*
+extendnew()	builtin.txt	/*extendnew()*
 extension-removal	cmdline.txt	/*extension-removal*
 extensions-improvements	todo.txt	/*extensions-improvements*
 f	motion.txt	/*f*
@@ -6443,8 +6450,8 @@ fasm.vim	syntax.txt	/*fasm.vim*
 fast-functions	vim9.txt	/*fast-functions*
 fcs_choice-variable	eval.txt	/*fcs_choice-variable*
 fcs_reason-variable	eval.txt	/*fcs_reason-variable*
-feature-list	eval.txt	/*feature-list*
-feedkeys()	eval.txt	/*feedkeys()*
+feature-list	builtin.txt	/*feature-list*
+feedkeys()	builtin.txt	/*feedkeys()*
 fetch	pi_netrw.txt	/*fetch*
 file-browser-5.2	version5.txt	/*file-browser-5.2*
 file-formats	editing.txt	/*file-formats*
@@ -6454,11 +6461,11 @@ file-read	insert.txt	/*file-read*
 file-searching	editing.txt	/*file-searching*
 file-type	filetype.txt	/*file-type*
 file-types	filetype.txt	/*file-types*
-file_readable()	eval.txt	/*file_readable()*
+file_readable()	builtin.txt	/*file_readable()*
 fileencoding-changed	version6.txt	/*fileencoding-changed*
 filename-backslash	cmdline.txt	/*filename-backslash*
 filename-modifiers	cmdline.txt	/*filename-modifiers*
-filereadable()	eval.txt	/*filereadable()*
+filereadable()	builtin.txt	/*filereadable()*
 filetype	filetype.txt	/*filetype*
 filetype-detect	filetype.txt	/*filetype-detect*
 filetype-ignore	filetype.txt	/*filetype-ignore*
@@ -6468,14 +6475,14 @@ filetype-plugins	filetype.txt	/*filetype
 filetype.txt	filetype.txt	/*filetype.txt*
 filetypedetect-changed	version6.txt	/*filetypedetect-changed*
 filetypes	filetype.txt	/*filetypes*
-filewritable()	eval.txt	/*filewritable()*
+filewritable()	builtin.txt	/*filewritable()*
 filler-lines	windows.txt	/*filler-lines*
 filter	change.txt	/*filter*
-filter()	eval.txt	/*filter()*
+filter()	builtin.txt	/*filter()*
 find-manpage	usr_12.txt	/*find-manpage*
 find-replace	usr_10.txt	/*find-replace*
-finddir()	eval.txt	/*finddir()*
-findfile()	eval.txt	/*findfile()*
+finddir()	builtin.txt	/*finddir()*
+findfile()	builtin.txt	/*findfile()*
 fixed-5.1	version5.txt	/*fixed-5.1*
 fixed-5.2	version5.txt	/*fixed-5.2*
 fixed-5.3	version5.txt	/*fixed-5.3*
@@ -6492,24 +6499,24 @@ fixed-7.1	version7.txt	/*fixed-7.1*
 fixed-7.2	version7.txt	/*fixed-7.2*
 fixed-7.3	version7.txt	/*fixed-7.3*
 fixed-7.4	version7.txt	/*fixed-7.4*
-flatten()	eval.txt	/*flatten()*
-flattennew()	eval.txt	/*flattennew()*
+flatten()	builtin.txt	/*flatten()*
+flattennew()	builtin.txt	/*flattennew()*
 flexwiki.vim	syntax.txt	/*flexwiki.vim*
 float-e	eval.txt	/*float-e*
 float-functions	usr_41.txt	/*float-functions*
 float-pi	eval.txt	/*float-pi*
-float2nr()	eval.txt	/*float2nr()*
+float2nr()	builtin.txt	/*float2nr()*
 floating-point-format	eval.txt	/*floating-point-format*
 floating-point-precision	eval.txt	/*floating-point-precision*
-floor()	eval.txt	/*floor()*
-fmod()	eval.txt	/*fmod()*
+floor()	builtin.txt	/*floor()*
+fmod()	builtin.txt	/*fmod()*
 fname-variable	eval.txt	/*fname-variable*
 fname_diff-variable	eval.txt	/*fname_diff-variable*
 fname_in-variable	eval.txt	/*fname_in-variable*
 fname_new-variable	eval.txt	/*fname_new-variable*
 fname_out-variable	eval.txt	/*fname_out-variable*
-fnameescape()	eval.txt	/*fnameescape()*
-fnamemodify()	eval.txt	/*fnamemodify()*
+fnameescape()	builtin.txt	/*fnameescape()*
+fnamemodify()	builtin.txt	/*fnamemodify()*
 fo-1	change.txt	/*fo-1*
 fo-2	change.txt	/*fo-2*
 fo-B	change.txt	/*fo-B*
@@ -6547,22 +6554,22 @@ fold-methods	fold.txt	/*fold-methods*
 fold-options	fold.txt	/*fold-options*
 fold-syntax	fold.txt	/*fold-syntax*
 fold.txt	fold.txt	/*fold.txt*
-foldclosed()	eval.txt	/*foldclosed()*
-foldclosedend()	eval.txt	/*foldclosedend()*
+foldclosed()	builtin.txt	/*foldclosed()*
+foldclosedend()	builtin.txt	/*foldclosedend()*
 folddashes-variable	eval.txt	/*folddashes-variable*
 foldend-variable	eval.txt	/*foldend-variable*
 folding	fold.txt	/*folding*
 folding-functions	usr_41.txt	/*folding-functions*
-foldlevel()	eval.txt	/*foldlevel()*
+foldlevel()	builtin.txt	/*foldlevel()*
 foldlevel-variable	eval.txt	/*foldlevel-variable*
 folds	fold.txt	/*folds*
 foldstart-variable	eval.txt	/*foldstart-variable*
-foldtext()	eval.txt	/*foldtext()*
-foldtextresult()	eval.txt	/*foldtextresult()*
+foldtext()	builtin.txt	/*foldtext()*
+foldtextresult()	builtin.txt	/*foldtextresult()*
 font-sizes	gui_x11.txt	/*font-sizes*
 fontset	mbyte.txt	/*fontset*
 forced-motion	motion.txt	/*forced-motion*
-foreground()	eval.txt	/*foreground()*
+foreground()	builtin.txt	/*foreground()*
 fork	os_unix.txt	/*fork*
 form.vim	syntax.txt	/*form.vim*
 format-bullet-list	tips.txt	/*format-bullet-list*
@@ -6749,9 +6756,9 @@ ftplugin-name	usr_05.txt	/*ftplugin-name
 ftplugin-overrule	filetype.txt	/*ftplugin-overrule*
 ftplugin-special	usr_41.txt	/*ftplugin-special*
 ftplugins	usr_05.txt	/*ftplugins*
-fullcommand()	eval.txt	/*fullcommand()*
-funcref()	eval.txt	/*funcref()*
-function()	eval.txt	/*function()*
+fullcommand()	builtin.txt	/*fullcommand()*
+funcref()	builtin.txt	/*funcref()*
+function()	builtin.txt	/*function()*
 function-argument	eval.txt	/*function-argument*
 function-key	intro.txt	/*function-key*
 function-list	usr_41.txt	/*function-list*
@@ -7054,67 +7061,67 @@ g_CTRL-]	tagsrch.txt	/*g_CTRL-]*
 g`	motion.txt	/*g`*
 g`a	motion.txt	/*g`a*
 ga	various.txt	/*ga*
-garbagecollect()	eval.txt	/*garbagecollect()*
+garbagecollect()	builtin.txt	/*garbagecollect()*
 gd	pattern.txt	/*gd*
 gdb	debug.txt	/*gdb*
 gdb-version	terminal.txt	/*gdb-version*
 ge	motion.txt	/*ge*
-get()	eval.txt	/*get()*
+get()	builtin.txt	/*get()*
 get-ms-debuggers	debug.txt	/*get-ms-debuggers*
-getbufinfo()	eval.txt	/*getbufinfo()*
-getbufline()	eval.txt	/*getbufline()*
-getbufvar()	eval.txt	/*getbufvar()*
-getchangelist()	eval.txt	/*getchangelist()*
-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()*
-getcmdwintype()	eval.txt	/*getcmdwintype()*
-getcompletion()	eval.txt	/*getcompletion()*
-getcurpos()	eval.txt	/*getcurpos()*
-getcursorcharpos()	eval.txt	/*getcursorcharpos()*
-getcwd()	eval.txt	/*getcwd()*
-getenv()	eval.txt	/*getenv()*
-getfontname()	eval.txt	/*getfontname()*
-getfperm()	eval.txt	/*getfperm()*
-getfsize()	eval.txt	/*getfsize()*
-getftime()	eval.txt	/*getftime()*
-getftype()	eval.txt	/*getftype()*
-getimstatus()	eval.txt	/*getimstatus()*
-getjumplist()	eval.txt	/*getjumplist()*
+getbufinfo()	builtin.txt	/*getbufinfo()*
+getbufline()	builtin.txt	/*getbufline()*
+getbufvar()	builtin.txt	/*getbufvar()*
+getchangelist()	builtin.txt	/*getchangelist()*
+getchar()	builtin.txt	/*getchar()*
+getcharmod()	builtin.txt	/*getcharmod()*
+getcharpos()	builtin.txt	/*getcharpos()*
+getcharsearch()	builtin.txt	/*getcharsearch()*
+getcharstr()	builtin.txt	/*getcharstr()*
+getcmdline()	builtin.txt	/*getcmdline()*
+getcmdpos()	builtin.txt	/*getcmdpos()*
+getcmdtype()	builtin.txt	/*getcmdtype()*
+getcmdwintype()	builtin.txt	/*getcmdwintype()*
+getcompletion()	builtin.txt	/*getcompletion()*
+getcurpos()	builtin.txt	/*getcurpos()*
+getcursorcharpos()	builtin.txt	/*getcursorcharpos()*
+getcwd()	builtin.txt	/*getcwd()*
+getenv()	builtin.txt	/*getenv()*
+getfontname()	builtin.txt	/*getfontname()*
+getfperm()	builtin.txt	/*getfperm()*
+getfsize()	builtin.txt	/*getfsize()*
+getftime()	builtin.txt	/*getftime()*
+getftype()	builtin.txt	/*getftype()*
+getimstatus()	builtin.txt	/*getimstatus()*
+getjumplist()	builtin.txt	/*getjumplist()*
 getlatestvimscripts-install	pi_getscript.txt	/*getlatestvimscripts-install*
-getline()	eval.txt	/*getline()*
-getloclist()	eval.txt	/*getloclist()*
-getmarklist()	eval.txt	/*getmarklist()*
-getmatches()	eval.txt	/*getmatches()*
-getmousepos()	eval.txt	/*getmousepos()*
-getpid()	eval.txt	/*getpid()*
-getpos()	eval.txt	/*getpos()*
-getqflist()	eval.txt	/*getqflist()*
+getline()	builtin.txt	/*getline()*
+getloclist()	builtin.txt	/*getloclist()*
+getmarklist()	builtin.txt	/*getmarklist()*
+getmatches()	builtin.txt	/*getmatches()*
+getmousepos()	builtin.txt	/*getmousepos()*
+getpid()	builtin.txt	/*getpid()*
+getpos()	builtin.txt	/*getpos()*
+getqflist()	builtin.txt	/*getqflist()*
 getqflist-examples	quickfix.txt	/*getqflist-examples*
-getreg()	eval.txt	/*getreg()*
-getreginfo()	eval.txt	/*getreginfo()*
-getregtype()	eval.txt	/*getregtype()*
+getreg()	builtin.txt	/*getreg()*
+getreginfo()	builtin.txt	/*getreginfo()*
+getregtype()	builtin.txt	/*getregtype()*
 getscript	pi_getscript.txt	/*getscript*
 getscript-autoinstall	pi_getscript.txt	/*getscript-autoinstall*
 getscript-data	pi_getscript.txt	/*getscript-data*
 getscript-history	pi_getscript.txt	/*getscript-history*
 getscript-plugins	pi_getscript.txt	/*getscript-plugins*
 getscript-start	pi_getscript.txt	/*getscript-start*
-gettabinfo()	eval.txt	/*gettabinfo()*
-gettabvar()	eval.txt	/*gettabvar()*
-gettabwinvar()	eval.txt	/*gettabwinvar()*
-gettagstack()	eval.txt	/*gettagstack()*
-gettext()	eval.txt	/*gettext()*
-getwininfo()	eval.txt	/*getwininfo()*
-getwinpos()	eval.txt	/*getwinpos()*
-getwinposx()	eval.txt	/*getwinposx()*
-getwinposy()	eval.txt	/*getwinposy()*
-getwinvar()	eval.txt	/*getwinvar()*
+gettabinfo()	builtin.txt	/*gettabinfo()*
+gettabvar()	builtin.txt	/*gettabvar()*
+gettabwinvar()	builtin.txt	/*gettabwinvar()*
+gettagstack()	builtin.txt	/*gettagstack()*
+gettext()	builtin.txt	/*gettext()*
+getwininfo()	builtin.txt	/*getwininfo()*
+getwinpos()	builtin.txt	/*getwinpos()*
+getwinposx()	builtin.txt	/*getwinposx()*
+getwinposy()	builtin.txt	/*getwinposy()*
+getwinvar()	builtin.txt	/*getwinvar()*
 gex	starting.txt	/*gex*
 gf	editing.txt	/*gf*
 gg	motion.txt	/*gg*
@@ -7122,13 +7129,13 @@ gh	visual.txt	/*gh*
 gi	insert.txt	/*gi*
 gj	motion.txt	/*gj*
 gk	motion.txt	/*gk*
-glob()	eval.txt	/*glob()*
-glob2regpat()	eval.txt	/*glob2regpat()*
+glob()	builtin.txt	/*glob()*
+glob2regpat()	builtin.txt	/*glob2regpat()*
 global-ime	mbyte.txt	/*global-ime*
 global-local	options.txt	/*global-local*
 global-variable	eval.txt	/*global-variable*
 global_markfilelist	pi_netrw.txt	/*global_markfilelist*
-globpath()	eval.txt	/*globpath()*
+globpath()	builtin.txt	/*globpath()*
 glvs	pi_getscript.txt	/*glvs*
 glvs-alg	pi_getscript.txt	/*glvs-alg*
 glvs-algorithm	pi_getscript.txt	/*glvs-algorithm*
@@ -7228,7 +7235,7 @@ gui-x11-printing	gui_x11.txt	/*gui-x11-p
 gui-x11-start	gui_x11.txt	/*gui-x11-start*
 gui-x11-various	gui_x11.txt	/*gui-x11-various*
 gui.txt	gui.txt	/*gui.txt*
-gui_running	eval.txt	/*gui_running*
+gui_running	builtin.txt	/*gui_running*
 gui_w32.txt	gui_w32.txt	/*gui_w32.txt*
 gui_x11.txt	gui_x11.txt	/*gui_x11.txt*
 guifontwide_gtk	gui.txt	/*guifontwide_gtk*
@@ -7266,14 +7273,14 @@ haiku-user-settings-dir	os_haiku.txt	/*h
 haiku-vimdir	os_haiku.txt	/*haiku-vimdir*
 hangul	hangulin.txt	/*hangul*
 hangulin.txt	hangulin.txt	/*hangulin.txt*
-has()	eval.txt	/*has()*
-has-patch	eval.txt	/*has-patch*
+has()	builtin.txt	/*has()*
+has-patch	builtin.txt	/*has-patch*
 has-python	if_pyth.txt	/*has-python*
 has-pythonx	if_pyth.txt	/*has-pythonx*
-has_key()	eval.txt	/*has_key()*
+has_key()	builtin.txt	/*has_key()*
 haskell.vim	syntax.txt	/*haskell.vim*
-haslocaldir()	eval.txt	/*haslocaldir()*
-hasmapto()	eval.txt	/*hasmapto()*
+haslocaldir()	builtin.txt	/*haslocaldir()*
+hasmapto()	builtin.txt	/*hasmapto()*
 hebrew	hebrew.txt	/*hebrew*
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	helphelp.txt	/*help*
@@ -7312,14 +7319,14 @@ highlight-guisp	syntax.txt	/*highlight-g
 highlight-start	syntax.txt	/*highlight-start*
 highlight-stop	syntax.txt	/*highlight-stop*
 highlight-term	syntax.txt	/*highlight-term*
-highlightID()	eval.txt	/*highlightID()*
-highlight_exists()	eval.txt	/*highlight_exists()*
+highlightID()	builtin.txt	/*highlightID()*
+highlight_exists()	builtin.txt	/*highlight_exists()*
 highlighting-functions	usr_41.txt	/*highlighting-functions*
-hist-names	eval.txt	/*hist-names*
-histadd()	eval.txt	/*histadd()*
-histdel()	eval.txt	/*histdel()*
-histget()	eval.txt	/*histget()*
-histnr()	eval.txt	/*histnr()*
+hist-names	builtin.txt	/*hist-names*
+histadd()	builtin.txt	/*histadd()*
+histdel()	builtin.txt	/*histdel()*
+histget()	builtin.txt	/*histget()*
+histnr()	builtin.txt	/*histnr()*
 history	cmdline.txt	/*history*
 history-functions	usr_41.txt	/*history-functions*
 hit-enter	message.txt	/*hit-enter*
@@ -7391,15 +7398,15 @@ hl-WarningMsg	syntax.txt	/*hl-WarningMsg
 hl-WildMenu	syntax.txt	/*hl-WildMenu*
 hl-debugBreakpoint	terminal.txt	/*hl-debugBreakpoint*
 hl-debugPC	terminal.txt	/*hl-debugPC*
-hlID()	eval.txt	/*hlID()*
-hlexists()	eval.txt	/*hlexists()*
-hlget()	eval.txt	/*hlget()*
+hlID()	builtin.txt	/*hlID()*
+hlexists()	builtin.txt	/*hlexists()*
+hlget()	builtin.txt	/*hlget()*
 hlsearch-variable	eval.txt	/*hlsearch-variable*
-hlset()	eval.txt	/*hlset()*
+hlset()	builtin.txt	/*hlset()*
 holy-grail	index.txt	/*holy-grail*
 home	intro.txt	/*home*
 home-replace	editing.txt	/*home-replace*
-hostname()	eval.txt	/*hostname()*
+hostname()	builtin.txt	/*hostname()*
 how-do-i	howto.txt	/*how-do-i*
 how-to	howto.txt	/*how-to*
 howdoi	howto.txt	/*howdoi*
@@ -7543,7 +7550,7 @@ iccf-donations	uganda.txt	/*iccf-donatio
 icon-changed	version4.txt	/*icon-changed*
 iconise	starting.txt	/*iconise*
 iconize	starting.txt	/*iconize*
-iconv()	eval.txt	/*iconv()*
+iconv()	builtin.txt	/*iconv()*
 iconv-dynamic	mbyte.txt	/*iconv-dynamic*
 ident-search	tips.txt	/*ident-search*
 idl-syntax	syntax.txt	/*idl-syntax*
@@ -7582,24 +7589,24 @@ incompatible-5	version5.txt	/*incompatib
 incompatible-6	version6.txt	/*incompatible-6*
 incompatible-7	version7.txt	/*incompatible-7*
 incompatible-8	version8.txt	/*incompatible-8*
-indent()	eval.txt	/*indent()*
+indent()	builtin.txt	/*indent()*
 indent-expression	indent.txt	/*indent-expression*
 indent.txt	indent.txt	/*indent.txt*
 indentkeys-format	indent.txt	/*indentkeys-format*
 index	index.txt	/*index*
-index()	eval.txt	/*index()*
+index()	builtin.txt	/*index()*
 index.txt	index.txt	/*index.txt*
 info-message	starting.txt	/*info-message*
 inform.vim	syntax.txt	/*inform.vim*
 informix	ft_sql.txt	/*informix*
 initialization	starting.txt	/*initialization*
 inline-function	vim9.txt	/*inline-function*
-input()	eval.txt	/*input()*
-inputdialog()	eval.txt	/*inputdialog()*
-inputlist()	eval.txt	/*inputlist()*
-inputrestore()	eval.txt	/*inputrestore()*
-inputsave()	eval.txt	/*inputsave()*
-inputsecret()	eval.txt	/*inputsecret()*
+input()	builtin.txt	/*input()*
+inputdialog()	builtin.txt	/*inputdialog()*
+inputlist()	builtin.txt	/*inputlist()*
+inputrestore()	builtin.txt	/*inputrestore()*
+inputsave()	builtin.txt	/*inputsave()*
+inputsecret()	builtin.txt	/*inputsecret()*
 ins-completion	insert.txt	/*ins-completion*
 ins-completion-menu	insert.txt	/*ins-completion-menu*
 ins-expandtab	insert.txt	/*ins-expandtab*
@@ -7610,7 +7617,7 @@ ins-special-keys	insert.txt	/*ins-specia
 ins-special-special	insert.txt	/*ins-special-special*
 ins-textwidth	insert.txt	/*ins-textwidth*
 insert	insert.txt	/*insert*
-insert()	eval.txt	/*insert()*
+insert()	builtin.txt	/*insert()*
 insert-index	index.txt	/*insert-index*
 insert.txt	insert.txt	/*insert.txt*
 insert_expand	insert.txt	/*insert_expand*
@@ -7628,21 +7635,21 @@ interfaces-5.2	version5.txt	/*interfaces
 internal-variables	eval.txt	/*internal-variables*
 internal-wordlist	spell.txt	/*internal-wordlist*
 internet	intro.txt	/*internet*
-interrupt()	eval.txt	/*interrupt()*
+interrupt()	builtin.txt	/*interrupt()*
 intro	intro.txt	/*intro*
 intro.txt	intro.txt	/*intro.txt*
 inverse	syntax.txt	/*inverse*
-invert()	eval.txt	/*invert()*
+invert()	builtin.txt	/*invert()*
 ip	motion.txt	/*ip*
 iquote	motion.txt	/*iquote*
 is	motion.txt	/*is*
-isdirectory()	eval.txt	/*isdirectory()*
-isinf()	eval.txt	/*isinf()*
-islocked()	eval.txt	/*islocked()*
-isnan()	eval.txt	/*isnan()*
+isdirectory()	builtin.txt	/*isdirectory()*
+isinf()	builtin.txt	/*isinf()*
+islocked()	builtin.txt	/*islocked()*
+isnan()	builtin.txt	/*isnan()*
 it	motion.txt	/*it*
 italic	syntax.txt	/*italic*
-items()	eval.txt	/*items()*
+items()	builtin.txt	/*items()*
 iw	motion.txt	/*iw*
 i{	motion.txt	/*i{*
 i}	motion.txt	/*i}*
@@ -7680,13 +7687,13 @@ job_setoptions()	channel.txt	/*job_setop
 job_start()	channel.txt	/*job_start()*
 job_status()	channel.txt	/*job_status()*
 job_stop()	channel.txt	/*job_stop()*
-join()	eval.txt	/*join()*
-js_decode()	eval.txt	/*js_decode()*
-js_encode()	eval.txt	/*js_encode()*
+join()	builtin.txt	/*join()*
+js_decode()	builtin.txt	/*js_decode()*
+js_encode()	builtin.txt	/*js_encode()*
 jsbterm-mouse	options.txt	/*jsbterm-mouse*
 json.vim	syntax.txt	/*json.vim*
-json_decode()	eval.txt	/*json_decode()*
-json_encode()	eval.txt	/*json_encode()*
+json_decode()	builtin.txt	/*json_decode()*
+json_encode()	builtin.txt	/*json_encode()*
 jtags	tagsrch.txt	/*jtags*
 jump-motions	motion.txt	/*jump-motions*
 jumplist	motion.txt	/*jumplist*
@@ -7716,7 +7723,7 @@ keypad-page-down	intro.txt	/*keypad-page
 keypad-page-up	intro.txt	/*keypad-page-up*
 keypad-plus	intro.txt	/*keypad-plus*
 keypad-point	intro.txt	/*keypad-point*
-keys()	eval.txt	/*keys()*
+keys()	builtin.txt	/*keys()*
 known-bugs	todo.txt	/*known-bugs*
 l	motion.txt	/*l*
 l:	eval.txt	/*l:*
@@ -7728,7 +7735,7 @@ lang-variable	eval.txt	/*lang-variable*
 language-mapping	map.txt	/*language-mapping*
 last-pattern	pattern.txt	/*last-pattern*
 last-position-jump	usr_05.txt	/*last-position-jump*
-last_buffer_nr()	eval.txt	/*last_buffer_nr()*
+last_buffer_nr()	builtin.txt	/*last_buffer_nr()*
 latex-syntax	syntax.txt	/*latex-syntax*
 lc_time-variable	eval.txt	/*lc_time-variable*
 lcs-conceal	options.txt	/*lcs-conceal*
@@ -7742,27 +7749,27 @@ lcs-space	options.txt	/*lcs-space*
 lcs-tab	options.txt	/*lcs-tab*
 lcs-trail	options.txt	/*lcs-trail*
 left-right-motions	motion.txt	/*left-right-motions*
-len()	eval.txt	/*len()*
+len()	builtin.txt	/*len()*
 less	various.txt	/*less*
 letter	print.txt	/*letter*
 lex.vim	syntax.txt	/*lex.vim*
 lhaskell.vim	syntax.txt	/*lhaskell.vim*
-libcall()	eval.txt	/*libcall()*
-libcallnr()	eval.txt	/*libcallnr()*
+libcall()	builtin.txt	/*libcall()*
+libcallnr()	builtin.txt	/*libcallnr()*
 license	uganda.txt	/*license*
 lid	quickfix.txt	/*lid*
 lifelines.vim	syntax.txt	/*lifelines.vim*
 limits	vi_diff.txt	/*limits*
-line()	eval.txt	/*line()*
+line()	builtin.txt	/*line()*
 line-continuation	repeat.txt	/*line-continuation*
 line-continuation-comment	repeat.txt	/*line-continuation-comment*
-line2byte()	eval.txt	/*line2byte()*
+line2byte()	builtin.txt	/*line2byte()*
 linefeed	intro.txt	/*linefeed*
 linewise	motion.txt	/*linewise*
 linewise-register	change.txt	/*linewise-register*
 linewise-visual	visual.txt	/*linewise-visual*
 lisp.vim	syntax.txt	/*lisp.vim*
-lispindent()	eval.txt	/*lispindent()*
+lispindent()	builtin.txt	/*lispindent()*
 list	eval.txt	/*list*
 list-concatenation	eval.txt	/*list-concatenation*
 list-functions	usr_41.txt	/*list-functions*
@@ -7770,11 +7777,11 @@ list-identity	eval.txt	/*list-identity*
 list-index	eval.txt	/*list-index*
 list-modification	eval.txt	/*list-modification*
 list-repeat	windows.txt	/*list-repeat*
-list2blob()	eval.txt	/*list2blob()*
-list2str()	eval.txt	/*list2str()*
-listener_add()	eval.txt	/*listener_add()*
-listener_flush()	eval.txt	/*listener_flush()*
-listener_remove()	eval.txt	/*listener_remove()*
+list2blob()	builtin.txt	/*list2blob()*
+list2str()	builtin.txt	/*list2str()*
+listener_add()	builtin.txt	/*listener_add()*
+listener_flush()	builtin.txt	/*listener_flush()*
+listener_remove()	builtin.txt	/*listener_remove()*
 lite.vim	syntax.txt	/*lite.vim*
 literal-Dict	eval.txt	/*literal-Dict*
 literal-string	eval.txt	/*literal-string*
@@ -7789,12 +7796,12 @@ local-variables	eval.txt	/*local-variabl
 local_markfilelist	pi_netrw.txt	/*local_markfilelist*
 locale	mbyte.txt	/*locale*
 locale-name	mbyte.txt	/*locale-name*
-localtime()	eval.txt	/*localtime()*
+localtime()	builtin.txt	/*localtime()*
 location-list	quickfix.txt	/*location-list*
 location-list-file-window	quickfix.txt	/*location-list-file-window*
 location-list-window	quickfix.txt	/*location-list-window*
-log()	eval.txt	/*log()*
-log10()	eval.txt	/*log10()*
+log()	builtin.txt	/*log()*
+log10()	builtin.txt	/*log10()*
 logiPat	pi_logipat.txt	/*logiPat*
 logiPat-arg	pi_logipat.txt	/*logiPat-arg*
 logiPat-caveat	pi_logipat.txt	/*logiPat-caveat*
@@ -7826,7 +7833,7 @@ lua-vim	if_lua.txt	/*lua-vim*
 lua-vim-variables	if_lua.txt	/*lua-vim-variables*
 lua-window	if_lua.txt	/*lua-window*
 lua.vim	syntax.txt	/*lua.vim*
-luaeval()	eval.txt	/*luaeval()*
+luaeval()	builtin.txt	/*luaeval()*
 m	motion.txt	/*m*
 m'	motion.txt	/*m'*
 m<	motion.txt	/*m<*
@@ -7853,7 +7860,7 @@ make.vim	syntax.txt	/*make.vim*
 man.vim	filetype.txt	/*man.vim*
 manpager.vim	filetype.txt	/*manpager.vim*
 manual-copyright	usr_01.txt	/*manual-copyright*
-map()	eval.txt	/*map()*
+map()	builtin.txt	/*map()*
 map-<SID>	map.txt	/*map-<SID>*
 map-CTRL-C	map.txt	/*map-CTRL-C*
 map-ambiguous	map.txt	/*map-ambiguous*
@@ -7885,8 +7892,8 @@ map_empty_rhs	map.txt	/*map_empty_rhs*
 map_return	map.txt	/*map_return*
 map_space_in_lhs	map.txt	/*map_space_in_lhs*
 map_space_in_rhs	map.txt	/*map_space_in_rhs*
-maparg()	eval.txt	/*maparg()*
-mapcheck()	eval.txt	/*mapcheck()*
+maparg()	builtin.txt	/*maparg()*
+mapcheck()	builtin.txt	/*mapcheck()*
 maple.vim	syntax.txt	/*maple.vim*
 mapleader	map.txt	/*mapleader*
 maplocalleader	map.txt	/*maplocalleader*
@@ -7901,33 +7908,33 @@ mapmode-s	map.txt	/*mapmode-s*
 mapmode-t	map.txt	/*mapmode-t*
 mapmode-v	map.txt	/*mapmode-v*
 mapmode-x	map.txt	/*mapmode-x*
-mapnew()	eval.txt	/*mapnew()*
+mapnew()	builtin.txt	/*mapnew()*
 mapping	map.txt	/*mapping*
 mapping-functions	usr_41.txt	/*mapping-functions*
-mapset()	eval.txt	/*mapset()*
+mapset()	builtin.txt	/*mapset()*
 mark	motion.txt	/*mark*
 mark-functions	usr_41.txt	/*mark-functions*
 mark-motions	motion.txt	/*mark-motions*
 markfilelist	pi_netrw.txt	/*markfilelist*
 masm.vim	syntax.txt	/*masm.vim*
-match()	eval.txt	/*match()*
+match()	builtin.txt	/*match()*
 match-highlight	pattern.txt	/*match-highlight*
 match-parens	tips.txt	/*match-parens*
-matchadd()	eval.txt	/*matchadd()*
-matchaddpos()	eval.txt	/*matchaddpos()*
-matcharg()	eval.txt	/*matcharg()*
-matchdelete()	eval.txt	/*matchdelete()*
-matchend()	eval.txt	/*matchend()*
-matchfuzzy()	eval.txt	/*matchfuzzy()*
-matchfuzzypos()	eval.txt	/*matchfuzzypos()*
+matchadd()	builtin.txt	/*matchadd()*
+matchaddpos()	builtin.txt	/*matchaddpos()*
+matcharg()	builtin.txt	/*matcharg()*
+matchdelete()	builtin.txt	/*matchdelete()*
+matchend()	builtin.txt	/*matchend()*
+matchfuzzy()	builtin.txt	/*matchfuzzy()*
+matchfuzzypos()	builtin.txt	/*matchfuzzypos()*
 matchit-install	usr_05.txt	/*matchit-install*
-matchlist()	eval.txt	/*matchlist()*
+matchlist()	builtin.txt	/*matchlist()*
 matchparen	pi_paren.txt	/*matchparen*
-matchstr()	eval.txt	/*matchstr()*
-matchstrpos()	eval.txt	/*matchstrpos()*
+matchstr()	builtin.txt	/*matchstr()*
+matchstrpos()	builtin.txt	/*matchstrpos()*
 matlab-indent	indent.txt	/*matlab-indent*
 matlab-indenting	indent.txt	/*matlab-indenting*
-max()	eval.txt	/*max()*
+max()	builtin.txt	/*max()*
 mbyte-IME	mbyte.txt	/*mbyte-IME*
 mbyte-XIM	mbyte.txt	/*mbyte-XIM*
 mbyte-combining	mbyte.txt	/*mbyte-combining*
@@ -7952,7 +7959,7 @@ menu-shortcut	gui.txt	/*menu-shortcut*
 menu-text	gui.txt	/*menu-text*
 menu-tips	gui.txt	/*menu-tips*
 menu.vim	gui.txt	/*menu.vim*
-menu_info()	eval.txt	/*menu_info()*
+menu_info()	builtin.txt	/*menu_info()*
 menus	gui.txt	/*menus*
 merge	diff.txt	/*merge*
 message-history	message.txt	/*message-history*
@@ -7960,12 +7967,12 @@ message.txt	message.txt	/*message.txt*
 messages	message.txt	/*messages*
 meta	intro.txt	/*meta*
 method	eval.txt	/*method*
-min()	eval.txt	/*min()*
+min()	builtin.txt	/*min()*
 missing-options	vi_diff.txt	/*missing-options*
-mkdir()	eval.txt	/*mkdir()*
+mkdir()	builtin.txt	/*mkdir()*
 mlang.txt	mlang.txt	/*mlang.txt*
 mma.vim	syntax.txt	/*mma.vim*
-mode()	eval.txt	/*mode()*
+mode()	builtin.txt	/*mode()*
 mode-Ex	intro.txt	/*mode-Ex*
 mode-cmdline	cmdline.txt	/*mode-cmdline*
 mode-ins-repl	insert.txt	/*mode-ins-repl*
@@ -8012,7 +8019,7 @@ mysql	ft_sql.txt	/*mysql*
 mysyntaxfile	syntax.txt	/*mysyntaxfile*
 mysyntaxfile-add	syntax.txt	/*mysyntaxfile-add*
 mysyntaxfile-replace	syntax.txt	/*mysyntaxfile-replace*
-mzeval()	eval.txt	/*mzeval()*
+mzeval()	builtin.txt	/*mzeval()*
 mzscheme	if_mzsch.txt	/*mzscheme*
 mzscheme-buffer	if_mzsch.txt	/*mzscheme-buffer*
 mzscheme-commands	if_mzsch.txt	/*mzscheme-commands*
@@ -8376,7 +8383,7 @@ new-vimgrep	version7.txt	/*new-vimgrep*
 new-vimscript-8.2	version8.txt	/*new-vimscript-8.2*
 new-virtedit	version6.txt	/*new-virtedit*
 news	intro.txt	/*news*
-nextnonblank()	eval.txt	/*nextnonblank()*
+nextnonblank()	builtin.txt	/*nextnonblank()*
 no-eval-feature	eval.txt	/*no-eval-feature*
 no-type-checking	eval.txt	/*no-type-checking*
 no_buffers_menu	gui.txt	/*no_buffers_menu*
@@ -8392,7 +8399,7 @@ not-compatible	usr_01.txt	/*not-compatib
 not-edited	editing.txt	/*not-edited*
 notation	intro.txt	/*notation*
 notepad	gui_w32.txt	/*notepad*
-nr2char()	eval.txt	/*nr2char()*
+nr2char()	builtin.txt	/*nr2char()*
 nroff.vim	syntax.txt	/*nroff.vim*
 null	vim9.txt	/*null*
 null-variable	eval.txt	/*null-variable*
@@ -8445,7 +8452,7 @@ options-changed	version5.txt	/*options-c
 options-in-terminal	terminal.txt	/*options-in-terminal*
 options.txt	options.txt	/*options.txt*
 optwin	options.txt	/*optwin*
-or()	eval.txt	/*or()*
+or()	builtin.txt	/*or()*
 oracle	ft_sql.txt	/*oracle*
 os2	os_os2.txt	/*os2*
 os390	os_390.txt	/*os390*
@@ -8484,13 +8491,13 @@ page_up	intro.txt	/*page_up*
 pager	message.txt	/*pager*
 papp.vim	syntax.txt	/*papp.vim*
 paragraph	motion.txt	/*paragraph*
-partial	eval.txt	/*partial*
+partial	builtin.txt	/*partial*
 pascal.vim	syntax.txt	/*pascal.vim*
 patches-8	version8.txt	/*patches-8*
 patches-8.1	version8.txt	/*patches-8.1*
 patches-8.2	version8.txt	/*patches-8.2*
 patches-after-8.2	version8.txt	/*patches-after-8.2*
-pathshorten()	eval.txt	/*pathshorten()*
+pathshorten()	builtin.txt	/*pathshorten()*
 pattern	pattern.txt	/*pattern*
 pattern-atoms	pattern.txt	/*pattern-atoms*
 pattern-delimiter	change.txt	/*pattern-delimiter*
@@ -8529,7 +8536,7 @@ perl-overview	if_perl.txt	/*perl-overvie
 perl-patterns	pattern.txt	/*perl-patterns*
 perl-using	if_perl.txt	/*perl-using*
 perl.vim	syntax.txt	/*perl.vim*
-perleval()	eval.txt	/*perleval()*
+perleval()	builtin.txt	/*perleval()*
 persistent-undo	undo.txt	/*persistent-undo*
 pexpr-option	print.txt	/*pexpr-option*
 pfn-option	print.txt	/*pfn-option*
@@ -8626,33 +8633,33 @@ postscript-print-encoding	print.txt	/*po
 postscript-print-trouble	print.txt	/*postscript-print-trouble*
 postscript-print-util	print.txt	/*postscript-print-util*
 postscript-printing	print.txt	/*postscript-printing*
-pow()	eval.txt	/*pow()*
+pow()	builtin.txt	/*pow()*
 ppwiz.vim	syntax.txt	/*ppwiz.vim*
 press-enter	message.txt	/*press-enter*
 press-return	message.txt	/*press-return*
 prevcount-variable	eval.txt	/*prevcount-variable*
 preview-popup	windows.txt	/*preview-popup*
 preview-window	windows.txt	/*preview-window*
-prevnonblank()	eval.txt	/*prevnonblank()*
+prevnonblank()	builtin.txt	/*prevnonblank()*
 print-intro	print.txt	/*print-intro*
 print-options	print.txt	/*print-options*
 print.txt	print.txt	/*print.txt*
-printf()	eval.txt	/*printf()*
-printf-%	eval.txt	/*printf-%*
-printf-B	eval.txt	/*printf-B*
-printf-E	eval.txt	/*printf-E*
-printf-G	eval.txt	/*printf-G*
-printf-S	eval.txt	/*printf-S*
-printf-X	eval.txt	/*printf-X*
-printf-b	eval.txt	/*printf-b*
-printf-c	eval.txt	/*printf-c*
-printf-d	eval.txt	/*printf-d*
-printf-e	eval.txt	/*printf-e*
-printf-f	eval.txt	/*printf-f*
-printf-g	eval.txt	/*printf-g*
-printf-o	eval.txt	/*printf-o*
-printf-s	eval.txt	/*printf-s*
-printf-x	eval.txt	/*printf-x*
+printf()	builtin.txt	/*printf()*
+printf-%	builtin.txt	/*printf-%*
+printf-B	builtin.txt	/*printf-B*
+printf-E	builtin.txt	/*printf-E*
+printf-G	builtin.txt	/*printf-G*
+printf-S	builtin.txt	/*printf-S*
+printf-X	builtin.txt	/*printf-X*
+printf-b	builtin.txt	/*printf-b*
+printf-c	builtin.txt	/*printf-c*
+printf-d	builtin.txt	/*printf-d*
+printf-e	builtin.txt	/*printf-e*
+printf-f	builtin.txt	/*printf-f*
+printf-g	builtin.txt	/*printf-g*
+printf-o	builtin.txt	/*printf-o*
+printf-s	builtin.txt	/*printf-s*
+printf-x	builtin.txt	/*printf-x*
 printing	print.txt	/*printing*
 printing-formfeed	print.txt	/*printing-formfeed*
 profile	repeat.txt	/*profile*
@@ -8662,10 +8669,10 @@ progname-variable	eval.txt	/*progname-va
 progpath-variable	eval.txt	/*progpath-variable*
 progress.vim	syntax.txt	/*progress.vim*
 prompt-buffer	channel.txt	/*prompt-buffer*
-prompt_getprompt()	eval.txt	/*prompt_getprompt()*
-prompt_setcallback()	eval.txt	/*prompt_setcallback()*
-prompt_setinterrupt()	eval.txt	/*prompt_setinterrupt()*
-prompt_setprompt()	eval.txt	/*prompt_setprompt()*
+prompt_getprompt()	builtin.txt	/*prompt_getprompt()*
+prompt_setcallback()	builtin.txt	/*prompt_setcallback()*
+prompt_setinterrupt()	builtin.txt	/*prompt_setinterrupt()*
+prompt_setprompt()	builtin.txt	/*prompt_setprompt()*
 promptbuffer-functions	usr_41.txt	/*promptbuffer-functions*
 pronounce	intro.txt	/*pronounce*
 prop_add()	textprop.txt	/*prop_add()*
@@ -8687,12 +8694,12 @@ ps1-syntax	ft_ps1.txt	/*ps1-syntax*
 psql	ft_sql.txt	/*psql*
 ptcap.vim	syntax.txt	/*ptcap.vim*
 pterm-mouse	options.txt	/*pterm-mouse*
-pum_getpos()	eval.txt	/*pum_getpos()*
-pumvisible()	eval.txt	/*pumvisible()*
+pum_getpos()	builtin.txt	/*pum_getpos()*
+pumvisible()	builtin.txt	/*pumvisible()*
 put	change.txt	/*put*
 put-Visual-mode	change.txt	/*put-Visual-mode*
-py3eval()	eval.txt	/*py3eval()*
-pyeval()	eval.txt	/*pyeval()*
+py3eval()	builtin.txt	/*py3eval()*
+pyeval()	builtin.txt	/*pyeval()*
 python	if_pyth.txt	/*python*
 python-.locked	if_pyth.txt	/*python-.locked*
 python-2-and-3	if_pyth.txt	/*python-2-and-3*
@@ -8741,7 +8748,7 @@ python_x	if_pyth.txt	/*python_x*
 python_x-special-comments	if_pyth.txt	/*python_x-special-comments*
 pythonx	if_pyth.txt	/*pythonx*
 pythonx-directory	if_pyth.txt	/*pythonx-directory*
-pyxeval()	eval.txt	/*pyxeval()*
+pyxeval()	builtin.txt	/*pyxeval()*
 q	repeat.txt	/*q*
 q/	cmdline.txt	/*q\/*
 q:	cmdline.txt	/*q:*
@@ -8813,19 +8820,19 @@ quote~	change.txt	/*quote~*
 r	change.txt	/*r*
 r.vim	syntax.txt	/*r.vim*
 raku-unicode	ft_raku.txt	/*raku-unicode*
-rand()	eval.txt	/*rand()*
-random	eval.txt	/*random*
-range()	eval.txt	/*range()*
+rand()	builtin.txt	/*rand()*
+random	builtin.txt	/*random*
+range()	builtin.txt	/*range()*
 raw-terminal-mode	term.txt	/*raw-terminal-mode*
 rcp	pi_netrw.txt	/*rcp*
 read-in-close-cb	channel.txt	/*read-in-close-cb*
 read-messages	insert.txt	/*read-messages*
 read-only-share	editing.txt	/*read-only-share*
 read-stdin	version5.txt	/*read-stdin*
-readblob()	eval.txt	/*readblob()*
-readdir()	eval.txt	/*readdir()*
-readdirex()	eval.txt	/*readdirex()*
-readfile()	eval.txt	/*readfile()*
+readblob()	builtin.txt	/*readblob()*
+readdir()	builtin.txt	/*readdir()*
+readdirex()	builtin.txt	/*readdirex()*
+readfile()	builtin.txt	/*readfile()*
 readline.vim	syntax.txt	/*readline.vim*
 recording	repeat.txt	/*recording*
 recover.txt	recover.txt	/*recover.txt*
@@ -8833,12 +8840,12 @@ recovery	recover.txt	/*recovery*
 recursive_mapping	map.txt	/*recursive_mapping*
 redo	undo.txt	/*redo*
 redo-register	undo.txt	/*redo-register*
-reduce()	eval.txt	/*reduce()*
+reduce()	builtin.txt	/*reduce()*
 ref	intro.txt	/*ref*
 reference	intro.txt	/*reference*
 reference_toc	help.txt	/*reference_toc*
-reg_executing()	eval.txt	/*reg_executing()*
-reg_recording()	eval.txt	/*reg_recording()*
+reg_executing()	builtin.txt	/*reg_executing()*
+reg_recording()	builtin.txt	/*reg_recording()*
 regexp	pattern.txt	/*regexp*
 regexp-changes-5.4	version5.txt	/*regexp-changes-5.4*
 register	sponsor.txt	/*register*
@@ -8848,34 +8855,34 @@ registers	change.txt	/*registers*
 rego.vim	syntax.txt	/*rego.vim*
 regular-expression	pattern.txt	/*regular-expression*
 reload	editing.txt	/*reload*
-reltime()	eval.txt	/*reltime()*
-reltimefloat()	eval.txt	/*reltimefloat()*
-reltimestr()	eval.txt	/*reltimestr()*
+reltime()	builtin.txt	/*reltime()*
+reltimefloat()	builtin.txt	/*reltimefloat()*
+reltimestr()	builtin.txt	/*reltimestr()*
 remote.txt	remote.txt	/*remote.txt*
-remote_expr()	eval.txt	/*remote_expr()*
-remote_foreground()	eval.txt	/*remote_foreground()*
-remote_peek()	eval.txt	/*remote_peek()*
-remote_read()	eval.txt	/*remote_read()*
-remote_send()	eval.txt	/*remote_send()*
-remote_startserver()	eval.txt	/*remote_startserver()*
-remove()	eval.txt	/*remove()*
+remote_expr()	builtin.txt	/*remote_expr()*
+remote_foreground()	builtin.txt	/*remote_foreground()*
+remote_peek()	builtin.txt	/*remote_peek()*
+remote_read()	builtin.txt	/*remote_read()*
+remote_send()	builtin.txt	/*remote_send()*
+remote_startserver()	builtin.txt	/*remote_startserver()*
+remove()	builtin.txt	/*remove()*
 remove-filetype	filetype.txt	/*remove-filetype*
 remove-option-flags	options.txt	/*remove-option-flags*
-rename()	eval.txt	/*rename()*
+rename()	builtin.txt	/*rename()*
 rename-files	tips.txt	/*rename-files*
-repeat()	eval.txt	/*repeat()*
+repeat()	builtin.txt	/*repeat()*
 repeat.txt	repeat.txt	/*repeat.txt*
 repeating	repeat.txt	/*repeating*
 replacing	change.txt	/*replacing*
 replacing-ex	insert.txt	/*replacing-ex*
 reselect-Visual	visual.txt	/*reselect-Visual*
-resolve()	eval.txt	/*resolve()*
+resolve()	builtin.txt	/*resolve()*
 restore-cursor	usr_05.txt	/*restore-cursor*
 restore-position	tips.txt	/*restore-position*
 restricted-mode	starting.txt	/*restricted-mode*
 retab-example	change.txt	/*retab-example*
 rethrow	eval.txt	/*rethrow*
-reverse()	eval.txt	/*reverse()*
+reverse()	builtin.txt	/*reverse()*
 rexx.vim	syntax.txt	/*rexx.vim*
 rgb.txt	gui_w32.txt	/*rgb.txt*
 rgview	starting.txt	/*rgview*
@@ -8886,7 +8893,7 @@ rileft.txt	rileft.txt	/*rileft.txt*
 riscos	os_risc.txt	/*riscos*
 rmd.vim	syntax.txt	/*rmd.vim*
 rot13	change.txt	/*rot13*
-round()	eval.txt	/*round()*
+round()	builtin.txt	/*round()*
 rrst.vim	syntax.txt	/*rrst.vim*
 rst.vim	syntax.txt	/*rst.vim*
 rsync	pi_netrw.txt	/*rsync*
@@ -8911,7 +8918,7 @@ ruby_no_expensive	syntax.txt	/*ruby_no_e
 ruby_operators	syntax.txt	/*ruby_operators*
 ruby_space_errors	syntax.txt	/*ruby_space_errors*
 ruby_spellcheck_strings	syntax.txt	/*ruby_spellcheck_strings*
-rubyeval()	eval.txt	/*rubyeval()*
+rubyeval()	builtin.txt	/*rubyeval()*
 russian	russian.txt	/*russian*
 russian-intro	russian.txt	/*russian-intro*
 russian-issues	russian.txt	/*russian-issues*
@@ -8959,13 +8966,13 @@ save-settings	starting.txt	/*save-settin
 scheme.vim	syntax.txt	/*scheme.vim*
 scp	pi_netrw.txt	/*scp*
 scratch-buffer	windows.txt	/*scratch-buffer*
-screenattr()	eval.txt	/*screenattr()*
-screenchar()	eval.txt	/*screenchar()*
-screenchars()	eval.txt	/*screenchars()*
-screencol()	eval.txt	/*screencol()*
-screenpos()	eval.txt	/*screenpos()*
-screenrow()	eval.txt	/*screenrow()*
-screenstring()	eval.txt	/*screenstring()*
+screenattr()	builtin.txt	/*screenattr()*
+screenchar()	builtin.txt	/*screenchar()*
+screenchars()	builtin.txt	/*screenchars()*
+screencol()	builtin.txt	/*screencol()*
+screenpos()	builtin.txt	/*screenpos()*
+screenrow()	builtin.txt	/*screenrow()*
+screenstring()	builtin.txt	/*screenstring()*
 script	usr_41.txt	/*script*
 script-here	if_perl.txt	/*script-here*
 script-local	map.txt	/*script-local*
@@ -8992,19 +8999,19 @@ scrollbind-relative	scroll.txt	/*scrollb
 scrolling	scroll.txt	/*scrolling*
 scrollstart-variable	eval.txt	/*scrollstart-variable*
 sdl.vim	syntax.txt	/*sdl.vim*
-search()	eval.txt	/*search()*
-search()-sub-match	eval.txt	/*search()-sub-match*
+search()	builtin.txt	/*search()*
+search()-sub-match	builtin.txt	/*search()-sub-match*
 search-commands	pattern.txt	/*search-commands*
 search-offset	pattern.txt	/*search-offset*
 search-pattern	pattern.txt	/*search-pattern*
 search-range	pattern.txt	/*search-range*
 search-replace	change.txt	/*search-replace*
-searchcount()	eval.txt	/*searchcount()*
-searchdecl()	eval.txt	/*searchdecl()*
+searchcount()	builtin.txt	/*searchcount()*
+searchdecl()	builtin.txt	/*searchdecl()*
 searchforward-variable	eval.txt	/*searchforward-variable*
-searchpair()	eval.txt	/*searchpair()*
-searchpairpos()	eval.txt	/*searchpairpos()*
-searchpos()	eval.txt	/*searchpos()*
+searchpair()	builtin.txt	/*searchpair()*
+searchpairpos()	builtin.txt	/*searchpairpos()*
+searchpos()	builtin.txt	/*searchpos()*
 section	motion.txt	/*section*
 sed.vim	syntax.txt	/*sed.vim*
 self	eval.txt	/*self*
@@ -9013,51 +9020,51 @@ send-to-menu	gui_w32.txt	/*send-to-menu*
 sendto	gui_w32.txt	/*sendto*
 sentence	motion.txt	/*sentence*
 server-functions	usr_41.txt	/*server-functions*
-server2client()	eval.txt	/*server2client()*
-serverlist()	eval.txt	/*serverlist()*
+server2client()	builtin.txt	/*server2client()*
+serverlist()	builtin.txt	/*serverlist()*
 servername-variable	eval.txt	/*servername-variable*
 session-file	starting.txt	/*session-file*
 set-option	options.txt	/*set-option*
 set-spc-auto	spell.txt	/*set-spc-auto*
-setbufline()	eval.txt	/*setbufline()*
-setbufvar()	eval.txt	/*setbufvar()*
-setcellwidths()	eval.txt	/*setcellwidths()*
-setcharpos()	eval.txt	/*setcharpos()*
-setcharsearch()	eval.txt	/*setcharsearch()*
-setcmdpos()	eval.txt	/*setcmdpos()*
-setcursorcharpos()	eval.txt	/*setcursorcharpos()*
-setenv()	eval.txt	/*setenv()*
-setfperm()	eval.txt	/*setfperm()*
-setline()	eval.txt	/*setline()*
-setloclist()	eval.txt	/*setloclist()*
-setmatches()	eval.txt	/*setmatches()*
-setpos()	eval.txt	/*setpos()*
-setqflist()	eval.txt	/*setqflist()*
-setqflist-action	eval.txt	/*setqflist-action*
+setbufline()	builtin.txt	/*setbufline()*
+setbufvar()	builtin.txt	/*setbufvar()*
+setcellwidths()	builtin.txt	/*setcellwidths()*
+setcharpos()	builtin.txt	/*setcharpos()*
+setcharsearch()	builtin.txt	/*setcharsearch()*
+setcmdpos()	builtin.txt	/*setcmdpos()*
+setcursorcharpos()	builtin.txt	/*setcursorcharpos()*
+setenv()	builtin.txt	/*setenv()*
+setfperm()	builtin.txt	/*setfperm()*
+setline()	builtin.txt	/*setline()*
+setloclist()	builtin.txt	/*setloclist()*
+setmatches()	builtin.txt	/*setmatches()*
+setpos()	builtin.txt	/*setpos()*
+setqflist()	builtin.txt	/*setqflist()*
+setqflist-action	builtin.txt	/*setqflist-action*
 setqflist-examples	quickfix.txt	/*setqflist-examples*
-setqflist-what	eval.txt	/*setqflist-what*
-setreg()	eval.txt	/*setreg()*
-settabvar()	eval.txt	/*settabvar()*
-settabwinvar()	eval.txt	/*settabwinvar()*
-settagstack()	eval.txt	/*settagstack()*
+setqflist-what	builtin.txt	/*setqflist-what*
+setreg()	builtin.txt	/*setreg()*
+settabvar()	builtin.txt	/*settabvar()*
+settabwinvar()	builtin.txt	/*settabwinvar()*
+settagstack()	builtin.txt	/*settagstack()*
 setting-guifont	gui.txt	/*setting-guifont*
 setting-guitablabel	tabpage.txt	/*setting-guitablabel*
 setting-tabline	tabpage.txt	/*setting-tabline*
 setuid	change.txt	/*setuid*
-setwinvar()	eval.txt	/*setwinvar()*
+setwinvar()	builtin.txt	/*setwinvar()*
 sftp	pi_netrw.txt	/*sftp*
 sgml.vim	syntax.txt	/*sgml.vim*
 sgr-mouse	options.txt	/*sgr-mouse*
 sh-awk	syntax.txt	/*sh-awk*
 sh-embed	syntax.txt	/*sh-embed*
 sh.vim	syntax.txt	/*sh.vim*
-sha256()	eval.txt	/*sha256()*
+sha256()	builtin.txt	/*sha256()*
 shell-window	tips.txt	/*shell-window*
 shell_error-variable	eval.txt	/*shell_error-variable*
-shellescape()	eval.txt	/*shellescape()*
+shellescape()	builtin.txt	/*shellescape()*
 shift	intro.txt	/*shift*
 shift-left-right	change.txt	/*shift-left-right*
-shiftwidth()	eval.txt	/*shiftwidth()*
+shiftwidth()	builtin.txt	/*shiftwidth()*
 short-name-changed	version4.txt	/*short-name-changed*
 showing-menus	gui.txt	/*showing-menus*
 sign-column	sign.txt	/*sign-column*
@@ -9081,30 +9088,30 @@ sign_unplace()	sign.txt	/*sign_unplace()
 sign_unplacelist()	sign.txt	/*sign_unplacelist()*
 signs	sign.txt	/*signs*
 simple-change	change.txt	/*simple-change*
-simplify()	eval.txt	/*simplify()*
+simplify()	builtin.txt	/*simplify()*
 simulated-command	vi_diff.txt	/*simulated-command*
-sin()	eval.txt	/*sin()*
+sin()	builtin.txt	/*sin()*
 single-repeat	repeat.txt	/*single-repeat*
-sinh()	eval.txt	/*sinh()*
+sinh()	builtin.txt	/*sinh()*
 sizeofint-variable	eval.txt	/*sizeofint-variable*
 sizeoflong-variable	eval.txt	/*sizeoflong-variable*
 sizeofpointer-variable	eval.txt	/*sizeofpointer-variable*
 skeleton	autocmd.txt	/*skeleton*
 skip_defaults_vim	starting.txt	/*skip_defaults_vim*
 slice	eval.txt	/*slice*
-slice()	eval.txt	/*slice()*
+slice()	builtin.txt	/*slice()*
 slow-fast-terminal	term.txt	/*slow-fast-terminal*
 slow-start	starting.txt	/*slow-start*
 slow-terminal	term.txt	/*slow-terminal*
 socket-interface	channel.txt	/*socket-interface*
-sort()	eval.txt	/*sort()*
+sort()	builtin.txt	/*sort()*
 sorting	change.txt	/*sorting*
 sound-functions	usr_41.txt	/*sound-functions*
-sound_clear()	eval.txt	/*sound_clear()*
-sound_playevent()	eval.txt	/*sound_playevent()*
-sound_playfile()	eval.txt	/*sound_playfile()*
-sound_stop()	eval.txt	/*sound_stop()*
-soundfold()	eval.txt	/*soundfold()*
+sound_clear()	builtin.txt	/*sound_clear()*
+sound_playevent()	builtin.txt	/*sound_playevent()*
+sound_playfile()	builtin.txt	/*sound_playfile()*
+sound_stop()	builtin.txt	/*sound_stop()*
+soundfold()	builtin.txt	/*soundfold()*
 source-vim9-script	usr_46.txt	/*source-vim9-script*
 space	intro.txt	/*space*
 spec-customizing	pi_spec.txt	/*spec-customizing*
@@ -9212,11 +9219,11 @@ spell-syntax	spell.txt	/*spell-syntax*
 spell-wordlist-format	spell.txt	/*spell-wordlist-format*
 spell-yiddish	spell.txt	/*spell-yiddish*
 spell.txt	spell.txt	/*spell.txt*
-spellbadword()	eval.txt	/*spellbadword()*
+spellbadword()	builtin.txt	/*spellbadword()*
 spellfile-cleanup	spell.txt	/*spellfile-cleanup*
 spellfile.vim	spell.txt	/*spellfile.vim*
-spellsuggest()	eval.txt	/*spellsuggest()*
-split()	eval.txt	/*split()*
+spellsuggest()	builtin.txt	/*spellsuggest()*
+split()	builtin.txt	/*split()*
 splitfind	windows.txt	/*splitfind*
 splitview	windows.txt	/*splitview*
 sponsor	sponsor.txt	/*sponsor*
@@ -9252,9 +9259,9 @@ sqlinformix.vim	syntax.txt	/*sqlinformix
 sqlj	ft_sql.txt	/*sqlj*
 sqlserver	ft_sql.txt	/*sqlserver*
 sqlsettype	ft_sql.txt	/*sqlsettype*
-sqrt()	eval.txt	/*sqrt()*
+sqrt()	builtin.txt	/*sqrt()*
 squirrel.vim	syntax.txt	/*squirrel.vim*
-srand()	eval.txt	/*srand()*
+srand()	builtin.txt	/*srand()*
 sscanf	eval.txt	/*sscanf*
 standard-plugin	usr_05.txt	/*standard-plugin*
 standard-plugin-list	help.txt	/*standard-plugin-list*
@@ -9270,39 +9277,39 @@ starting.txt	starting.txt	/*starting.txt
 startup	starting.txt	/*startup*
 startup-options	starting.txt	/*startup-options*
 startup-terminal	term.txt	/*startup-terminal*
-state()	eval.txt	/*state()*
+state()	builtin.txt	/*state()*
 static-tag	tagsrch.txt	/*static-tag*
 status-line	windows.txt	/*status-line*
 statusmsg-variable	eval.txt	/*statusmsg-variable*
 stl-%{	options.txt	/*stl-%{*
-str2float()	eval.txt	/*str2float()*
-str2list()	eval.txt	/*str2list()*
-str2nr()	eval.txt	/*str2nr()*
-strcasestr()	eval.txt	/*strcasestr()*
-strcharlen()	eval.txt	/*strcharlen()*
-strcharpart()	eval.txt	/*strcharpart()*
-strchars()	eval.txt	/*strchars()*
-strchr()	eval.txt	/*strchr()*
-strcspn()	eval.txt	/*strcspn()*
-strdisplaywidth()	eval.txt	/*strdisplaywidth()*
-strftime()	eval.txt	/*strftime()*
-strgetchar()	eval.txt	/*strgetchar()*
-stridx()	eval.txt	/*stridx()*
+str2float()	builtin.txt	/*str2float()*
+str2list()	builtin.txt	/*str2list()*
+str2nr()	builtin.txt	/*str2nr()*
+strcasestr()	builtin.txt	/*strcasestr()*
+strcharlen()	builtin.txt	/*strcharlen()*
+strcharpart()	builtin.txt	/*strcharpart()*
+strchars()	builtin.txt	/*strchars()*
+strchr()	builtin.txt	/*strchr()*
+strcspn()	builtin.txt	/*strcspn()*
+strdisplaywidth()	builtin.txt	/*strdisplaywidth()*
+strftime()	builtin.txt	/*strftime()*
+strgetchar()	builtin.txt	/*strgetchar()*
+stridx()	builtin.txt	/*stridx()*
 strikethrough	syntax.txt	/*strikethrough*
 string	eval.txt	/*string*
-string()	eval.txt	/*string()*
+string()	builtin.txt	/*string()*
 string-functions	usr_41.txt	/*string-functions*
-string-match	eval.txt	/*string-match*
-strlen()	eval.txt	/*strlen()*
-strpart()	eval.txt	/*strpart()*
-strpbrk()	eval.txt	/*strpbrk()*
-strptime()	eval.txt	/*strptime()*
-strrchr()	eval.txt	/*strrchr()*
-strridx()	eval.txt	/*strridx()*
-strspn()	eval.txt	/*strspn()*
-strstr()	eval.txt	/*strstr()*
-strtrans()	eval.txt	/*strtrans()*
-strwidth()	eval.txt	/*strwidth()*
+string-match	builtin.txt	/*string-match*
+strlen()	builtin.txt	/*strlen()*
+strpart()	builtin.txt	/*strpart()*
+strpbrk()	builtin.txt	/*strpbrk()*
+strptime()	builtin.txt	/*strptime()*
+strrchr()	builtin.txt	/*strrchr()*
+strridx()	builtin.txt	/*strridx()*
+strspn()	builtin.txt	/*strspn()*
+strstr()	builtin.txt	/*strstr()*
+strtrans()	builtin.txt	/*strtrans()*
+strwidth()	builtin.txt	/*strwidth()*
 style-changes	develop.txt	/*style-changes*
 style-compiler	develop.txt	/*style-compiler*
 style-examples	develop.txt	/*style-examples*
@@ -9315,10 +9322,10 @@ sub-replace-\=	change.txt	/*sub-replace-
 sub-replace-expression	change.txt	/*sub-replace-expression*
 sub-replace-special	change.txt	/*sub-replace-special*
 sublist	eval.txt	/*sublist*
-submatch()	eval.txt	/*submatch()*
+submatch()	builtin.txt	/*submatch()*
 subscribe-maillist	intro.txt	/*subscribe-maillist*
 subscript	eval.txt	/*subscript*
-substitute()	eval.txt	/*substitute()*
+substitute()	builtin.txt	/*substitute()*
 substitute-CR	version6.txt	/*substitute-CR*
 suffixes	cmdline.txt	/*suffixes*
 suspend	starting.txt	/*suspend*
@@ -9327,26 +9334,26 @@ swap-file	recover.txt	/*swap-file*
 swapchoice-variable	eval.txt	/*swapchoice-variable*
 swapcommand-variable	eval.txt	/*swapcommand-variable*
 swapfile-changed	version4.txt	/*swapfile-changed*
-swapinfo()	eval.txt	/*swapinfo()*
-swapname()	eval.txt	/*swapname()*
+swapinfo()	builtin.txt	/*swapinfo()*
+swapname()	builtin.txt	/*swapname()*
 swapname-variable	eval.txt	/*swapname-variable*
 sybase	ft_sql.txt	/*sybase*
 syn-sync-grouphere	syntax.txt	/*syn-sync-grouphere*
 syn-sync-groupthere	syntax.txt	/*syn-sync-groupthere*
 syn-sync-linecont	syntax.txt	/*syn-sync-linecont*
-synID()	eval.txt	/*synID()*
-synIDattr()	eval.txt	/*synIDattr()*
-synIDtrans()	eval.txt	/*synIDtrans()*
+synID()	builtin.txt	/*synID()*
+synIDattr()	builtin.txt	/*synIDattr()*
+synIDtrans()	builtin.txt	/*synIDtrans()*
 syncbind	scroll.txt	/*syncbind*
 syncolor	syntax.txt	/*syncolor*
-synconcealed()	eval.txt	/*synconcealed()*
+synconcealed()	builtin.txt	/*synconcealed()*
 synload-1	syntax.txt	/*synload-1*
 synload-2	syntax.txt	/*synload-2*
 synload-3	syntax.txt	/*synload-3*
 synload-4	syntax.txt	/*synload-4*
 synload-5	syntax.txt	/*synload-5*
 synload-6	syntax.txt	/*synload-6*
-synstack()	eval.txt	/*synstack()*
+synstack()	builtin.txt	/*synstack()*
 syntax	syntax.txt	/*syntax*
 syntax-functions	usr_41.txt	/*syntax-functions*
 syntax-highlighting	syntax.txt	/*syntax-highlighting*
@@ -9358,10 +9365,10 @@ syntax.txt	syntax.txt	/*syntax.txt*
 syntax_cmd	syntax.txt	/*syntax_cmd*
 sys-file-list	help.txt	/*sys-file-list*
 sysmouse	term.txt	/*sysmouse*
-system()	eval.txt	/*system()*
+system()	builtin.txt	/*system()*
 system-functions	usr_41.txt	/*system-functions*
 system-vimrc	starting.txt	/*system-vimrc*
-systemlist()	eval.txt	/*systemlist()*
+systemlist()	builtin.txt	/*systemlist()*
 s~	change.txt	/*s~*
 t	motion.txt	/*t*
 t:	eval.txt	/*t:*
@@ -9578,9 +9585,9 @@ tabnew-autocmd	tabpage.txt	/*tabnew-auto
 tabpage	tabpage.txt	/*tabpage*
 tabpage-variable	eval.txt	/*tabpage-variable*
 tabpage.txt	tabpage.txt	/*tabpage.txt*
-tabpagebuflist()	eval.txt	/*tabpagebuflist()*
-tabpagenr()	eval.txt	/*tabpagenr()*
-tabpagewinnr()	eval.txt	/*tabpagewinnr()*
+tabpagebuflist()	builtin.txt	/*tabpagebuflist()*
+tabpagenr()	builtin.txt	/*tabpagenr()*
+tabpagewinnr()	builtin.txt	/*tabpagewinnr()*
 tag	tagsrch.txt	/*tag*
 tag-!	tagsrch.txt	/*tag-!*
 tag-binary-search	tagsrch.txt	/*tag-binary-search*
@@ -9600,8 +9607,8 @@ tag-search	tagsrch.txt	/*tag-search*
 tag-security	tagsrch.txt	/*tag-security*
 tag-skip-file	tagsrch.txt	/*tag-skip-file*
 tag-stack	tagsrch.txt	/*tag-stack*
-tagfiles()	eval.txt	/*tagfiles()*
-taglist()	eval.txt	/*taglist()*
+tagfiles()	builtin.txt	/*tagfiles()*
+taglist()	builtin.txt	/*taglist()*
 tags	tagsrch.txt	/*tags*
 tags-and-searches	tagsrch.txt	/*tags-and-searches*
 tags-file-changed	version5.txt	/*tags-file-changed*
@@ -9610,8 +9617,8 @@ tags-option	tagsrch.txt	/*tags-option*
 tagsrch.txt	tagsrch.txt	/*tagsrch.txt*
 tagstack	tagsrch.txt	/*tagstack*
 tagstack-examples	tagsrch.txt	/*tagstack-examples*
-tan()	eval.txt	/*tan()*
-tanh()	eval.txt	/*tanh()*
+tan()	builtin.txt	/*tan()*
+tanh()	builtin.txt	/*tanh()*
 tar	pi_tar.txt	/*tar*
 tar-contents	pi_tar.txt	/*tar-contents*
 tar-copyright	pi_tar.txt	/*tar-copyright*
@@ -9666,10 +9673,10 @@ tcsh-style	cmdline.txt	/*tcsh-style*
 tcsh.vim	syntax.txt	/*tcsh.vim*
 tear-off-menus	gui.txt	/*tear-off-menus*
 telnet-CTRL-]	tagsrch.txt	/*telnet-CTRL-]*
-temp-file-name	eval.txt	/*temp-file-name*
+temp-file-name	builtin.txt	/*temp-file-name*
 tempfile	change.txt	/*tempfile*
 template	autocmd.txt	/*template*
-tempname()	eval.txt	/*tempname()*
+tempname()	builtin.txt	/*tempname()*
 term++close	terminal.txt	/*term++close*
 term++open	terminal.txt	/*term++open*
 term-dependent-settings	term.txt	/*term-dependent-settings*
@@ -9754,7 +9761,7 @@ terminal-unix	terminal.txt	/*terminal-un
 terminal-use	terminal.txt	/*terminal-use*
 terminal-window	terminal.txt	/*terminal-window*
 terminal.txt	terminal.txt	/*terminal.txt*
-terminalprops()	eval.txt	/*terminalprops()*
+terminalprops()	builtin.txt	/*terminalprops()*
 terminfo	term.txt	/*terminfo*
 termresponse-variable	eval.txt	/*termresponse-variable*
 test-functions	usr_41.txt	/*test-functions*
@@ -9826,14 +9833,14 @@ throw-from-catch	eval.txt	/*throw-from-c
 throw-variables	eval.txt	/*throw-variables*
 throwpoint-variable	eval.txt	/*throwpoint-variable*
 time-functions	usr_41.txt	/*time-functions*
-timer	eval.txt	/*timer*
+timer	builtin.txt	/*timer*
 timer-functions	usr_41.txt	/*timer-functions*
-timer_info()	eval.txt	/*timer_info()*
-timer_pause()	eval.txt	/*timer_pause()*
-timer_start()	eval.txt	/*timer_start()*
-timer_stop()	eval.txt	/*timer_stop()*
-timer_stopall()	eval.txt	/*timer_stopall()*
-timers	eval.txt	/*timers*
+timer_info()	builtin.txt	/*timer_info()*
+timer_pause()	builtin.txt	/*timer_pause()*
+timer_start()	builtin.txt	/*timer_start()*
+timer_stop()	builtin.txt	/*timer_stop()*
+timer_stopall()	builtin.txt	/*timer_stopall()*
+timers	builtin.txt	/*timers*
 timestamp	editing.txt	/*timestamp*
 timestamps	editing.txt	/*timestamps*
 tips	tips.txt	/*tips*
@@ -9844,17 +9851,17 @@ todo	todo.txt	/*todo*
 todo.txt	todo.txt	/*todo.txt*
 toggle	options.txt	/*toggle*
 toggle-revins	version4.txt	/*toggle-revins*
-tolower()	eval.txt	/*tolower()*
+tolower()	builtin.txt	/*tolower()*
 toolbar-icon	gui.txt	/*toolbar-icon*
 tooltips	gui.txt	/*tooltips*
-toupper()	eval.txt	/*toupper()*
-tr()	eval.txt	/*tr()*
-trim()	eval.txt	/*trim()*
+toupper()	builtin.txt	/*toupper()*
+tr()	builtin.txt	/*tr()*
+trim()	builtin.txt	/*trim()*
 trinary	eval.txt	/*trinary*
 trojan-horse	starting.txt	/*trojan-horse*
 true	vim9.txt	/*true*
 true-variable	eval.txt	/*true-variable*
-trunc()	eval.txt	/*trunc()*
+trunc()	builtin.txt	/*trunc()*
 truthy	eval.txt	/*truthy*
 try-conditionals	eval.txt	/*try-conditionals*
 try-echoerr	eval.txt	/*try-echoerr*
@@ -9865,14 +9872,14 @@ tsrfu'	options.txt	/*tsrfu'*
 tutor	usr_01.txt	/*tutor*
 twice	if_cscop.txt	/*twice*
 two-engines	pattern.txt	/*two-engines*
-type()	eval.txt	/*type()*
+type()	builtin.txt	/*type()*
 type-casting	vim9.txt	/*type-casting*
 type-checking	vim9.txt	/*type-checking*
 type-inference	vim9.txt	/*type-inference*
 type-mistakes	tips.txt	/*type-mistakes*
 typecorr-settings	usr_41.txt	/*typecorr-settings*
 typecorr.txt	usr_41.txt	/*typecorr.txt*
-typename()	eval.txt	/*typename()*
+typename()	builtin.txt	/*typename()*
 u	undo.txt	/*u*
 uganda	uganda.txt	/*uganda*
 uganda.txt	uganda.txt	/*uganda.txt*
@@ -9890,10 +9897,10 @@ undo-two-ways	undo.txt	/*undo-two-ways*
 undo.txt	undo.txt	/*undo.txt*
 undo_ftplugin	usr_41.txt	/*undo_ftplugin*
 undo_indent	usr_41.txt	/*undo_indent*
-undofile()	eval.txt	/*undofile()*
-undotree()	eval.txt	/*undotree()*
+undofile()	builtin.txt	/*undofile()*
+undotree()	builtin.txt	/*undotree()*
 unicode	mbyte.txt	/*unicode*
-uniq()	eval.txt	/*uniq()*
+uniq()	builtin.txt	/*uniq()*
 unix	os_unix.txt	/*unix*
 unlisted-buffer	windows.txt	/*unlisted-buffer*
 up-down-motions	motion.txt	/*up-down-motions*
@@ -10171,7 +10178,7 @@ v_~	change.txt	/*v_~*
 vab	motion.txt	/*vab*
 val-variable	eval.txt	/*val-variable*
 valgrind	debug.txt	/*valgrind*
-values()	eval.txt	/*values()*
+values()	builtin.txt	/*values()*
 var-functions	usr_41.txt	/*var-functions*
 variable-scope	eval.txt	/*variable-scope*
 variable-types	vim9.txt	/*variable-types*
@@ -10255,6 +10262,7 @@ vim.w	if_lua.txt	/*vim.w*
 vim7	version7.txt	/*vim7*
 vim8	version8.txt	/*vim8*
 vim9	vim9.txt	/*vim9*
+vim9-boolean	vim9.txt	/*vim9-boolean*
 vim9-classes	vim9.txt	/*vim9-classes*
 vim9-const	vim9.txt	/*vim9-const*
 vim9-curly	vim9.txt	/*vim9-curly*
@@ -10270,6 +10278,8 @@ vim9-ignored-argument	vim9.txt	/*vim9-ig
 vim9-import	vim9.txt	/*vim9-import*
 vim9-lambda	vim9.txt	/*vim9-lambda*
 vim9-lambda-arguments	vim9.txt	/*vim9-lambda-arguments*
+vim9-line-continuation	vim9.txt	/*vim9-line-continuation*
+vim9-literal-dict	vim9.txt	/*vim9-literal-dict*
 vim9-mix	vim9.txt	/*vim9-mix*
 vim9-namespace	vim9.txt	/*vim9-namespace*
 vim9-no-dict-function	vim9.txt	/*vim9-no-dict-function*
@@ -10288,7 +10298,7 @@ vim_announce	intro.txt	/*vim_announce*
 vim_dev	intro.txt	/*vim_dev*
 vim_did_enter-variable	eval.txt	/*vim_did_enter-variable*
 vim_mac	intro.txt	/*vim_mac*
-vim_starting	eval.txt	/*vim_starting*
+vim_starting	builtin.txt	/*vim_starting*
 vim_use	intro.txt	/*vim_use*
 vimball	pi_vimball.txt	/*vimball*
 vimball-contents	pi_vimball.txt	/*vimball-contents*
@@ -10332,7 +10342,7 @@ vimrc_example.vim	usr_05.txt	/*vimrc_exa
 vimscript-version	eval.txt	/*vimscript-version*
 vimscript-versions	eval.txt	/*vimscript-versions*
 vimtutor	usr_01.txt	/*vimtutor*
-virtcol()	eval.txt	/*virtcol()*
+virtcol()	builtin.txt	/*virtcol()*
 visual-block	visual.txt	/*visual-block*
 visual-change	visual.txt	/*visual-change*
 visual-examples	visual.txt	/*visual-examples*
@@ -10344,7 +10354,7 @@ visual-search	visual.txt	/*visual-search
 visual-start	visual.txt	/*visual-start*
 visual-use	visual.txt	/*visual-use*
 visual.txt	visual.txt	/*visual.txt*
-visualmode()	eval.txt	/*visualmode()*
+visualmode()	builtin.txt	/*visualmode()*
 vms	os_vms.txt	/*vms*
 vms-authors	os_vms.txt	/*vms-authors*
 vms-changes	os_vms.txt	/*vms-changes*
@@ -10375,7 +10385,7 @@ white-space	pattern.txt	/*white-space*
 whitespace	pattern.txt	/*whitespace*
 wildcard	editing.txt	/*wildcard*
 wildcards	editing.txt	/*wildcards*
-wildmenumode()	eval.txt	/*wildmenumode()*
+wildmenumode()	builtin.txt	/*wildmenumode()*
 win16	os_win32.txt	/*win16*
 win32	os_win32.txt	/*win32*
 win32-!start	gui_w32.txt	/*win32-!start*
@@ -10402,17 +10412,17 @@ win32-vimrun	gui_w32.txt	/*win32-vimrun*
 win32-win3.1	os_win32.txt	/*win32-win3.1*
 win32-win95	os_win32.txt	/*win32-win95*
 win32s	os_win32.txt	/*win32s*
-win_execute()	eval.txt	/*win_execute()*
-win_findbuf()	eval.txt	/*win_findbuf()*
-win_getid()	eval.txt	/*win_getid()*
-win_gettype()	eval.txt	/*win_gettype()*
-win_gotoid()	eval.txt	/*win_gotoid()*
-win_id2tabwin()	eval.txt	/*win_id2tabwin()*
-win_id2win()	eval.txt	/*win_id2win()*
-win_screenpos()	eval.txt	/*win_screenpos()*
-win_splitmove()	eval.txt	/*win_splitmove()*
-winbufnr()	eval.txt	/*winbufnr()*
-wincol()	eval.txt	/*wincol()*
+win_execute()	builtin.txt	/*win_execute()*
+win_findbuf()	builtin.txt	/*win_findbuf()*
+win_getid()	builtin.txt	/*win_getid()*
+win_gettype()	builtin.txt	/*win_gettype()*
+win_gotoid()	builtin.txt	/*win_gotoid()*
+win_id2tabwin()	builtin.txt	/*win_id2tabwin()*
+win_id2win()	builtin.txt	/*win_id2win()*
+win_screenpos()	builtin.txt	/*win_screenpos()*
+win_splitmove()	builtin.txt	/*win_splitmove()*
+winbufnr()	builtin.txt	/*winbufnr()*
+wincol()	builtin.txt	/*wincol()*
 window	windows.txt	/*window*
 window-ID	windows.txt	/*window-ID*
 window-contents	intro.txt	/*window-contents*
@@ -10437,20 +10447,20 @@ windows.txt	windows.txt	/*windows.txt*
 windows95	os_win32.txt	/*windows95*
 windows98	os_win32.txt	/*windows98*
 windowsme	os_win32.txt	/*windowsme*
-windowsversion()	eval.txt	/*windowsversion()*
-winheight()	eval.txt	/*winheight()*
+windowsversion()	builtin.txt	/*windowsversion()*
+winheight()	builtin.txt	/*winheight()*
 winid	windows.txt	/*winid*
-winlayout()	eval.txt	/*winlayout()*
-winline()	eval.txt	/*winline()*
-winnr()	eval.txt	/*winnr()*
-winrestcmd()	eval.txt	/*winrestcmd()*
-winrestview()	eval.txt	/*winrestview()*
-winsaveview()	eval.txt	/*winsaveview()*
-winwidth()	eval.txt	/*winwidth()*
+winlayout()	builtin.txt	/*winlayout()*
+winline()	builtin.txt	/*winline()*
+winnr()	builtin.txt	/*winnr()*
+winrestcmd()	builtin.txt	/*winrestcmd()*
+winrestview()	builtin.txt	/*winrestview()*
+winsaveview()	builtin.txt	/*winsaveview()*
+winwidth()	builtin.txt	/*winwidth()*
 word	motion.txt	/*word*
 word-count	editing.txt	/*word-count*
 word-motions	motion.txt	/*word-motions*
-wordcount()	eval.txt	/*wordcount()*
+wordcount()	builtin.txt	/*wordcount()*
 workbench	starting.txt	/*workbench*
 workshop	workshop.txt	/*workshop*
 workshop-support	workshop.txt	/*workshop-support*
@@ -10467,7 +10477,7 @@ write-plugin	usr_41.txt	/*write-plugin*
 write-plugin-quickload	usr_41.txt	/*write-plugin-quickload*
 write-quit	editing.txt	/*write-quit*
 write-readonly	editing.txt	/*write-readonly*
-writefile()	eval.txt	/*writefile()*
+writefile()	builtin.txt	/*writefile()*
 writing	editing.txt	/*writing*
 www	intro.txt	/*www*
 x	change.txt	/*x*
@@ -10485,7 +10495,7 @@ xiterm	syntax.txt	/*xiterm*
 xml-folding	syntax.txt	/*xml-folding*
 xml-omni-datafile	insert.txt	/*xml-omni-datafile*
 xml.vim	syntax.txt	/*xml.vim*
-xor()	eval.txt	/*xor()*
+xor()	builtin.txt	/*xor()*
 xpm.vim	syntax.txt	/*xpm.vim*
 xterm-8-bit	term.txt	/*xterm-8-bit*
 xterm-8bit	term.txt	/*xterm-8bit*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2021 Dec 24
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,37 +38,17 @@ browser use: https://github.com/vim/vim/
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-type of v: vars should be more specific
-    v:completed_item  is dict<string>, not dict<any>
-
-E1135 is used twice
-
-"z=" in German can take a very long time, CTRL-C should interrupt it.
-
-Vim9 - Make everything work:
-- 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)
-    Same for other functions, such as searchpair().
-- 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.
-- Unexpected error message when using "var x: any | x.key = 9", because "x" is
-  given the type number.  Can we use VAR_ANY?
-- Check performance with callgrind and kcachegrind.
-
 Once Vim9 is stable:
 - Add the "vim9script" feature, can use has('vim9script')
+    Remove TODO in vim9.txt
 - Change the help to prefer Vim9 syntax where appropriate
+- In the generic eval docs, point out the Vim9 syntax where it differs.
 - Add all the error numbers in a good place in documentation.
-- In the generic eval docs, point out the Vim9 syntax where it differs.
 - Use Vim9 for runtime files.
     PR #7497 for autoload/ccomplete.vim
 
 Further Vim9 improvements, possibly after launch:
+- Check performance with callgrind and kcachegrind.
 - better implementation for partial and tests for that.
 - Compile options that are an expression, e.g. "expr:" in 'spellsuggest',
   'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
@@ -78,10 +58,9 @@ Further Vim9 improvements, possibly afte
   evaluation.
   Use the location where the option was set for deciding whether it's to be
   evaluated in Vim9 script context.
-- Handle command that is only a range more efficient than calling ISN_EXEC
 - implement :type, "import type"
-- implement enum,  "import enum".
-- implement class and interface: See |vim9-classes|
+- 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.
 - Inline call to map() and filter(), better type checking.
@@ -253,8 +232,6 @@ Idea: when typing ":e /some/dir/" and "d
 initialization to figure out the default value from 'shell'.  Add a test for
 this.
 
-Patch to add :argdedupe. (Nir Lichtman, #6235)
-
 MS-Windows: did path modifier :p:8 stop working?  #8600
 
 test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
--- 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 Dec 22
+" Last Change:	2021 Dec 27
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
--- a/src/po/tr.po
+++ b/src/po/tr.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Vim Turkish Localization Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-07-16 17:56+0300\n"
-"PO-Revision-Date: 2021-07-16 20:00+0300\n"
+"POT-Creation-Date: 2021-12-24 16:25+0300\n"
+"PO-Revision-Date: 2021-12-24 20:00+0300\n"
 "Last-Translator: Emir SARI <emir_sari@msn.com>\n"
 "Language-Team: Turkish <https://github.com/bitigchi/vim>\n"
 "Language: tr\n"
@@ -18,6 +18,32 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "ERROR: "
+msgstr "HATA: "
+
+#, c-format
+msgid ""
+"\n"
+"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
+msgstr ""
+"\n"
+"[bayt] %lu-%lu toplam ayrılan/boşaltılan, %lu kullanımda, %lu tavan nok.\n"
+
+#, c-format
+msgid ""
+"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
+"\n"
+msgstr ""
+"[çağrılar] %lu toplam re/malloc()'lar, %lu toplam free()'ler\n"
+"\n"
+
+msgid "E341: Internal error: lalloc(0, )"
+msgstr "E341: İç hata: lalloc(0, )"
+
+#, c-format
+msgid "E342: Out of memory!  (allocating %lu bytes)"
+msgstr "E342: Yetersiz bellek! (%lu bayt ayrılıyor)"
+
 msgid "E163: There is only one file to edit"
 msgstr "E163: Düzenlenecek yalnızca bir dosya var"
 
@@ -76,8 +102,9 @@ msgstr "E680: <buffer=%d>: Geçersiz arabellek numarası"
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: Otokomutlar TÜM olaylar için çalıştırılamıyor"
 
-msgid "No matching autocommands"
-msgstr "Eşleşen otokomut yok"
+#, c-format
+msgid "No matching autocommands: %s"
+msgstr "Eşleşen otokomut yok: %s"
 
 msgid "E218: autocommand nesting too deep"
 msgstr "E218: Çok fazla iç içe geçmiş otokomut"
@@ -97,6 +124,12 @@ msgstr "%s otokomutu"
 msgid "E972: Blob value does not have the right number of bytes"
 msgstr "E972: İkili geniş nesne değeri doğru bayt sayısına sahip değil"
 
+msgid "add() argument"
+msgstr "add() argümanı"
+
+msgid "insert() argument"
+msgstr "insert() argümanı"
+
 msgid "E831: bf_key_init() called with empty password"
 msgstr "E831: bf_key_init() boş bir şifre ile çağrıldı"
 
@@ -121,12 +154,6 @@ msgstr "[Hızlı Düzelt Listesi]"
 msgid "E855: Autocommands caused command to abort"
 msgstr "E855: Otokomutlar komutun durmasına neden oldu"
 
-msgid "E82: Cannot allocate any buffer, exiting..."
-msgstr "E82: Arabellek ayrılamadı, çıkılıyor..."
-
-msgid "E83: Cannot allocate buffer, using other one..."
-msgstr "E83: Arabellek ayrılamadı, başka bir tane kullanılıyor..."
-
 msgid "E931: Buffer cannot be registered"
 msgstr "E931: Arabellek kaydedilemedi"
 
@@ -134,27 +161,6 @@ msgstr "E931: Arabellek kaydedilemedi"
 msgid "E937: Attempt to delete a buffer that is in use: %s"
 msgstr "E937: Kullanımda olan bir arabellek silinmeye çalışılıyor: %s"
 
-msgid "E90: Cannot unload last buffer"
-msgstr "E90: Son arabellek bellekten kaldırılamıyor"
-
-msgid "E84: No modified buffer found"
-msgstr "E84: Değiştirilmiş bir arabellek bulunamadı"
-
-msgid "E85: There is no listed buffer"
-msgstr "E85: Listelenmiş bir arabellek yok"
-
-msgid "E87: Cannot go beyond last buffer"
-msgstr "E87: Son arabellekten öteye gidilemez"
-
-msgid "E88: Cannot go before first buffer"
-msgstr "E88: İlk arabellekten öncesine gidilemez"
-
-#, c-format
-msgid "E89: No write since last change for buffer %d (add ! to override)"
-msgstr ""
-"E89: %d numaralı arabellek son değişiklikten sonra yazılmadı (geçersiz "
-"kılmak için ! ekleyin)"
-
 msgid "E515: No buffers were unloaded"
 msgstr "E515: Hiçbir arabellek bellekten kaldırılmadı"
 
@@ -185,38 +191,16 @@ msgstr[1] "%d arabellek yok edildi"
 msgid "E948: Job still running (add ! to end the job)"
 msgstr "E948: İş hâlâ sürüyor (bitirmek için ! ekleyin)"
 
-msgid "E37: No write since last change (add ! to override)"
-msgstr ""
-"E37: Son değişiklikten sonra yazılmadı (geçersiz kılmak için ! ekleyin)"
-
 msgid "E948: Job still running"
 msgstr "E948: İş hâlâ sürüyor"
 
-msgid "E37: No write since last change"
-msgstr "E37: Son değişiklikten sonra yazılmadı"
-
 msgid "W14: Warning: List of file names overflow"
 msgstr "W14: Uyarı: Dosya adları taşımı"
 
 #, c-format
-msgid "E92: Buffer %d not found"
-msgstr "E92: %d numaralı arabellek bulunamadı"
-
-#, c-format
-msgid "E93: More than one match for %s"
-msgstr "E93: %s için birden çok eşleşme"
-
-#, c-format
-msgid "E94: No matching buffer for %s"
-msgstr "E94: %s için eşleşen arabellek yok"
-
-#, c-format
 msgid "line %ld"
 msgstr "%ld. satır"
 
-msgid "E95: Buffer with this name already exists"
-msgstr "E95: Aynı adda bir arabellek hâlihazırda var"
-
 msgid " [Modified]"
 msgstr " [Değiştirildi]"
 
@@ -514,10 +498,9 @@ msgid "Warning: Using a weak encryption 
 msgstr ""
 "Uyarı: Zayıf bir şifreleme yöntemi kullanılıyor; bilgi için: :help 'cm'"
 
-msgid ""
-"Note: Encryption of swapfile not supported, disabling swap- and undofile"
-msgstr "Takas dosyası şifrelemesi desteklenmiyor, takas ve geri al dosyası "
-"devre dışı bırakılıyor"
+msgid "Note: Encryption of swapfile not supported, disabling swap file"
+msgstr "Not: Takas dosyası şifrelenmesi desteklenmiyor, takas dosyası devre "
+"dışı bırakılacak"
 
 msgid "Enter encryption key: "
 msgstr "Şifreleme anahtarı girin: "
@@ -585,19 +568,12 @@ msgid "E737: Key already exists: %s"
 msgstr "E737: Anahtar hâlihazırda var: %s"
 
 #, c-format
-msgid "E96: Cannot diff more than %d buffers"
-msgstr "E96: %d arabellekten fazlasında karşılaştırma yapılamıyor"
-
-#, c-format
 msgid "Not enough memory to use internal diff for buffer \"%s\""
 msgstr "\"%s\" arabelleği için karşılaştırma yapacak yeterli bellek yok"
 
 msgid "E810: Cannot read or write temp files"
 msgstr "E810: Geçici dosyalar okunamıyor veya yazılamıyor"
 
-msgid "E97: Cannot create diffs"
-msgstr "E97: Karşılaştırma yapılamıyor"
-
 msgid "E960: Problem creating the internal diff"
 msgstr "E960: Karşılaştırma hazırlanırken sorun"
 
@@ -607,41 +583,16 @@ msgstr "Yama dosyası"
 msgid "E816: Cannot read patch output"
 msgstr "E816: Yama çıktısı okunamıyor"
 
-msgid "E98: Cannot read diff output"
-msgstr "E98: Karşılaştırma çıktısı okunamıyor"
-
 msgid "E959: Invalid diff format."
 msgstr "E959: Geçersiz karşılaştırma biçimi"
 
-msgid "E99: Current buffer is not in diff mode"
-msgstr "E99: Şu anki arabellek karşılaştırma kipinde değil"
-
 msgid "E793: No other buffer in diff mode is modifiable"
 msgstr ""
 "E793: Karşılaştırma kipindeki başka hiçbir arabellek değiştirilebilir değil"
 
-msgid "E100: No other buffer in diff mode"
-msgstr "E100: Karşılaştırma kipinde başka hiçbir arabellek yok"
-
-msgid "E101: More than two buffers in diff mode, don't know which one to use"
-msgstr ""
-"E101: Karşılaştırma kipinde ikiden fazla arabellek var, hangisinin "
-"kullanılacağı belli değil"
-
-#, c-format
-msgid "E102: Can't find buffer \"%s\""
-msgstr "E102: Arabellek \"%s\" bulunamıyor"
-
-#, c-format
-msgid "E103: Buffer \"%s\" is not in diff mode"
-msgstr "E103: Arabellek \"%s\" karşılaştırma kipinde değil"
-
 msgid "E787: Buffer changed unexpectedly"
 msgstr "E787: Arabellek beklenmeyen bir biçimde değiştirildi"
 
-msgid "E104: Escape not allowed in digraph"
-msgstr "E104: Kaçan, ikili harflerde kullanılamaz"
-
 msgid "Custom"
 msgstr "Özel"
 
@@ -720,9 +671,6 @@ msgstr "Bopomofo"
 msgid "E544: Keymap file not found"
 msgstr "E544: Düğme eşlem dosyası bulunamadı"
 
-msgid "E105: Using :loadkeymap not in a sourced file"
-msgstr "E105: :loadkeymap kaynak alınmayan bir dosyada kullanılıyor"
-
 msgid "E791: Empty keymap entry"
 msgstr "E791: Boş düğme eşlem girdisi"
 
@@ -745,9 +693,6 @@ msgstr "E996: Bir liste veya sözlük kilitlenemiyor"
 msgid "E260: Missing name after ->"
 msgstr "E260: -> sonrası ad eksik"
 
-msgid "E695: Cannot index a Funcref"
-msgstr "E695: Bir Funcref dizinlenemiyor"
-
 msgid "Not enough memory to set references, garbage collection aborted!"
 msgstr "Referansları ayarlamak için yetersiz bellek, atık toplama durduruldu"
 
@@ -849,10 +794,6 @@ msgstr "E996: Ortam değişkeni kilitlenemiyor"
 msgid "E996: Cannot lock a register"
 msgstr "E996: Yazmaç kilitlenemiyor"
 
-#, c-format
-msgid "E108: No such variable: \"%s\""
-msgstr "E108: Böyle bir değişken yok: \"%s\""
-
 msgid "E743: variable nested too deep for (un)lock"
 msgstr "E743: Değişken kilitlenemez/kilidi açılamaz, çok iç içe geçmiş"
 
@@ -861,10 +802,6 @@ msgid "E963: setting %s to value with wr
 msgstr "E963: %s yanlış türe sahip değere ayarlanıyor"
 
 #, c-format
-msgid "E795: Cannot delete variable %s"
-msgstr "E795: %s değişkeni silinemiyor"
-
-#, c-format
 msgid "E704: Funcref variable name must start with a capital: %s"
 msgstr "E704: Funcref değişkeni BÜYÜK harf ile başlamalıdır: %s"
 
@@ -872,17 +809,6 @@ msgstr "E704: Funcref değişkeni BÜYÜK harf ile başlamalıdır: %s"
 msgid "E705: Variable name conflicts with existing function: %s"
 msgstr "E705: Değişken adı mevcut işlevle çakışıyor: %s"
 
-#, c-format
-msgid "E741: Value is locked: %s"
-msgstr "E741: Değer kilitli: %s"
-
-msgid "Unknown"
-msgstr "Bilinmiyor"
-
-#, c-format
-msgid "E742: Cannot change value of %s"
-msgstr "E742: %s değeri değiştirilemiyor"
-
 msgid "E921: Invalid callback argument"
 msgstr "E921: Geçersiz geri çağırma argümanı"
 
@@ -1087,16 +1013,16 @@ msgstr "Çalıştırılıyor: %s"
 msgid "E169: Command too recursive"
 msgstr "E169: Komut çok özyineli"
 
-#, c-format
-msgid "E605: Exception not caught: %s"
-msgstr "E605: Kural dışı durum yakalanmadı: %s"
-
 msgid "End of sourced file"
 msgstr "Kaynak alınan dosyanın sonu"
 
 msgid "End of function"
 msgstr "İşlevin sonu"
 
+#, c-format
+msgid "E605: Exception not caught: %s"
+msgstr "E605: Kural dışı durum yakalanmadı: %s"
+
 msgid "E492: Not an editor command"
 msgstr "E492: Bir düzenleyici komutu değil"
 
@@ -1254,9 +1180,6 @@ msgstr "E500: Boş bir satır olarak değer biçer"
 msgid "Untitled"
 msgstr "Adsız"
 
-msgid "E196: No digraphs in this version"
-msgstr "E196: Bu sürümde ikili harfler bulunmamaktadır"
-
 msgid "E608: Cannot :throw exceptions with 'Vim' prefix"
 msgstr "E608: 'Vim' öneki ile kural dışı durumlar :throw edilemez"
 
@@ -1965,13 +1888,13 @@ msgid "E621: \"%s\" resource file has wr
 msgstr "E621: \"%s\" kaynak dosyası sürümü hatalı"
 
 msgid "E673: Incompatible multi-byte encoding and character set."
-msgstr "E673: Uyumsuz çoklu bit kodlaması ve karakter seti."
+msgstr "E673: Uyumsuz çoklu bayt kodlaması ve karakter seti."
 
 msgid "E674: printmbcharset cannot be empty with multi-byte encoding."
-msgstr "E674: printmbcharset çoklu bit kodlamada boş olamaz"
+msgstr "E674: printmbcharset çoklu bayt kodlamada boş olamaz"
 
 msgid "E675: No default font specified for multi-byte printing."
-msgstr "E675: Çoklu bit yazdırma için öntanımlı yazıtipi ayarlanmamış."
+msgstr "E675: Çoklu bayt yazdırma için öntanımlı yazıtipi ayarlanmamış."
 
 msgid "E324: Can't open PostScript output file"
 msgstr "E324: PostScript çıktı dosyası açılamıyor"
@@ -2040,39 +1963,15 @@ msgstr "E154: Şu dosyada yinelenen \"%s\" etiketi: %s/%s"
 
 #, c-format
 msgid "E150: Not a directory: %s"
-msgstr "E150: %s bir dizin değil"
+msgstr "E150: %s, bir dizin değil"
 
 msgid "E679: recursive loop loading syncolor.vim"
 msgstr "E679: syncolor.vim yüklenirken özyineli döngü"
 
-#, c-format
-msgid "E411: highlight group not found: %s"
-msgstr "E411: Vurgulama grubu bulunamadı: %s"
-
-#, c-format
-msgid "E412: Not enough arguments: \":highlight link %s\""
-msgstr "E412: Yetersiz sayıda argüman: \":highlight link %s\""
-
-#, c-format
-msgid "E413: Too many arguments: \":highlight link %s\""
-msgstr "E413: Çok fazla argüman: \":highlight link %s\""
-
 msgid "E414: group has settings, highlight link ignored"
 msgstr "E414: Grup ayarları mevcut, vurgulama bağlantısı yok sayıldı"
 
 #, c-format
-msgid "E415: unexpected equal sign: %s"
-msgstr "E415: Beklenmedik eşittir imi: %s"
-
-#, c-format
-msgid "E416: missing equal sign: %s"
-msgstr "E416: Eksik eşittir imi: %s"
-
-#, c-format
-msgid "E417: missing argument: %s"
-msgstr "E417: Argüman eksik: %s"
-
-#, c-format
 msgid "E418: Illegal value: %s"
 msgstr "E418: İzin verilmeyen değer: %s"
 
@@ -2094,6 +1993,30 @@ msgid "E422: terminal code too long: %s"
 msgstr "E422: Uçbirim kodu çok uzun: %s"
 
 #, c-format
+msgid "E411: highlight group not found: %s"
+msgstr "E411: Vurgulama grubu bulunamadı: %s"
+
+#, c-format
+msgid "E412: Not enough arguments: \":highlight link %s\""
+msgstr "E412: Yetersiz sayıda argüman: \":highlight link %s\""
+
+#, c-format
+msgid "E413: Too many arguments: \":highlight link %s\""
+msgstr "E413: Çok fazla argüman: \":highlight link %s\""
+
+#, c-format
+msgid "E415: unexpected equal sign: %s"
+msgstr "E415: Beklenmedik eşittir imi: %s"
+
+#, c-format
+msgid "E416: missing equal sign: %s"
+msgstr "E416: Eksik eşittir imi: %s"
+
+#, c-format
+msgid "E417: missing argument: %s"
+msgstr "E417: Argüman eksik: %s"
+
+#, c-format
 msgid "E423: Illegal argument: %s"
 msgstr "E423: İzin verilmeyen argüman: %s"
 
@@ -2144,12 +2067,9 @@ msgstr "E257: cstag: Etiket bulunamadı"
 msgid "E563: stat(%s) error: %d"
 msgstr "E563: stat(%s) hatası: %d"
 
-msgid "E563: stat error"
-msgstr "E563: stat hatası"
-
 #, c-format
 msgid "E564: %s is not a directory or a valid cscope database"
-msgstr "E564: %s bir dizin veya geçerli bir cscope veritabanı değil"
+msgstr "E564: %s, bir dizin veya geçerli bir cscope veritabanı değil"
 
 #, c-format
 msgid "Added cscope database %s"
@@ -2612,18 +2532,18 @@ msgstr "flatten() argümanı"
 msgid "E696: Missing comma in List: %s"
 msgstr "E696: Listede virgül eksik: %s"
 
+msgid "E702: Sort compare function failed"
+msgstr "E702: Sıralayıp karşılaştırma işlevi başarısız oldu"
+
+msgid "E882: Uniq compare function failed"
+msgstr "E882: Benzersizlik karşılaştırma işlevi başarısız oldu"
+
 msgid "sort() argument"
 msgstr "sort() argümanı"
 
 msgid "uniq() argument"
 msgstr "uniq() argümanı"
 
-msgid "E702: Sort compare function failed"
-msgstr "E702: Sıralayıp karşılaştırma işlevi başarısız oldu"
-
-msgid "E882: Uniq compare function failed"
-msgstr "E882: Benzersizlik karşılaştırma işlevi başarısız oldu"
-
 msgid "map() argument"
 msgstr "map() argümanı"
 
@@ -2633,15 +2553,9 @@ msgstr "mapnew() argümanı"
 msgid "filter() argument"
 msgstr "filter() argümanı"
 
-msgid "add() argument"
-msgstr "add() argümanı"
-
 msgid "extendnew() argument"
 msgstr "extendnew() argümanı"
 
-msgid "insert() argument"
-msgstr "insert() argümanı"
-
 msgid "remove() argument"
 msgstr "remove() argümanı"
 
@@ -3683,7 +3597,7 @@ msgid "E354: Invalid register name: '%s'
 msgstr "E354: Geçersiz yazmaç adı: '%s'"
 
 msgid "Messages maintainer: Bram Moolenaar <Bram@vim.org>"
-msgstr "Türkçeye çeviren: Emir SARI <bitigchi@me.com>"
+msgstr "Türkçeye çeviren: Emir SARI <emir_sari@msn.com>"
 
 msgid "Interrupt: "
 msgstr "Yarıda kes: "
@@ -3691,6 +3605,9 @@ msgstr "Yarıda kes: "
 msgid "Press ENTER or type command to continue"
 msgstr "Sürdürmek için ENTER'a basın veya komut girin"
 
+msgid "Unknown"
+msgstr "Bilinmiyor"
+
 #, c-format
 msgid "%s line %ld"
 msgstr "%s %ld. satır"
@@ -3724,15 +3641,6 @@ msgstr ""
 "&Tümünü At\n"
 "İ&ptal"
 
-msgid "E766: Insufficient arguments for printf()"
-msgstr "E766: printf() için yetersiz argüman"
-
-msgid "E807: Expected Float argument for printf()"
-msgstr "E807: printf() için kayan noktalı değer türünde argüman bekleniyordu"
-
-msgid "E767: Too many arguments to printf()"
-msgstr "E767: printf() için çok fazla argüman"
-
 msgid "Type number and <Enter> or click with the mouse (q or empty cancels): "
 msgstr ""
 "Sayı girip <Enter>'a veya fare düğmesine basın (q veya boş iptal eder): "
@@ -3761,32 +3669,6 @@ msgstr "Bip!"
 msgid "E677: Error writing temp file"
 msgstr "E677: Geçici dosya yazılırken hata"
 
-msgid "ERROR: "
-msgstr "HATA: "
-
-#, c-format
-msgid ""
-"\n"
-"[bytes] total alloc-freed %lu-%lu, in use %lu, peak use %lu\n"
-msgstr ""
-"\n"
-"[bitler] toplam ayrılan/boşaltılan %lu-%lu, kullanımda %lu, doruk nokt. %lu\n"
-
-#, c-format
-msgid ""
-"[calls] total re/malloc()'s %lu, total free()'s %lu\n"
-"\n"
-msgstr ""
-"[çağrılar] toplam re/malloc()'lar %lu, toplam free()'ler %lu\n"
-"\n"
-
-msgid "E341: Internal error: lalloc(0, )"
-msgstr "E341: İç hata: lalloc(0, )"
-
-#, c-format
-msgid "E342: Out of memory!  (allocating %lu bytes)"
-msgstr "E342: Yetersiz bellek! (%lu bit ayrılıyor)"
-
 #, c-format
 msgid "Calling shell to execute: \"%s\""
 msgstr "Çalıştırmak için çağrılan kabuk: \"%s\""
@@ -3886,26 +3768,26 @@ msgstr "%ld Sütun; "
 
 #, c-format
 msgid "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Bytes"
-msgstr "%s%ld/%ld satır; %lld/%lld sözcük; %lld/%lld bit seçildi"
+msgstr "%s%ld/%ld satır; %lld/%lld sözcük; %lld/%lld bayt seçildi"
 
 #, c-format
 msgid ""
 "Selected %s%ld of %ld Lines; %lld of %lld Words; %lld of %lld Chars; %lld of "
 "%lld Bytes"
 msgstr ""
-"%s%ld/%ld satır; %lld/%lld sözcük; %lld/%lld karakter; %lld/%lld bit seçildi"
+"%s%ld/%ld satır; %lld/%lld sözcük; %lld/%lld karakter; %lld/%lld bayt seçildi"
 
 #, c-format
 msgid "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Byte %lld of %lld"
-msgstr "Sütun %s/%s; Satır %ld/%ld; Sözcük %lld/%lld; Bit %lld/%lld"
+msgstr "%s/%s sütun; %ld/%ld satır; %lld/%lld sözcük; %lld/%lld bayt"
 
 #, c-format
 msgid ""
 "Col %s of %s; Line %ld of %ld; Word %lld of %lld; Char %lld of %lld; Byte "
 "%lld of %lld"
 msgstr ""
-"Sütun %s/%s; Satır %ld/%ld; Sözcük %lld/%lld; Karakter %lld/%lld; Bit %lld/"
-"%lld"
+"%s/%s sütun; %ld/%ld satır; %lld/%lld sözcük; %lld/%lld karakter; %lld/%lld "
+"bayt"
 
 #, c-format
 msgid "(+%lld for BOM)"
@@ -4023,12 +3905,6 @@ msgstr "E531: Grafik arabirimi başlatmak için \":gui\" yazın"
 msgid "E589: 'backupext' and 'patchmode' are equal"
 msgstr "E589: 'backupext' ve 'patchmode' birbirine eşit"
 
-msgid "E835: Conflicts with value of 'fillchars'"
-msgstr "E835: 'fillchars' değeriyle çakışmalar var"
-
-msgid "E834: Conflicts with value of 'listchars'"
-msgstr "E834: 'listchars' değeriyle çakışmalar var"
-
 msgid "E617: Cannot be changed in the GTK+ 2 GUI"
 msgstr "E617: GTK+ 2 grafik arabiriminde değiştirilemez"
 
@@ -4427,32 +4303,6 @@ msgstr "E944: Karakter sınıfında geriye dönük erim"
 msgid "E945: Range too large in character class"
 msgstr "E945: Karakter sınıfında erim çok büyük"
 
-#, c-format
-msgid "E53: Unmatched %s%%("
-msgstr "E53: Eşleşmemiş %s%%("
-
-#, c-format
-msgid "E54: Unmatched %s("
-msgstr "E54: Eşleşmemiş %s("
-
-#, c-format
-msgid "E55: Unmatched %s)"
-msgstr "E55: Eşleşmemiş %s)"
-
-msgid "E66: \\z( not allowed here"
-msgstr "E66: \\z('ye burada izin verilmiyor"
-
-msgid "E67: \\z1 - \\z9 not allowed here"
-msgstr "E67: \\z1 - \\z9'a burada izin verilmiyor"
-
-#, c-format
-msgid "E69: Missing ] after %s%%["
-msgstr "E69: %s%%[ sonrasında ] eksik"
-
-#, c-format
-msgid "E70: Empty %s%%[]"
-msgstr "E70: Boş %s%%[]"
-
 msgid "E956: Cannot use pattern recursively"
 msgstr "E956: Dizgi özyineli olarak kullanılamaz"
 
@@ -4478,16 +4328,6 @@ msgstr ""
 msgid "Switching to backtracking RE engine for pattern: "
 msgstr "Şu dizgi için düzenli ifade iz sürme motoruna geçiliyor: "
 
-msgid "E65: Illegal back reference"
-msgstr "E65: Geçersiz dönüş başvurusu"
-
-msgid "E63: invalid use of \\_"
-msgstr "E63: Geçersiz kullanım: \\_"
-
-#, c-format
-msgid "E64: %s%c follows nothing"
-msgstr "E64: %s%c tek başına kullanılıyor"
-
 msgid "E68: Invalid character after \\z"
 msgstr "E68: \\z sonrası geçersiz karakter"
 
@@ -4495,36 +4335,6 @@ msgstr "E68: \\z sonrası geçersiz karakter"
 msgid "E678: Invalid character after %s%%[dxouU]"
 msgstr "E678: %s%%[dxouU] sonrası geçersiz karakter"
 
-#, c-format
-msgid "E71: Invalid character after %s%%"
-msgstr "E71: %s%% sonrası geçersiz karakter"
-
-#, c-format
-msgid "E59: invalid character after %s@"
-msgstr "E59: %s@ sonrası geçersiz karakter"
-
-#, c-format
-msgid "E60: Too many complex %s{...}s"
-msgstr "E60: Çok fazla karmaşık %s{...}(lar)"
-
-#, c-format
-msgid "E61: Nested %s*"
-msgstr "E61: İç içe geçmiş %s*"
-
-#, c-format
-msgid "E62: Nested %s%c"
-msgstr "E62: İç içe geçmiş %s%c"
-
-msgid "E50: Too many \\z("
-msgstr "E50: Çok fazla \\z("
-
-#, c-format
-msgid "E51: Too many %s("
-msgstr "E51: Çok fazla %s("
-
-msgid "E52: Unmatched \\z("
-msgstr "E52: Eşleşmemiş \\z("
-
 msgid "E339: Pattern too long"
 msgstr "E339: Dizgi çok uzun"
 
@@ -4600,10 +4410,6 @@ msgid "E748: No previously used register
 msgstr "E748: Daha önce kullanılan bir yazmaç yok"
 
 #, c-format
-msgid "freeing %ld lines"
-msgstr "%ld satırlık yer açılıyor"
-
-#, c-format
 msgid " into \"%c"
 msgstr " \"%c"
 
@@ -5196,7 +5002,7 @@ msgstr "Öneriler dosyası %s yazılıyor..."
 
 #, c-format
 msgid "Estimated runtime memory use: %d bytes"
-msgstr "Tahmini çalıştırılan bellek kullanımı: %d bit"
+msgstr "Tahmini çalışma bellek kullanımı: %d bayt"
 
 msgid "E751: Output file name must not have region name"
 msgstr "E751: Çıktı dosyası bir bölge adı içermemelidir"
@@ -5255,6 +5061,15 @@ msgstr "\"%.*s\" şuna değiştirilecek:"
 msgid " < \"%.*s\""
 msgstr " < \"%.*s\""
 
+msgid "E766: Insufficient arguments for printf()"
+msgstr "E766: printf() için yetersiz argüman"
+
+msgid "E807: Expected Float argument for printf()"
+msgstr "E807: printf() için kayan noktalı değer türünde argüman bekleniyordu"
+
+msgid "E767: Too many arguments to printf()"
+msgstr "E767: printf() için çok fazla argüman"
+
 #, c-format
 msgid "E390: Illegal argument: %s"
 msgstr "E390: İzin verilmeyen argüman: %s"
@@ -5512,7 +5327,7 @@ msgstr "E431: Etiket dosyası \"%s\" içinde biçim hatası"
 
 #, c-format
 msgid "Before byte %ld"
-msgstr "%ld bitinden önce"
+msgstr "%ld baytından önce"
 
 #, c-format
 msgid "E432: Tags file not sorted: %s"
@@ -5614,12 +5429,12 @@ msgstr "E964: Geçersiz sütun numarası: %ld"
 msgid "E966: Invalid line number: %ld"
 msgstr "E966: Geçersiz satır numarası: %ld"
 
+msgid "E275: Cannot add text property to unloaded buffer"
+msgstr "E275: Bellekten kaldırılmış arabelleğe metin özelliği eklenemiyor"
+
 msgid "E965: missing property type name"
 msgstr "E965: Özellik tür adı eksik"
 
-msgid "E275: Cannot add text property to unloaded buffer"
-msgstr "E275: Bellekten kaldırılmış arabelleğe metin özelliği eklenemiyor"
-
 msgid "E967: text property info corrupted"
 msgstr "E967: Metin özellik bilgisi hasarlı"
 
@@ -5712,17 +5527,17 @@ msgstr "E731: Sözlük bir Dizi yerine kullanılıyor"
 msgid "E976: Using a Blob as a String"
 msgstr "E976: İkili Geniş Nesne bir Dizi yerine kullanılıyor"
 
-msgid "E977: Can only compare Blob with Blob"
-msgstr ""
-"E977: Bir ikili geniş öğe yalnızca kendinden bir başkası ile "
-"karşılaştırılabilir"
-
 msgid "E691: Can only compare List with List"
 msgstr "E691: Bir liste yalnızca başka bir liste ile karşılaştırılabilir"
 
 msgid "E692: Invalid operation for List"
 msgstr "E692: Geçersiz liste işlemi"
 
+msgid "E977: Can only compare Blob with Blob"
+msgstr ""
+"E977: Bir ikili geniş öğe yalnızca kendinden bir başkası ile "
+"karşılaştırılabilir"
+
 msgid "E735: Can only compare Dictionary with Dictionary"
 msgstr "E735: Bir sözlük yalnızca başka bir sözlük ile karşılaştırılabilir"
 
@@ -5732,22 +5547,10 @@ msgstr "E736: Geçersiz sözlük işlemi"
 msgid "E694: Invalid operation for Funcrefs"
 msgstr "E694: Geçersiz Funcref işlemi"
 
-#, c-format
-msgid "E112: Option name missing: %s"
-msgstr "E112: Seçenek adı eksik: %s"
-
 msgid "E973: Blob literal should have an even number of hex characters"
 msgstr ""
 "E973: İkili geniş nesne hazır bilgisi çift onalt. karakterlere iye olmalıdır"
 
-#, c-format
-msgid "E114: Missing quote: %s"
-msgstr "E114: Tırnak imi eksik: %s"
-
-#, c-format
-msgid "E115: Missing quote: %s"
-msgstr "E115: Tırnak imi eksik: %s"
-
 msgid "new shell started\n"
 msgstr "yeni kabuk başlatıldı\n"
 
@@ -5941,10 +5744,6 @@ msgid "E841: Reserved name, cannot be us
 msgstr "E841: Ayrılmış ad, kullanıcı tanımlı komut için kullanılamaz"
 
 #, c-format
-msgid "E184: No such user-defined command: %s"
-msgstr "E184: Böyle bir kullanıcı tanımlı komut yok: %s"
-
-#, c-format
 msgid "E122: Function %s already exists, add ! to replace it"
 msgstr "E122: %s işlevi hâlihazırda mevcut, değiştirmek için ! ekleyin"
 
@@ -5984,10 +5783,6 @@ msgstr "E451: } bekleniyordu: %s"
 msgid "E740: Too many arguments for function %s"
 msgstr "E740: %s işlevi için çok fazla argüman"
 
-#, c-format
-msgid "E116: Invalid arguments for function %s"
-msgstr "E116: %s işlevi için geçersiz argümanlar"
-
 msgid "E132: Function call depth is higher than 'maxfuncdepth'"
 msgstr "E132: İşlevin çağırdığı derinlik 'maxfuncdepth'ten daha yüksek"
 
@@ -6015,10 +5810,6 @@ msgid "E276: Cannot use function as a me
 msgstr "E276: İşlev bir yöntem olarak kullanılamaz: %s"
 
 #, c-format
-msgid "E120: Using <SID> not in a script context: %s"
-msgstr "E120: <SID> bir betik bağlamında kullanılmıyor: %s"
-
-#, c-format
 msgid "E725: Calling dict function without Dictionary: %s"
 msgstr "E725: dic işlevi bir sözlük olmadan çağrılıyor: %s"
 
@@ -6358,9 +6149,6 @@ msgstr "bilgi için             :help register<Enter>  "
 msgid "menu  Help->Sponsor/Register  for information    "
 msgstr "bilgi için             Yardım -> Sponsorluk/Kayıt"
 
-msgid "[end of lines]"
-msgstr "[satırların sonu]"
-
 msgid "global"
 msgstr "global"
 
@@ -6373,6 +6161,9 @@ msgstr "pencere"
 msgid "tab"
 msgstr "sekme"
 
+msgid "[end of lines]"
+msgstr "[satırların sonu]"
+
 msgid ""
 "\n"
 "# Buffer list:\n"
@@ -6523,7 +6314,7 @@ msgstr "E137: Viminfo dosyası yazılabilir değil: %s"
 
 #, c-format
 msgid "E929: Too many viminfo temp files, like %s!"
-msgstr "E929: Çok fazla viminfo geçici dosyası, örneğin %s!"
+msgstr "E929: Çok fazla viminfo geçici dosyası; örneğin %s!"
 
 #, c-format
 msgid "E138: Can't write viminfo file %s!"
@@ -6543,10 +6334,6 @@ msgstr "E195: viminfo dosyası okuma için açılamıyor"
 msgid "Already only one window"
 msgstr "Zaten tek pencere"
 
-#, c-format
-msgid "E92: Buffer %ld not found"
-msgstr "E92: Arabellek %ld bulunamadı"
-
 msgid "E441: There is no preview window"
 msgstr "E441: Önizleme penceresi yok"
 
@@ -6583,8 +6370,8 @@ msgstr ""
 "E299: Güvenli modül olmadan kum havuzu içinde Perl değerlendirmesine izin "
 "verilmiyor"
 
-msgid "Edit with &multiple Vims"
-msgstr "Birden &fazla Vim ile düzenle"
+msgid "Edit with Vim using &tabpages"
+msgstr "Vim'de &sekme sayfaları kullanarak düzenle"
 
 msgid "Edit with single &Vim"
 msgstr "Tek bir &Vim ile düzenle"
@@ -6610,9 +6397,6 @@ msgstr "İşlem oluşturulurken hata: gvim'in yol üzerinde olduğundan emin olun!"
 msgid "gvimext.dll error"
 msgstr "gvimext.dll hatası"
 
-msgid "Path length too long!"
-msgstr "Yol çok uzun!"
-
 msgid "E10: \\ should be followed by /, ? or &"
 msgstr "E10: \\ sonrasında /, ? veya & gelmeli"
 
@@ -6662,6 +6446,324 @@ msgstr "E23: Başka bir dosya yok"
 msgid "E24: No such abbreviation"
 msgstr "E24: Böyle bir kısaltma yok"
 
+msgid "E25: GUI cannot be used: Not enabled at compile time"
+msgstr "E25: Grafik arabirim kullanılamaz: Derlenirken etkinleştirilmemiş"
+
+msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
+msgstr "E26: İbranca kullanılamaz: Derlenirken etkinleştirilmemiş\n"
+
+msgid "E27: Farsi support has been removed\n"
+msgstr "E27: Farsça desteği kaldırıldı\n"
+
+#, c-format
+msgid "E28: No such highlight group name: %s"
+msgstr "E28: Böyle bir vurgulama grup adı yok: %s"
+
+msgid "E29: No inserted text yet"
+msgstr "E29: Henüz bir metin eklenmedi"
+
+msgid "E30: No previous command line"
+msgstr "E30: Öncesinde komut satırı yok"
+
+msgid "E31: No such mapping"
+msgstr "E31: Böyle bir eşlem yok"
+
+msgid "E32: No file name"
+msgstr "E32: Dosya adı yok"
+
+msgid "E33: No previous substitute regular expression"
+msgstr "E33: Öncesinde yerine geçen bir düzenli ifade yok"
+
+msgid "E34: No previous command"
+msgstr "E34: Öncesinde komut yok"
+
+msgid "E35: No previous regular expression"
+msgstr "E35: Öncesinde düzenli ifade yok"
+
+msgid "E36: Not enough room"
+msgstr "E36: Yeterli alan yok"
+
+msgid "E37: No write since last change"
+msgstr "E37: Son değişiklikten sonra yazılmadı"
+
+msgid "E37: No write since last change (add ! to override)"
+msgstr ""
+"E37: Son değişiklikten sonra yazılmadı (geçersiz kılmak için ! ekleyin)"
+
+msgid "E38: Null argument"
+msgstr "E38: Anlamsız argüman"
+
+msgid "E39: Number expected"
+msgstr "E39: Sayı bekleniyordu"
+
+#, c-format
+msgid "E40: Can't open errorfile %s"
+msgstr "E40: Hata dosyası %s açılamıyor"
+
+msgid "E41: Out of memory!"
+msgstr "E41: Bellek yetersiz!"
+
+msgid "E42: No Errors"
+msgstr "E42: Hata yok"
+
+msgid "E43: Damaged match string"
+msgstr "E43: Hasarlı eşleşme dizisi"
+
+msgid "E44: Corrupted regexp program"
+msgstr "E44: Bozulmuş regexp programı"
+
+msgid "E45: 'readonly' option is set (add ! to override)"
+msgstr "E45: 'readonly' seçeneği ayarlanmış (geçersiz kılmak için ! ekleyin)"
+
+msgid "E46: Cannot change read-only variable"
+msgstr "E46: Saltokunur değişken değiştirilemiyor"
+
+#, c-format
+msgid "E46: Cannot change read-only variable \"%s\""
+msgstr "E46: Saltokunur değişken \"%s\" değiştirilemiyor"
+
+msgid "E47: Error while reading errorfile"
+msgstr "E47: Hata dosyası okunurken hata"
+
+msgid "E48: Not allowed in sandbox"
+msgstr "E48: Kum havuzunda izin verilmiyor"
+
+msgid "E49: Invalid scroll size"
+msgstr "E49: Geçersiz kaydırma boyutu"
+
+msgid "E50: Too many \\z("
+msgstr "E50: Çok fazla \\z("
+
+#, c-format
+msgid "E51: Too many %s("
+msgstr "E51: Çok fazla %s("
+
+msgid "E52: Unmatched \\z("
+msgstr "E52: Eşleşmemiş \\z("
+
+#, c-format
+msgid "E53: Unmatched %s%%("
+msgstr "E53: Eşleşmemiş %s%%("
+
+#, c-format
+msgid "E54: Unmatched %s("
+msgstr "E54: Eşleşmemiş %s("
+
+#, c-format
+msgid "E55: Unmatched %s)"
+msgstr "E55: Eşleşmemiş %s)"
+
+#, c-format
+msgid "E59: invalid character after %s@"
+msgstr "E59: %s@ sonrası geçersiz karakter"
+
+#, c-format
+msgid "E60: Too many complex %s{...}s"
+msgstr "E60: Çok fazla karmaşık %s{...}(lar)"
+
+#, c-format
+msgid "E61: Nested %s*"
+msgstr "E61: İç içe geçmiş %s*"
+
+#, c-format
+msgid "E62: Nested %s%c"
+msgstr "E62: İç içe geçmiş %s%c"
+
+msgid "E63: invalid use of \\_"
+msgstr "E63: Geçersiz kullanım: \\_"
+
+#, c-format
+msgid "E64: %s%c follows nothing"
+msgstr "E64: %s%c tek başına kullanılıyor"
+
+msgid "E65: Illegal back reference"
+msgstr "E65: Geçersiz dönüş başvurusu"
+
+msgid "E66: \\z( not allowed here"
+msgstr "E66: \\z('ye burada izin verilmiyor"
+
+msgid "E67: \\z1 - \\z9 not allowed here"
+msgstr "E67: \\z1 - \\z9'a burada izin verilmiyor"
+
+#, c-format
+msgid "E69: Missing ] after %s%%["
+msgstr "E69: %s%%[ sonrasında ] eksik"
+
+#, c-format
+msgid "E70: Empty %s%%[]"
+msgstr "E70: Boş %s%%[]"
+
+#, c-format
+msgid "E71: Invalid character after %s%%"
+msgstr "E71: %s%% sonrası geçersiz karakter"
+
+msgid "E72: Close error on swap file"
+msgstr "E72: Takas dosyasında kapama hatası"
+
+msgid "E73: tag stack empty"
+msgstr "E73: Etiket yığını boş"
+
+msgid "E74: Command too complex"
+msgstr "E74: Komut çok karmaşık"
+
+msgid "E75: Name too long"
+msgstr "E75: Ad çok uzun"
+
+msgid "E76: Too many ["
+msgstr "E76: Çok fazla ["
+
+msgid "E77: Too many file names"
+msgstr "E77: Çok fazla dosya adı"
+
+msgid "E78: Unknown mark"
+msgstr "E78: Bilinmeyen im"
+
+msgid "E79: Cannot expand wildcards"
+msgstr "E79: Joker karakterleri genişletilemiyor"
+
+msgid "E80: Error while writing"
+msgstr "E80: Yazma sırasında hata"
+
+msgid "E81: Using <SID> not in a script context"
+msgstr "E81: <SID> bir betik bağlamında kullanılmıyor"
+
+msgid "E82: Cannot allocate any buffer, exiting..."
+msgstr "E82: Arabellek ayrılamadı, çıkılıyor..."
+
+msgid "E83: Cannot allocate buffer, using other one..."
+msgstr "E83: Arabellek ayrılamadı, başka bir tane kullanılıyor..."
+
+msgid "E84: No modified buffer found"
+msgstr "E84: Değiştirilmiş bir arabellek bulunamadı"
+
+msgid "E85: There is no listed buffer"
+msgstr "E85: Listelenmiş bir arabellek yok"
+
+#, c-format
+msgid "E86: Buffer %ld does not exist"
+msgstr "E86: Arabellek %ld mevcut değil"
+
+msgid "E87: Cannot go beyond last buffer"
+msgstr "E87: Son arabellekten öteye gidilemez"
+
+msgid "E88: Cannot go before first buffer"
+msgstr "E88: İlk arabellekten öncesine gidilemez"
+
+#, c-format
+msgid "E89: No write since last change for buffer %d (add ! to override)"
+msgstr ""
+"E89: %d numaralı arabellek son değişiklikten sonra yazılmadı (geçersiz "
+"kılmak için ! ekleyin)"
+
+msgid "E90: Cannot unload last buffer"
+msgstr "E90: Son arabellek bellekten kaldırılamıyor"
+
+msgid "E91: 'shell' option is empty"
+msgstr "E91: 'shell' seçeneği boş"
+
+#, c-format
+msgid "E92: Buffer %d not found"
+msgstr "E92: %d numaralı arabellek bulunamadı"
+
+#, c-format
+msgid "E93: More than one match for %s"
+msgstr "E93: %s için birden çok eşleşme"
+
+#, c-format
+msgid "E94: No matching buffer for %s"
+msgstr "E94: %s için eşleşen arabellek yok"
+
+msgid "E95: Buffer with this name already exists"
+msgstr "E95: Aynı adda bir arabellek hâlihazırda var"
+
+#, c-format
+msgid "E96: Cannot diff more than %d buffers"
+msgstr "E96: %d arabellekten fazlasında karşılaştırma yapılamıyor"
+
+msgid "E97: Cannot create diffs"
+msgstr "E97: Karşılaştırma yapılamıyor"
+
+msgid "E98: Cannot read diff output"
+msgstr "E98: Karşılaştırma çıktısı okunamıyor"
+
+msgid "E99: Current buffer is not in diff mode"
+msgstr "E99: Şu anki arabellek karşılaştırma kipinde değil"
+
+msgid "E100: No other buffer in diff mode"
+msgstr "E100: Karşılaştırma kipinde başka hiçbir arabellek yok"
+
+msgid "E101: More than two buffers in diff mode, don't know which one to use"
+msgstr ""
+"E101: Karşılaştırma kipinde ikiden fazla arabellek var, hangisinin "
+"kullanılacağı belli değil"
+
+#, c-format
+msgid "E102: Can't find buffer \"%s\""
+msgstr "E102: Arabellek \"%s\" bulunamıyor"
+
+#, c-format
+msgid "E103: Buffer \"%s\" is not in diff mode"
+msgstr "E103: Arabellek \"%s\" karşılaştırma kipinde değil"
+
+msgid "E104: Escape not allowed in digraph"
+msgstr "E104: Kaçan, ikili harflerde kullanılamaz"
+
+msgid "E105: Using :loadkeymap not in a sourced file"
+msgstr "E105: :loadkeymap kaynak alınmayan bir dosyada kullanılıyor"
+
+#, c-format
+msgid "E107: Missing parentheses: %s"
+msgstr "E107: Ayraç eksik: %s"
+
+#, c-format
+msgid "E108: No such variable: \"%s\""
+msgstr "E108: Böyle bir değişken yok: \"%s\""
+
+msgid "E109: Missing ':' after '?'"
+msgstr "E109: '?' sonrası ':' eksik"
+
+msgid "E110: Missing ')'"
+msgstr "E110: ')' eksik"
+
+msgid "E111: Missing ']'"
+msgstr "E111: ']' eksik"
+
+#, c-format
+msgid "E112: Option name missing: %s"
+msgstr "E112: Seçenek adı eksik: %s"
+
+#, c-format
+msgid "E113: Unknown option: %s"
+msgstr "E113: Bilinmeyen seçenek: %s"
+
+#, c-format
+msgid "E114: Missing double quote: %s"
+msgstr "E114: Çift tırnak eksik: %s"
+
+#, c-format
+msgid "E115: Missing single quote: %s"
+msgstr "E115: Tek tırnak eksik: %s"
+
+#, c-format
+msgid "E116: Invalid arguments for function %s"
+msgstr "E116: %s işlevi için geçersiz argümanlar"
+
+#, c-format
+msgid "E117: Unknown function: %s"
+msgstr "E117: Bilinmeyen işlev: %s"
+
+#, c-format
+msgid "E118: Too many arguments for function: %s"
+msgstr "E118: İşlev için çok fazla argüman: %s"
+
+#, c-format
+msgid "E119: Not enough arguments for function: %s"
+msgstr "E119: Şu işlev için yetersiz sayıda argüman: %s"
+
+#, c-format
+msgid "E120: Using <SID> not in a script context: %s"
+msgstr "E120: <SID> bir betik bağlamında kullanılmıyor: %s"
+
 #, c-format
 msgid "E121: Undefined variable: %s"
 msgstr "E121: Tanımlanmamış değişken: %s"
@@ -6670,6 +6772,17 @@ msgstr "E121: Tanımlanmamış değişken: %s"
 msgid "E121: Undefined variable: %c:%s"
 msgstr "E121: Tanımlanmamış değişken: %c:%s"
 
+#, c-format
+msgid "E184: No such user-defined command: %s"
+msgstr "E184: Böyle bir kullanıcı tanımlı komut yok: %s"
+
+msgid "E196: No digraphs in this version"
+msgstr "E196: Bu sürümde ikili harfler bulunmamaktadır"
+
+#, c-format
+msgid "E254: Cannot allocate color %s"
+msgstr "E254: %s rengi ayrılamıyor"
+
 msgid "E464: Ambiguous use of user-defined command"
 msgstr "E464: Kullanıcı tanımlı komutun belirsiz kullanımı"
 
@@ -6680,6 +6793,9 @@ msgstr "E476: Geçersiz komut"
 msgid "E476: Invalid command: %s"
 msgstr "E476: Geçersiz komut: %s"
 
+msgid "E695: Cannot index a Funcref"
+msgstr "E695: Bir Funcref dizinlenemiyor"
+
 msgid "E710: List value has more items than targets"
 msgstr "E710: Liste değeri hedeften daha fazla ögeye sahip"
 
@@ -6689,6 +6805,40 @@ msgstr "E711: Liste değeri yeterli ögeye sahip değil"
 msgid "E719: Cannot slice a Dictionary"
 msgstr "E719: Bir Sözlük dilimlenemiyor"
 
+msgid "E741: Value is locked"
+msgstr "E741: Değer kilitli"
+
+#, c-format
+msgid "E741: Value is locked: %s"
+msgstr "E741: Değer kilitli: %s"
+
+msgid "E742: Cannot change value"
+msgstr "E742: Değer değiştirilemiyor"
+
+#, c-format
+msgid "E742: Cannot change value of %s"
+msgstr "E742: %s ögesinin değeri değiştirilemiyor"
+
+msgid "E794: Cannot set variable in the sandbox"
+msgstr "E794: Değişken kum havuzunda ayarlanamıyor"
+
+#, c-format
+msgid "E794: Cannot set variable in the sandbox: \"%s\""
+msgstr "E794: Değişken kum havuzunda ayarlanamıyor: \"%s\""
+
+msgid "E795: Cannot delete variable"
+msgstr "E795: Değişken silinemiyor"
+
+#, c-format
+msgid "E795: Cannot delete variable %s"
+msgstr "E795: %s değişkeni silinemiyor"
+
+msgid "E834: Conflicts with value of 'listchars'"
+msgstr "E834: 'listchars' değeriyle çakışmalar var"
+
+msgid "E835: Conflicts with value of 'fillchars'"
+msgstr "E835: 'fillchars' değeriyle çakışmalar var"
+
 msgid ""
 "E856: \"assert_fails()\" second argument must be a string or a list with one "
 "or two strings"
@@ -6720,14 +6870,15 @@ msgstr "E1003: Dönüş değeri eksik"
 
 #, c-format
 msgid "E1004: White space required before and after '%s' at \"%s\""
-msgstr "E1004: Şu konumda '%s' öncesinde ve sonrasında boşluk gerekiyor: \"%s\""
+msgstr ""
+"E1004: Şu konumda '%s' öncesinde ve sonrasında boşluk gerekiyor: \"%s\""
 
 msgid "E1005: Too many argument types"
 msgstr "E1005: Çok fazla argüman türü"
 
 #, c-format
 msgid "E1006: %s is used as an argument"
-msgstr "E1006: %s bir argüman olarak kullanılıyor"
+msgstr "E1006: %s, bir argüman olarak kullanılıyor"
 
 msgid "E1007: Mandatory argument after optional argument"
 msgstr "E1007: İsteğe bağlı argüman sonrasında zorunlu argüman"
@@ -6748,11 +6899,20 @@ msgstr "E1011: Ad çok uzun: %s"
 
 #, c-format
 msgid "E1012: Type mismatch; expected %s but got %s"
-msgstr "E1012: Tür uyumsuzluğu, %s bekleniyordu, ancak %s alındı"
+msgstr "E1012: Tür uyumsuzluğu, %s bekleniyordu; ancak %s alındı"
+
+#, c-format
+msgid "E1012: Type mismatch; expected %s but got %s in %s"
+msgstr "E1012: Tür uyumsuzluğu, %s bekleniyordu; ancak %s alındı (%s içinde)"
 
 #, c-format
 msgid "E1013: Argument %d: type mismatch, expected %s but got %s"
-msgstr "E1013: %d argümanı: Tür uyumsuzluğu, %s bekleniyordu, ancak %s alındı"
+msgstr "E1013: %d argümanı: Tür uyumsuzluğu, %s bekleniyordu; ancak %s alındı"
+
+#, c-format
+msgid "E1013: Argument %d: type mismatch, expected %s but got %s in %s"
+msgstr "E1013: %d argümanı: Tür uyumsuzluğu, %s bekleniyordu; ancak %s alındı "
+"(%s içinde)"
 
 #, c-format
 msgid "E1014: Invalid key: %s"
@@ -6812,7 +6972,7 @@ msgstr "E1028: :def işlevi derleme başarısız"
 
 #, c-format
 msgid "E1029: Expected %s but got %s"
-msgstr "E1029: %s bekleniyordu ancak %s alındı"
+msgstr "E1029: %s bekleniyordu; ancak %s alındı"
 
 #, c-format
 msgid "E1030: Using a String as a Number: \"%s\""
@@ -6870,8 +7030,9 @@ msgstr "E1045: * sonrası \"as\" eksik"
 msgid "E1046: Missing comma in import"
 msgstr "E1046: İçe aktarımda virgül eksik"
 
-msgid "E1047: Syntax error in import"
-msgstr "E1047: İçe aktarımda sözdizim hatası"
+#, c-format
+msgid "E1047: Syntax error in import: %s"
+msgstr "E1047: İçe aktarımda sözdizim hatası: %s"
 
 #, c-format
 msgid "E1048: Item not found in script: %s"
@@ -6931,6 +7092,9 @@ msgstr "E1062: Bir Sayı dizinlenemiyor"
 msgid "E1063: Type mismatch for v: variable"
 msgstr "E1063: v: değişkeni için tür uyumsuzluğu"
 
+msgid "E1064: Yank register changed while using it"
+msgstr "E1064: Kopyalama yazmacı kullanım sırasında değiştirildi"
+
 #, c-format
 msgid "E1066: Cannot declare a register: %s"
 msgstr "E1066: Bir yazmaç tanımlanamıyor: %s"
@@ -6994,8 +7158,8 @@ msgstr "E1084: Vim9 betik işlevi %s silinemiyor"
 msgid "E1085: Not a callable type: %s"
 msgstr "E1085: Çağrılabilir bir tür değil: %s"
 
-msgid "E1086: Cannot use :function inside :def"
-msgstr "E1086: :def içinde :function kullanılamaz"
+msgid "E1086: Function reference invalid"
+msgstr "E1086: İşlev başvurusu geçersiz"
 
 msgid "E1087: Cannot use an index when declaring a variable"
 msgstr "E1087: Bir değişken tanımlarken dizinleme kullanılamaz"
@@ -7012,12 +7176,9 @@ msgstr "E1090: %s argümanına atanamıyor"
 msgid "E1091: Function is not compiled: %s"
 msgstr "E1091: İşlev derlenmemiş: %s"
 
-msgid "E1092: Cannot use a list for a declaration"
-msgstr "E1092: Tanımlama için bir liste kullanılamaz"
-
 #, c-format
 msgid "E1093: Expected %d items but got %d"
-msgstr "E1093: %d öge bekleniyordu, ancak %d alındı"
+msgstr "E1093: %d öge bekleniyordu; ancak %d alındı"
 
 msgid "E1094: Import can only be used in a script"
 msgstr "E1094: İçe aktarım yalnızca bir betikte kullanılabilir"
@@ -7031,6 +7192,9 @@ msgstr "E1096: Dönüş türü olmayan bir işlevde bir değer döndürülüyor"
 msgid "E1097: Line incomplete"
 msgstr "E1097: Satır tamamlanmamış"
 
+msgid "E1098: String, List or Blob required"
+msgstr "E1098: Dizi, Liste veya İkili Nesne gerekiyor"
+
 #, c-format
 msgid "E1099: Unknown error while executing %s"
 msgstr "E1099: %s çalıştırılırken bilinmeyen hata"
@@ -7051,7 +7215,7 @@ msgstr "E1104: > eksik"
 
 #, c-format
 msgid "E1105: Cannot convert %s to string"
-msgstr "E1105: %s bir diziye dönüştürülemiyor"
+msgstr "E1105: %s, bir diziye dönüştürülemiyor"
 
 msgid "E1106: One argument too many"
 msgstr "E1106: Bir argüman fazladan"
@@ -7207,7 +7371,8 @@ msgstr "E1148: Bir %s dizinlenemiyor"
 
 #, c-format
 msgid "E1149: Script variable is invalid after reload in function %s"
-msgstr "E1149: %s işlevindeki yeniden yüklemeden sonra betik değişkeni geçersiz"
+msgstr ""
+"E1149: %s işlevindeki yeniden yüklemeden sonra betik değişkeni geçersiz"
 
 msgid "E1150: Script variable type changed"
 msgstr "E1150: Betik değişkeni türü değiştirildi"
@@ -7218,8 +7383,9 @@ msgstr "E1151: Eşleşmeyen endfunction"
 msgid "E1152: Mismatched enddef"
 msgstr "E1152: Eşleşmeyen enddef"
 
-msgid "E1153: Invalid operation for bool"
-msgstr "E1153: Boole için geçersiz işlem"
+#, c-format
+msgid "E1153: Invalid operation for %s"
+msgstr "E1153: %s için geçersiz işlem"
 
 msgid "E1154: Divide by zero"
 msgstr "E1154: Sıfır ile bölüm"
@@ -7252,7 +7418,12 @@ msgstr "E1162: Yazmaç adı tek bir karakter olmalıdır: %s"
 
 #, c-format
 msgid "E1163: Variable %d: type mismatch, expected %s but got %s"
-msgstr "E1163: %d değişkeni: Tür uyumsuzluğu, %s bekleniyordu, ancak %s alındı"
+msgstr "E1163: %d değişkeni: Tür uyumsuzluğu, %s bekleniyordu; ancak %s alındı"
+
+#, c-format
+msgid "E1163: Variable %d: type mismatch, expected %s but got %s in %s"
+msgstr "E1163: %d değişkeni: Tür uyumsuzluğu, %s bekleniyordu; ancak %s alındı "
+"(%s içinde)"
 
 msgid "E1164: vim9cmd must be followed by a command"
 msgstr "E1164: vim9cmd sonrasında bir komut gelmelidir"
@@ -7415,8 +7586,8 @@ msgstr "E1206: %d argümanı için sözlük gerekiyor"
 msgid "E1207: Expression without an effect: %s"
 msgstr "E1207: Bir efekt olmadan ifade: %s"
 
-msgid "E1208: -complete used without -nargs"
-msgstr "E1208: -complete, -nargs olmadan kullanıldı"
+msgid "E1208: -complete used without allowing arguments"
+msgstr "E1208: -complete, izin verme argümanları olmadan kullanıldı"
 
 #, c-format
 msgid "E1209: Invalid value for a line number: \"%s\""
@@ -7426,6 +7597,173 @@ msgstr "E1209: Satır numarası için geçersiz değer: \"%s\""
 msgid "E1210: Number required for argument %d"
 msgstr "E1210: %d argümanı için sayı gerekiyor"
 
+#, c-format
+msgid "E1211: List required for argument %d"
+msgstr "E1211: %d argümanı için liste gerekiyor"
+
+#, c-format
+msgid "E1212: Bool required for argument %d"
+msgstr "E1212: %d argümanı için Boole gerekiyor"
+
+#, c-format
+msgid "E1213: Redefining imported item \"%s\""
+msgstr "E1213: İçe aktarılmış öge \"%s\" yeniden tanımlanıyor"
+
+#, c-format
+msgid "E1214: Digraph must be just two characters: %s"
+msgstr "E1214: İkili harf yalnızca iki karakter olmalıdır: %s"
+
+#, c-format
+msgid "E1215: Digraph must be one character: %s"
+msgstr "E1215: İkili harf tek bir karakter olmalıdır: %s"
+
+msgid ""
+"E1216: digraph_setlist() argument must be a list of lists with two items"
+msgstr ""
+"E1216: digraph_setlist() argümanı iki ögeli listelerin bir listesi olmalıdır"
+
+#, c-format
+msgid "E1217: Channel or Job required for argument %d"
+msgstr "E1217: %d argümanı için kanal veya iş gerekiyor"
+
+#, c-format
+msgid "E1218: Job required for argument %d"
+msgstr "E1218: %d argümanı için iş gerekiyor"
+
+#, c-format
+msgid "E1219: Float or Number required for argument %d"
+msgstr "E1219: %d argümanı için kayan noktalı değer veya sayı gerekiyor"
+
+#, c-format
+msgid "E1220: String or Number required for argument %d"
+msgstr "E1220: %d argümanı için dizi veya sayı gerekiyor"
+
+#, c-format
+msgid "E1221: String or Blob required for argument %d"
+msgstr "E1221: %d argümanı için dizi veya ikili geniş nesne gerekiyor"
+
+#, c-format
+msgid "E1222: String or List required for argument %d"
+msgstr "E1222: %d argümanı için dizi veya liste gerekiyor"
+
+#, c-format
+msgid "E1223: String or Dictionary required for argument %d"
+msgstr "E1223: %d argümanı için dizi veya sözlük gerekiyor"
+
+#, c-format
+msgid "E1224: String, Number or List required for argument %d"
+msgstr "E1224: %d argümanı için dizi, sayı veya liste gerekiyor"
+
+#, c-format
+msgid "E1225: String, List or Dictionary required for argument %d"
+msgstr "E1225: %d argümanı için dizi, liste veya sözlük gerekiyor"
+
+#, c-format
+msgid "E1226: List or Blob required for argument %d"
+msgstr "E1226: %d argümanı için liste veya ikili geniş nesne gerekiyor"
+
+#, c-format
+msgid "E1227: List or Dictionary required for argument %d"
+msgstr "E1227: %d argümanı için liste veya sözlük gerekiyor"
+
+#, c-format
+msgid "E1228: List, Dictionary or Blob required for argument %d"
+msgstr "E1228: %d argümanı için liste, sözlük veya ikili geniş nesne gerekiyor"
+
+#, c-format
+msgid "E1229: Expected dictionary for using key \"%s\", but got %s"
+msgstr "E1229: \"%s\" anahtarını kullanmak için sözlük bekleniyordu; ancak %s "
+"alındı"
+
+msgid "E1230: Encryption: sodium_mlock() failed"
+msgstr "E1230: Şifreleme: sodium_mlock() başarısız"
+
+#, c-format
+msgid "E1231: Cannot use a bar to separate commands here: %s"
+msgstr "E1231: Burada komutları ayırmak için bir çubuk kullanılamaz: %s"
+
+msgid "E1232: Argument of exists_compiled() must be a literal string"
+msgstr "E1232: exists_compiled() argümanı düz bir dizi olmalıdır"
+
+msgid "E1233: exists_compiled() can only be used in a :def function"
+msgstr "E1233: exists_compiled() yalnızca bir :def işlevinde kullanılabilir"
+
+msgid "E1234: legacy must be followed by a command"
+msgstr "E1234: legacy sonrasında bir komut gelmelidir"
+
+msgid "E1235: Function reference is not set"
+msgstr "E1235: İşlev başvurusu ayarlanmamış"
+
+#, c-format
+msgid "E1236: Cannot use %s itself, it is imported with '*'"
+msgstr "E1236: %s kendisi kullanılamaz, '*' ile içe aktarılmış"
+
+#, c-format
+msgid "E1237: No such user-defined command in current buffer: %s"
+msgstr "E1237: Geçerli arabellekte böyle bir kullanıcı tanımlı komut yok: %s"
+
+#, c-format
+msgid "E1238: Blob required for argument %d"
+msgstr "E1238: %d argümanı için ikili geniş nesne gerekiyor"
+
+#, c-format
+msgid "E1239: Invalid value for blob: %d"
+msgstr "E1239: İkili geniş nesne için geçersiz değer: %d"
+
+msgid "E1240: Resulting text too long"
+msgstr "E1240: Ortaya çıkan metin pek uzun"
+
+#, c-format
+msgid "E1241: Separator not supported: %s"
+msgstr "E1241: Ayırıcı desteklenmiyor: %s"
+
+#, c-format
+msgid "E1242: No white space allowed before separator: %s"
+msgstr "E1242: Ayırıcıdan önce boşluğa izin verilmiyor: %s"
+
+msgid "E1243: ASCII code not in 32-127 range"
+msgstr "E1243: ASCII kodu 32-127 eriminde değil"
+
+#, c-format
+msgid "E1244: Bad color string: %s"
+msgstr "E1244: Hatalı renk dizisi: %s"
+
+msgid "E1245: Cannot expand <sfile> in a Vim9 function"
+msgstr "E1245: <sfile>, bir Vim9 işlevinde genişletilemiyor"
+
+#, c-format
+msgid "E1246: Cannot find variable to (un)lock: %s"
+msgstr "E1246: Kilitlenecek/açılacak değişken bulunamıyor: %s"
+
+msgid "E1247: Line number out of range"
+msgstr "E1247: Satır numarası erim dışında"
+
+msgid "E1248: Closure called from invalid context"
+msgstr "E1248: Kapatma, geçersiz bağlamdan çağrıldı"
+
+msgid "E1249: Highlight group name too long"
+msgstr "E1249: Vurgulama grubu adı pek uzun"
+
+#, c-format
+msgid "E1250: Argument of %s must be a List, String, Dictionary or Blob"
+msgstr "E1250: %s argümanı bir liste, sözlük veya ikili geniş nesne olmalıdır"
+
+#, c-format
+msgid "E1251: List, Dictionary, Blob or String required for argument %d"
+msgstr ""
+"E1251: %d argümanı için liste, sözlük, ikili geniş nesne veya dizi gerekiyor"
+
+#, c-format
+msgid "E1252: String, List or Blob required for argument %d"
+msgstr "E1252: %d argümanı için dizi, liste veya ikili geniş nesne gerekiyor"
+
+#, c-format
+msgid "E1253: String expected for argument %d"
+msgstr "E1253: %d argümanı için dizi gerekiyor"
+
+msgid "E1254: Cannot use script variable in for loop"
+msgstr "E1254: for döngüsünde betik değişkeni kullanılamaz"
+
 msgid "--No lines in buffer--"
 msgstr "--Arabellek içinde satır yok--"
 
@@ -7520,37 +7858,19 @@ msgid "E667: Fsync failed"
 msgstr "E667: Fsync başarısız oldu"
 
 #, c-format
+msgid "E370: Could not load library %s: %s"
+msgstr "E370: %s kitaplığı yüklenemedi: %s"
+
+#, c-format
 msgid "E448: Could not load library function %s"
 msgstr "E448: %s kitaplık işlevi yüklenemedi"
 
 msgid "E477: No ! allowed"
 msgstr "E477: ! imine izin verilmiyor"
 
-msgid "E25: GUI cannot be used: Not enabled at compile time"
-msgstr "E25: Grafik arabirim kullanılamaz: Derlenirken etkinleştirilmemiş"
-
-msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
-msgstr "E26: İbranca kullanılamaz: Derlenirken etkinleştirilmemiş\n"
-
-msgid "E27: Farsi support has been removed\n"
-msgstr "E27: Farsça desteği kaldırıldı\n"
-
 msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
 msgstr "E800: Arapça kullanılamaz: Derlenirken etkinleştirilmemiş\n"
 
-#, c-format
-msgid "E28: No such highlight group name: %s"
-msgstr "E28: Böyle bir vurgulama grup adı yok: %s"
-
-msgid "E29: No inserted text yet"
-msgstr "E29: Henüz bir metin eklenmedi"
-
-msgid "E30: No previous command line"
-msgstr "E30: Öncesinde komut satırı yok"
-
-msgid "E31: No such mapping"
-msgstr "E31: Böyle bir eşlem yok"
-
 msgid "E479: No match"
 msgstr "E479: Eşleşme yok"
 
@@ -7558,24 +7878,9 @@ msgstr "E479: Eşleşme yok"
 msgid "E480: No match: %s"
 msgstr "E480: Eşleşme yok: %s"
 
-msgid "E32: No file name"
-msgstr "E32: Dosya adı yok"
-
-msgid "E33: No previous substitute regular expression"
-msgstr "E33: Öncesinde yerine geçen bir düzenli ifade yok"
-
-msgid "E34: No previous command"
-msgstr "E34: Öncesinde komut yok"
-
-msgid "E35: No previous regular expression"
-msgstr "E35: Öncesinde düzenli ifade yok"
-
 msgid "E481: No range allowed"
 msgstr "E481: Erime izin verilmiyor"
 
-msgid "E36: Not enough room"
-msgstr "E36: Yeterli alan yok"
-
 #, c-format
 msgid "E247: no registered server named \"%s\""
 msgstr "E247: \"%s\" adlı kayıtlı bir sunucu yok"
@@ -7595,22 +7900,9 @@ msgstr "E484: %s dosyası açılamıyor"
 msgid "E485: Can't read file %s"
 msgstr "E485: %s dosyası okunamıyor"
 
-msgid "E38: Null argument"
-msgstr "E38: Anlamsız argüman"
-
-msgid "E39: Number expected"
-msgstr "E39: Sayı bekleniyordu"
-
-#, c-format
-msgid "E40: Can't open errorfile %s"
-msgstr "E40: Hata dosyası %s açılamıyor"
-
 msgid "E233: cannot open display"
 msgstr "E233: Görüntü açılamıyor"
 
-msgid "E41: Out of memory!"
-msgstr "E41: Bellek yetersiz!"
-
 msgid "Pattern not found"
 msgstr "Dizgi bulunamadı"
 
@@ -7624,21 +7916,9 @@ msgstr "E487: Değişken pozitif olmalı"
 msgid "E459: Cannot go back to previous directory"
 msgstr "E459: Bir önceki dizine gidilemiyor"
 
-msgid "E42: No Errors"
-msgstr "E42: Hata yok"
-
 msgid "E776: No location list"
 msgstr "E776: Konum listesi yok"
 
-msgid "E43: Damaged match string"
-msgstr "E43: Hasarlı eşleşme dizisi"
-
-msgid "E44: Corrupted regexp program"
-msgstr "E44: Bozulmuş regexp programı"
-
-msgid "E45: 'readonly' option is set (add ! to override)"
-msgstr "E45: 'readonly' seçeneği ayarlanmış (geçersiz kılmak için ! ekleyin)"
-
 #, c-format
 msgid "E734: Wrong variable type for %s="
 msgstr "E734: %s= için yanlış değişken türü"
@@ -7650,20 +7930,15 @@ msgstr "E461: İzin verilmeyen değişken adı: %s"
 msgid "E995: Cannot modify existing variable"
 msgstr "E995: Mevcut değişken değiştirilemiyor"
 
-#, c-format
-msgid "E46: Cannot change read-only variable \"%s\""
-msgstr "E46: Salt okunur değişken \"%s\" değiştirilemiyor"
-
-#, c-format
-msgid "E794: Cannot set variable in the sandbox: \"%s\""
-msgstr "E794: Değişken kum havuzunda ayarlanamıyor: \"%s\""
-
 msgid "E928: String required"
 msgstr "E928: Dizi gerekiyor"
 
 msgid "E889: Number required"
 msgstr "E889: Sayı gerekiyor"
 
+msgid "E839: Bool required"
+msgstr "E839: Boole gerekiyor"
+
 msgid "E713: Cannot use empty key for Dictionary"
 msgstr "E713: Sözlük için boş anahtar kullanılamaz"
 
@@ -7682,14 +7957,6 @@ msgid "E978: Invalid operation for Blob"
 msgstr "E978: İkili geniş nesne için geçersiz işlem"
 
 #, c-format
-msgid "E118: Too many arguments for function: %s"
-msgstr "E118: İşlev için çok fazla argüman: %s"
-
-#, c-format
-msgid "E119: Not enough arguments for function: %s"
-msgstr "E119: Şu işlev için yetersiz sayıda argüman: %s"
-
-#, c-format
 msgid "E933: Function was deleted: %s"
 msgstr "E933: İşlev silinmiş: %s"
 
@@ -7722,10 +7989,6 @@ msgid "E996: Cannot lock an option"
 msgstr "E996: Seçenek kilitlenemiyor"
 
 #, c-format
-msgid "E113: Unknown option: %s"
-msgstr "E113: Bilinmeyen seçenek: %s"
-
-#, c-format
 msgid "E998: Reduce of an empty %s with no initial value"
 msgstr "E998: Başlangıç değeri olmayan boş bir %s için reduce() yapılamıyor"
 
@@ -7733,12 +7996,6 @@ msgstr "E998: Başlangıç değeri olmayan boş bir %s için reduce() yapılamıyor"
 msgid "E857: Dictionary key \"%s\" required"
 msgstr "E857: Sözlük anahtarı \"%s\" gerekiyor"
 
-msgid "E47: Error while reading errorfile"
-msgstr "E47: Hata dosyası okunurken hata"
-
-msgid "E48: Not allowed in sandbox"
-msgstr "E48: Kum havuzunda izin verilmiyor"
-
 msgid "E523: Not allowed here"
 msgstr "E523: Burada izin verilmiyor"
 
@@ -7751,33 +8008,9 @@ msgstr "E565: Pencere veya metin değişikliğine izin verilmiyor"
 msgid "E359: Screen mode setting not supported"
 msgstr "E359: Ekran kipi ayarı desteklenmiyor"
 
-msgid "E49: Invalid scroll size"
-msgstr "E49: Geçersiz kaydırma boyutu"
-
-msgid "E91: 'shell' option is empty"
-msgstr "E91: 'shell' seçeneği boş"
-
 msgid "E255: Couldn't read in sign data!"
 msgstr "E255: İşaret verisi okunamadı!"
 
-msgid "E72: Close error on swap file"
-msgstr "E72: Takas dosyasında kapama hatası"
-
-msgid "E73: tag stack empty"
-msgstr "E73: Etiket yığını boş"
-
-msgid "E74: Command too complex"
-msgstr "E74: Komut çok karmaşık"
-
-msgid "E75: Name too long"
-msgstr "E75: Ad çok uzun"
-
-msgid "E76: Too many ["
-msgstr "E76: Çok fazla ["
-
-msgid "E77: Too many file names"
-msgstr "E77: Çok fazla dosya adı"
-
 msgid "E488: Trailing characters"
 msgstr "E488: Sonda fazladan karakterler"
 
@@ -7785,34 +8018,15 @@ msgstr "E488: Sonda fazladan karakterler
 msgid "E488: Trailing characters: %s"
 msgstr "E488: Sonda fazladan karakterler: %s"
 
-msgid "E78: Unknown mark"
-msgstr "E78: Bilinmeyen im"
-
-msgid "E79: Cannot expand wildcards"
-msgstr "E79: Joker karakterleri genişletilemiyor"
-
 msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
 msgstr "E591: 'winheight' değeri 'winminheight' değerinden küçük olamaz"
 
 msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
 msgstr "E592: 'winwidth' değeri 'winminwidth' değerinden küçük olamaz"
 
-msgid "E80: Error while writing"
-msgstr "E80: Yazma sırasında hata"
-
 msgid "E939: Positive count required"
 msgstr "E939: Pozitif sayım gerekiyor"
 
-msgid "E81: Using <SID> not in a script context"
-msgstr "E81: <SID> bir betik bağlamında kullanılmıyor"
-
-#, c-format
-msgid "E107: Missing parentheses: %s"
-msgstr "E107: Ayraç eksik: %s"
-
-msgid "E110: Missing ')'"
-msgstr "E110: ')' eksik"
-
 #, c-format
 msgid "E720: Missing colon in Dictionary: %s"
 msgstr "E720: Sözlükte iki nokta eksik: %s"
@@ -7836,7 +8050,7 @@ msgid "E463: Region is guarded, cannot m
 msgstr "E463: Bölge korunuyor, değiştirilemez"
 
 msgid "E744: NetBeans does not allow changes in read-only files"
-msgstr "E744: NetBeans salt okunur dosyalarda değişikliklere izin vermiyor"
+msgstr "E744: NetBeans saltokunur dosyalarda değişikliklere izin vermiyor"
 
 msgid "E363: pattern uses more memory than 'maxmempattern'"
 msgstr "E363: Dizgi 'maxmempattern' ögesinden daha fazla bellek kullanıyor"
@@ -7844,10 +8058,6 @@ msgstr "E363: Dizgi 'maxmempattern' ögesinden daha fazla bellek kullanıyor"
 msgid "E749: empty buffer"
 msgstr "E749: Boş arabellek"
 
-#, c-format
-msgid "E86: Buffer %ld does not exist"
-msgstr "E86: Arabellek %ld mevcut değil"
-
 msgid "E682: Invalid search pattern or delimiter"
 msgstr "E682: Geçersiz arama dizgisi veya sınırlandırıcısı"
 
@@ -7884,19 +8094,9 @@ msgstr "E957: Geçersiz pencere numarası"
 msgid "E686: Argument of %s must be a List"
 msgstr "E686: %s argümanı bir liste olmalı"
 
-msgid "E109: Missing ':' after '?'"
-msgstr "E109: '?' sonrası ':' eksik"
-
 msgid "E690: Missing \"in\" after :for"
 msgstr "E690: :for sonrası \"in\" eksik"
 
-#, c-format
-msgid "E117: Unknown function: %s"
-msgstr "E117: Bilinmeyen işlev: %s"
-
-msgid "E111: Missing ']'"
-msgstr "E111: ']' eksik"
-
 msgid "E581: :else without :if"
 msgstr "E581: :if olmadan :else"
 
@@ -7919,9 +8119,11 @@ msgstr "E274: Ayraçtan önce boşluğa izin verilmiyor"
 msgid "E940: Cannot lock or unlock variable %s"
 msgstr "E940: Değişken %s kilitlenemiyor veya açılamıyor"
 
-#, c-format
-msgid "E254: Cannot allocate color %s"
-msgstr "E254: %s rengi ayrılamıyor"
+msgid "E706: Channel or Job required"
+msgstr "E706: Kanal veya iş gerekiyor"
+
+msgid "E693: Job required"
+msgstr "E693: İş gerekiyor"
 
 msgid "search hit TOP, continuing at BOTTOM"
 msgstr "Arama dosyanın BAŞINI geçti, dosyanın SONUNDAN sürüyor"
@@ -8008,7 +8210,7 @@ msgstr ""
 "geldi"
 
 msgid "internal error: imp.find_module returned tuple with NULL"
-msgstr "iç hata: imp.find_module BOŞ bir çoklu öge döndürdü"
+msgstr "içsel hata: imp.find_module BOŞ bir çoklu öge döndürdü"
 
 msgid "cannot delete vim.Dictionary attributes"
 msgstr "vim.Dictionary öznitelikleri silinemiyor"
@@ -8025,7 +8227,7 @@ msgstr "Sağlama tablosu dürüm sırasında değişti"
 
 #, c-format
 msgid "expected sequence element of size 2, but got sequence of size %d"
-msgstr "2 boyut bir sıralama bekleniyordu, ancak %d boyut bir sıralama geldi"
+msgstr "2 boyut bir sıralama bekleniyordu; ancak %d boyut bir sıralama geldi"
 
 msgid "list constructor does not accept keyword arguments"
 msgstr "liste yapıcısı anahtar sözcük argümanları kabul etmez"
@@ -8035,7 +8237,7 @@ msgstr "liste sırası erimin dışında"
 
 #, c-format
 msgid "internal error: failed to get Vim list item %d"
-msgstr "iç hata: %d vim liste ögesi alınamadı"
+msgstr "içsel hata: %d vim liste ögesi alınamadı"
 
 msgid "slice step cannot be zero"
 msgstr "dilim adımı sıfır olamaz"
@@ -8046,13 +8248,13 @@ msgstr "genişletilmiş dilime %d boyuttan büyük bir sıralamayı atama denemesi"
 
 #, c-format
 msgid "internal error: no Vim list item %d"
-msgstr "iç hata: %d vim liste ögesi yok"
+msgstr "içsel hata: %d vim liste ögesi yok"
 
 msgid "internal error: not enough list items"
-msgstr "iç hata: yeterli liste ögesi yok"
+msgstr "içsel hata: Yeterli liste ögesi yok"
 
 msgid "internal error: failed to add item to list"
-msgstr "iç hata: öge listeye eklenemedi"
+msgstr "içsel hata: Öge listeye eklenemedi"
 
 #, c-format
 msgid "attempt to assign sequence of size %d to extended slice of size %d"
@@ -8083,7 +8285,7 @@ msgid "unable to get option value"
 msgstr "seçenek değeri alınamadı"
 
 msgid "internal error: unknown option type"
-msgstr "iç hata: bilinmeyen seçenek türü"
+msgstr "içsel hata: Bilinmeyen seçenek türü"
 
 msgid "problem while switching windows"
 msgstr "pencereler arasında gezinirken hata"
@@ -8170,10 +8372,10 @@ msgid "unable to convert %s to a Vim str
 msgstr "%s vim yapısına dönüştürülemedi"
 
 msgid "internal error: NULL reference passed"
-msgstr "iç hata: BOŞ başvuru geçirildi"
+msgstr "içsel hata: NULL başvuru geçirildi"
 
 msgid "internal error: invalid value type"
-msgstr "iç hata: geçersiz değer türü"
+msgstr "içsel hata: Geçersiz değer türü"
 
 msgid ""
 "Failed to set path hook: sys.path_hooks is not a list\n"
@@ -8341,6 +8543,9 @@ msgstr "bölümleri ayıran nroff makro adları"
 msgid "list of directory names used for file searching"
 msgstr "dosya arama için kullanılan dizin adları listesi"
 
+msgid ":cd without argument goes to the home directory"
+msgstr "argüman olmadan :cd, ev dizinine gider"
+
 msgid "list of directory names used for :cd"
 msgstr ":cd için kullanılan dizin adları listesi"
 
@@ -8703,11 +8908,14 @@ msgid "alias for 'term'"
 msgstr "'term' için arma"
 
 msgid "check built-in termcaps first"
-msgstr "önce iç termcaps'i denetle"
+msgstr "önce içsel termcaps'i denetle"
 
 msgid "terminal connection is fast"
 msgstr "uçbirim bağlantısı hızlı"
 
+msgid "request terminal key codes when an xterm is detected"
+msgstr "bir xterm algılandığında uçbirim düğme kodlarını iste"
+
 msgid "terminal that requires extra redrawing"
 msgstr "ek yenileme gerektiren uçbirim"
 
@@ -8802,11 +9010,14 @@ msgstr "araç çubuğu simgelerinin boyutu"
 msgid "room (in pixels) left above/below the window"
 msgstr "pencerenin altında/üstünde bırakılan alan (piksel)"
 
+msgid "list of ASCII characters that can be combined into complex shapes"
+msgstr "karmaşık şekillere dönüştürülebilen ASCII karakterlerinin listesi"
+
 msgid "options for text rendering"
 msgstr "metin dokuması için seçenekler"
 
 msgid "use a pseudo-tty for I/O to external commands"
-msgstr "dış komutlara, girdi çıktı için yalancı-tty kullan"
+msgstr "dış komutlara girdi-çıktı için yalancı-tty kullan"
 
 msgid ""
 "\"last\", \"buffer\" or \"current\": which directory used for the file "
@@ -9017,8 +9228,11 @@ msgstr ""
 "anahtar sözcük tamamlaması için eşanlamlılar sözlüğü dosyaları\n"
 "listesi"
 
+msgid "function used for thesaurus completion"
+msgstr "eşanlamlılar tamamlaması için kullanılan işlev"
+
 msgid "adjust case of a keyword completion match"
-msgstr "anahtar sözcük tamamlama eşleşmesinin BÜYÜK/küçük harfini ayarla"
+msgstr "anahtar sözcük tamamlama eşleşmesi BÜYÜK/küçük harf ayarla"
 
 msgid "enable entering digraphs with c1 <BS> c2"
 msgstr "c1 <BS> c2 ile ikili harflerin girilmesini etkinleştir"
@@ -9259,7 +9473,7 @@ msgid "automatically write a file when l
 msgstr "değiştirilmiş arabellekten çıkarken dosyayı kendiliğinden yaz"
 
 msgid "as 'autowrite', but works with more commands"
-msgstr "'autowrite' gibi, ancak daha çok komutla çalışır"
+msgstr "'autowrite' gibi; ancak daha çok komutla çalışır"
 
 msgid "always write without asking for confirmation"
 msgstr "onay beklemeden her zaman yaz"
@@ -9473,13 +9687,13 @@ msgid "use phonetic Hebrew keyboard mapp
 msgstr "fonetik İbranca klavye eşlemlemesini kullan"
 
 msgid "prepare for editing Arabic text"
-msgstr "Arapça metni düzenleme için hazırlan"
+msgstr "Arapça metin düzenleme için hazırlan"
 
 msgid "perform shaping of Arabic characters"
 msgstr "Arapça karakterlerin şekillendirmesini gerçekleştir"
 
 msgid "terminal will perform bidi handling"
-msgstr "sağdan sola yazımı uçbirim gerçekleştirecek"
+msgstr "sağdan sola yazım yönetimini uçbirim gerçekleştirecek"
 
 msgid "name of a keyboard mapping"
 msgstr "bir klavye eşlemlemesinin adı"