登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
10
Star
0
Fork
66
src-openEuler
/
vim
代码
Issues
1
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
[软件升级]openEuler 软件vim 8.2版本升级至vim9.0版本
已完成
#I5YCR1
开源软件变更管理
ZhouPengcheng
创建于
2022-10-29 09:57
| 差异分析报告 | | | | | :----------- | ----------------------------------------------------- | -------- | ------------------ | | 版本变更原因 | 选取社区最新稳定版本 | 变更后版本 | vim 9.0.0000 | | 差异分类 | 差异项 | 差异说明 | 影响评估与适配方案 | | 特性变化 | 新增特性 | 1. 支持在字符串内部计算 Vim 表达式。 [interp-string](https://yianwillis.github.io/vimcdoc/doc/eval.html#interp-string)<br/> 支持在 heredoc 内部计算 Vim 表达式。 : [let-heredoc](https://yianwillis.github.io/vimcdoc/doc/eval.html#interp-string) <br/><br/>2. 支持模糊匹配:<br/><br/>- 字符串列表中查找字符串。 [fuzzy-matching](https://yianwillis.github.io/vimcdoc/doc/pattern.html#fuzzy-matching)<br/>- 用 ['wildoptions'](https://yianwillis.github.io/vimcdoc/doc/options.html#'wildoptions') 进行命令行补全的补全支持<br/>- 用于 :[vimgrep](https://yianwillis.github.io/vimcdoc/doc/quickfix.html#:vimgrep) 。<br/><br/>3. 增加 [Haiku](https://yianwillis.github.io/vimcdoc/doc/os_haiku.html#Haiku) OS 的支持。<br/>4. 支持 "lsp" 通道模式以简化 LSP 服务器 RPC 通信 [ language-server-protocol](https://yianwillis.github.io/vimcdoc/doc/channel.html#language-server-protocol) 。<br/>5. 支持 [channel](https://yianwillis.github.io/vimcdoc/doc/channel.html#channel) 中使用 Unix 域套接字。<br/>6. 通道的 IPv6 支持 [channel-address](https://yianwillis.github.io/vimcdoc/doc/channel.html#channel-address)。<br/>7. 支持执行当前缓冲区上的行。 [:source-range](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:source-range)<br/>8. 终端窗口改进:<br/><br/>- 支持在弹出窗口中打开终端。 [popup-terminal](https://yianwillis.github.io/vimcdoc/doc/popup.html#popup-terminal)<br/>- 支持终端设置下划线色彩。<br/>- 检测终端的焦点事件 ( [FocusGained](https://yianwillis.github.io/vimcdoc/doc/autocmd.html#FocusGained) 和 [FocusLost](https://yianwillis.github.io/vimcdoc/doc/autocmd.html#FocusLost) )。<br/>- 为终端窗口增加响铃支持。('[belloff](https://yianwillis.github.io/vimcdoc/doc/options.html#'belloff')')<br/>- 终端窗口中支持鼠标左右滚动。<br/><br/>9. 支持停止 Vim 脚本的剖视: `:profile stop` 和写入报告到文件: `:profile dump` <br/> [:profile](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:profile) <br/>10. 补全改进:<br/><br/>- \- [:breakadd](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:breakadd) 、 [:breakdel](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:breakdel) 、 [:diffget](https://yianwillis.github.io/vimcdoc/doc/diff.html#:diffget) 、 [:diffput](https://yianwillis.github.io/vimcdoc/doc/diff.html#:diffput) 、 [:profile](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:profile) 、 [:profdel](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:profdel) 和 [:scriptnames](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:scriptnames) 命令的参数补全支持。<br/>- 补全函数中支持使用任何 Vim 类型的 user_data ( [complete-items](https://yianwillis.github.io/vimcdoc/doc/insert.html#complete-items) )。<br/>- 停止插入模式补全且不改变文本 ( [i_CTRL-X_CTRL-Z](https://yianwillis.github.io/vimcdoc/doc/insert.html#i_CTRL-X_CTRL-Z) )。<br/>- 加入 [getcompletion()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#getcompletion()) 的 "cmdline" 选项以返回命令行参数。<br/><br/>11. 支持设置 ['foldtext'](https://yianwillis.github.io/vimcdoc/doc/options.html#'foldtext')、['completefunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'completefunc')、['omnifunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'omnifunc'), ['operatorfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'operatorfunc')、 ['thesaurusfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'thesaurusfunc')、['quickfixtextfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'quickfixtextfunc')、['tagfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'tagfunc'), ['imactivatefunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'imactivatefunc') 和 ['imstatusfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'imstatusfunc') 选项为函数引用或匿名函数或局部于脚本的函数。<br/>12. 支持直接设置 ['balloonexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'balloonexpr')、['charconvert'](https://yianwillis.github.io/vimcdoc/doc/options.html#'charconvert') ['foldexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'foldexpr'), ['formatexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'formatexpr')、 ['includeexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'includeexpr')、['printexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'printexpr')、['patchexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'patchexpr')、['indentexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'indentexpr'), ['modelineexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'modelineexpr')、 ['diffexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'diffexpr') 和 ['printexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'printexpr') 选项为局部于脚本的函数。<br/>13. ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 的改进:<br/><br/>- 支持配置用于标记折叠开始、显示关闭折叠和显示折叠分割符的字符,分别用 ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 里的 "foldopen"、"foldclose" 和 "foldsep"。 <br/>- 支持配置代表不存在行的显示字符,用 ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 里的 "eob"。<br/>- ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 选项里的 "stl"、"stlnc"、"foldopen"、"foldclose" 和 "foldsep" 项 目支持使用多字节。 <br/><br/>14. 支持 XChaCha20 加密方法。['cryptmethod'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cryptmethod')<br/>15. 拼写检查:<br/><br/>- 即使 ['spell'](https://yianwillis.github.io/vimcdoc/doc/options.html#'spell') 关闭,也可用 z= 来为当前单词进行拼写检查。<br/>- 为 ['spellsuggest' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'spellsuggest')加上 "timeout" 以限制拼写建议的搜索时间。<br/>- 新增支持,为[ 'spelloptions' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'spelloptions')加上 "camel" 可对驼峰式大小写单词进行拼写检查。<br/><br/>16. 支持在映射里执行 Ex 命令而不改变当前模式 [<Cmd>](https://yianwillis.github.io/vimcdoc/doc/map.html#%3CCmd%3E) 和 [<ScriptCmd>](https://yianwillis.github.io/vimcdoc/doc/map.html#%3CScriptCmd%3E) 。<br/>17. [ 'nrformats' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'nrformats')里置位 "unsigned" 时识别数值为无符号数。<br/>18. [:cquit](https://yianwillis.github.io/vimcdoc/doc/quickfix.html#:cquit) 新增可选错误码。<br/>19. 用 [g<Tab>](https://yianwillis.github.io/vimcdoc/doc/tabpage.html#g%3CTab%3E) 跳转到最近访问的标签页, [:tabnext](https://yianwillis.github.io/vimcdoc/doc/tabpage.html#:tabnext) 等命令支持最近访问的标签页。<br/>20. 用 expand('<SID>') 来扩展脚本 ID,用 expand('<script>') 来扩展脚本名。[expand()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#expand())<br/>21. [:sort](https://yianwillis.github.io/vimcdoc/doc/change.html#:sort) 和 [sort()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#sort()) 支持 locale 敏感的排序。<br/>22. 用 [ :sleep!](https://yianwillis.github.io/vimcdoc/doc/various.html#:sleep!) 睡眠时隐藏光标。<br/>23. 新增 ['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 的 "multispace" 以显示在任何地方出现的两个或多个空格。<br/>24. 新增['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 的 "leadmultispace" 以显示两个或多个引导空格。<br/>25. 新增 ['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 的 "lead" 以设置用于显示引导空格的字符。<br/>26. 支持 ['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 里指定字符时使用十六进制记法 (\x, \u and \U)。<br/>27. 使['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') , ['virtualedit'](https://yianwillis.github.io/vimcdoc/doc/options.html#'virtualedit') and ['thesaurusfunc' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'thesaurusfunc')成为全局-局部选项。<br/>28. 支持用 [:for](https://yianwillis.github.io/vimcdoc/doc/eval.html#:for) 遍历字符串内容。<br/>29. ['diffopt'](https://yianwillis.github.io/vimcdoc/doc/options.html#'diffopt') 里置位 "followwrap" 时比较窗口不复位 ['wrap'](https://yianwillis.github.io/vimcdoc/doc/options.html#'wrap')。<br/>30. 支持 ['statusline'](https://yianwillis.github.io/vimcdoc/doc/options.html#'statusline') 表达式结果当作状态行格式字符串重新计算 (%{% expr %})<br/>31. 新增 [zp](https://yianwillis.github.io/vimcdoc/doc/change.html#zp) 和 [ zP](https://yianwillis.github.io/vimcdoc/doc/change.html#zP) ,在列块模式下粘贴而不带拖尾空白。<br/>32. 新增 [zy](https://yianwillis.github.io/vimcdoc/doc/change.html#zy) ,在列块模式下抽出时不带拖尾空白。<br/>33. 新增可视模式下的 'P' 命令,在可视模式下粘贴文本而不把删除文本抽出到无名寄存器。 [put-Visual-mode ](https://yianwillis.github.io/vimcdoc/doc/change.html#put-Visual-mode)<br/>34. 新增 \%.l、\%<.l 和 \%>.l 匹配原以匹配光标所在行。详见 [ /\%l](https://yianwillis.github.io/vimcdoc/doc/pattern.html#%2F\%l) 。<br/>35. 新增 ['breakindentopt'](https://yianwillis.github.io/vimcdoc/doc/options.html#'breakindentopt') 的 "list" 来为编号或无编号列表提供额外缩进。新增['breakindentopt'](https://yianwillis.github.io/vimcdoc/doc/options.html#'breakindentopt') 的 "column" 使软回绕行缩进到指定列。<br/>36. 新增 [hl-CursorLineSign](https://yianwillis.github.io/vimcdoc/doc/syntax.html#hl-CursorLineSign) 和 [hl-CursorLineFold](https://yianwillis.github.io/vimcdoc/doc/syntax.html#hl-CursorLineFold) 缺省高亮组以调整用于 ['cursorline'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cursorline') 的标号高亮。<br/>37. 新增 [hl-CurSearch](https://yianwillis.github.io/vimcdoc/doc/syntax.html#hl-CurSearch) 缺省高亮组用于当前搜索匹配。<br/>38. 新增 Vim 启动时记录的支持 ( [--log](https://yianwillis.github.io/vimcdoc/doc/starting.html#--log) )。<br/>39. 新增用 ['quickfixtextfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'quickfixtextfunc') 定制快速修复缓冲区内容的支持。<br/>40. 支持 errorformat 的 "note" 错误类型 (%t)。<br/>41. 新增 ['errorformat'](https://yianwillis.github.io/vimcdoc/doc/options.html#'errorformat') 解析结束行号 (%e) 和 结束列号 (%k) 的支持。<br/>42. 支持 [settagstack()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#settagstack()) 裁短标签栈。<br/>43. [:set](https://yianwillis.github.io/vimcdoc/doc/options.html#:set) 带 "!" 在单独行显示每个选项。<br/>44. 新增 ['backspace'](https://yianwillis.github.io/vimcdoc/doc/options.html#'backspace') 的 "nostop" 以允许 [CTRL-W](https://yianwillis.github.io/vimcdoc/doc/index.html#CTRL-W) 和 [CTRL-U](https://yianwillis.github.io/vimcdoc/doc/scroll.html#CTRL-U) 退格也可以越过插入的 开始处。<br/>45. 置位 ['fsync'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fsync') 时同步撤销文件。<br/>46. 支持用 ['sessionoptions'](https://yianwillis.github.io/vimcdoc/doc/options.html#'sessionoptions') 的 "skiprtp" 从会话文件里排除 ['runtimepath'](https://yianwillis.github.io/vimcdoc/doc/options.html#'runtimepath') 和 ['packpath'](https://yianwillis.github.io/vimcdoc/doc/options.html#'packpath') 选项。<br/>47. 支持用 [getbufinfo()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#getbufinfo()) 获取缓冲区的行数。<br/>48. 支持 [filter()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#filter()) 和 [map()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#map()) 用于 blob 和字符串类型。<br/>49. 支持标签类型 (kind) 使用多字节字符。 [tags-file-format](https://yianwillis.github.io/vimcdoc/doc/tagsrch.html#tags-file-format) <br/>50. 新增用 [exists()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#exists()) 检查函数名是否合法的支持。<br/>51. 更新 xdiff 到版本 2.33。更新 libvterm 到修订版 789。<br/>52. 支持 'trim' 用于 Python/Lua/Perl/Tcl/Ruby/MzScheme 界面的 here 文档。<br/>53. 新增 [t_AU](https://yianwillis.github.io/vimcdoc/doc/term.html#t_AU) 和 [t_8u](https://yianwillis.github.io/vimcdoc/doc/term.html#t_8u) termcap 码以支持下划线和下曲。新增 t_fd 和 t_fe termcap 码以检测焦点事件。<br/>54. 支持像正常代码那样缩进 C 编译指示 (pragma)。( [cino-P](https://yianwillis.github.io/vimcdoc/doc/indent.html#cino-P) )<br/>55. 新增定义语法折叠级别的支持 ( [:syn-foldlevel](https://yianwillis.github.io/vimcdoc/doc/syntax.html#:syn-foldlevel) )<br/>56. 新增字符串中用 \<*xxx> 在字符前加上修饰符的支持。( [expr-quote](https://yianwillis.github.io/vimcdoc/doc/eval.html#expr-quote) )。<br/>57. 新增 trim() 在字符串头部或尾部裁剪字符的支持。<br/>58. 使 ":verbose pwd" 显示目录的作用域。 [:pwd-verbose](https://yianwillis.github.io/vimcdoc/doc/editing.html#:pwd-verbose) <br/>59. 新增指定八进制数的 "0o" 记法 [scriptversion-4](https://yianwillis.github.io/vimcdoc/doc/eval.html#scriptversion-4) <br/>60. 支持用 "tcd -" 和 "lcd -" 命令切换到上次局部于标签页和窗口的目录。( [:tcd-](https://yianwillis.github.io/vimcdoc/doc/editing.html#:tcd-) 和 [:lcd-](https://yianwillis.github.io/vimcdoc/doc/editing.html#:lcd-) )<br/>61. 新增用 [search()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#search()) 时跳过表达式的支持。<br/>62. 新增 [readdir()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#readdir()) 和 [readdirex()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#readdirex()) 函数返回的目录内容按大小写敏感或不敏感排序的 支持。<br/>63. 新增执行包含续行的寄存器 ( [: @](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:@) ) 的支持。<br/>64. Lua 支持:<br/><br/>- 从 Lua 里调用 Vim 函数 (vim.call() 和 vim.fn())。<br/>- 把 Lua 函数和闭包转换为 Vim 函数引用,以便在 Vimscript 里引用 ( [lua-funcref](https://yianwillis.github.io/vimcdoc/doc/if_lua.html#lua-funcref) )。<br/>- 后向不兼容: Lua 数组现在以一为基。<br/>- 新增在 Vim 列表上使用 table.insert() 和 table.remove() 函数的支持。<br/>- 支持用 vim.command() 运行多个 Ex-模式命令。 <br/>- 新增 vim.lua_version 以获取 Lua 版本。<br/>- 新增从 Lua 访问 Via 命名空间字典的支持 ( [lua-vim-variables](https://yianwillis.github.io/vimcdoc/doc/if_lua.html#lua-vim-variables) )。<br/><br/>65. 支持定义 [:command](https://yianwillis.github.io/vimcdoc/doc/map.html#:command) 或 [:autocmd](https://yianwillis.github.io/vimcdoc/doc/autocmd.html#:autocmd) 时使用命令块 ( [:command-repl](https://yianwillis.github.io/vimcdoc/doc/map.html#:command-repl) )。<br/>66. 支持 [: z!](https://yianwillis.github.io/vimcdoc/doc/various.html#:z!) ,使用 Vim 显示高度而不是当前窗口高度。<br/>67. 支持 ":delcommand -buffer {cmd}" 来删除局部于缓冲区的命令。<br/>68. 排版语句之后的 // 注释时,找到行注释的开始处,插入注释头然后正确缩进注释( [fo-/](https://yianwillis.github.io/vimcdoc/doc/change.html#fo-%2F) )。<br/>69. 新增 `:sign define` 的 "numhl" 参数,为标号放置行的行号使用单独的高亮组。[:sign-define](https://yianwillis.github.io/vimcdoc/doc/sign.html#:sign-define) <br/>70. $SHELL 以 "nologin" 或 "false" 结尾时,以受限模式启动 Vim。<br/>71. TermDebug 改进:<br/><br/>- 支持在单独窗口显示反汇编码。<br/>- 支持 GDB 的 until 命令。<br/>- 支持用于标号的单独组。<br/><br/>72. xxd: 支持以十进制显示位移 (-d)。<br/>73. C 全能补全插件 ( [ft-c-omni](https://yianwillis.github.io/vimcdoc/doc/insert.html#ft-c-omni))、文件类型检测脚本 (ft.vim) 和语法菜单生成脚本(makemenu.vim) 用 Vim9 脚本语法进行了改写。<br/>74. 支持 Unicode 版本 13 新的 UTF-8 字符。<br/>75. 新增编译时选项(./configure):<br/>--clean 清除任何个人配置(vimrc、插件等),用于vim原始配置以定位问题<br/>--startuptime {file} 在启动文件期间,将包含时间的日志消息写入文件{file}<br/>76. 新增vim 9脚本(Vim9-script),脚本的主要目标是大幅提高性能。Vim9-script具有新样式的函数写法,以及支持内建类型新的变量类型,详情见:[Vim9-script的用法,以及与老式脚本的差异说明](https://yianwillis.github.io/vimcdoc/doc/version9.html#new-vim-script-9)<br/>77. 新的色彩方案 :做了一些调整使许多类型的终端上体验保持一致。 详情见:[vim 9.0色彩方案说明](https://github.com/vim/colorschemes) | | | | 删除特性 | **删除/改动以下特性**:<br/> - Athena 和 neXTaw GUI 支持 (用 Motif 来代替)<br/> - EBCDIC 支持<br/> - Atari MiNT 和 BeOS<br/> - Mac Carbon GUI (用 MacVim 来代替) <br/> 后向不兼容: Lua 数组现在以一为基,过去以零为基。<br/> 使用 vim 9脚本(Vim9-script)与老式脚本时有若干不同,详情见:[ vim9-differences ](https://yianwillis.github.io/vimcdoc/doc/vim9.html#vim9-differences)<br/> | 不兼容部分,升级后用户需要基本高版本适配修改代码 | | | | | | | 配置文件 | 新增/变更/删除配置项 | 1. 编译时所有构造版本现在都打开以下特性:<br/> [+cindent](https://yianwillis.github.io/vimcdoc/doc/various.html#+cindent) [+jumplist](https://yianwillis.github.io/vimcdoc/doc/various.html#+jumplist) [+lispindent](https://yianwillis.github.io/vimcdoc/doc/various.html#+lispindent) [+num64](https://yianwillis.github.io/vimcdoc/doc/various.html#+num64) [+smartindent](https://yianwillis.github.io/vimcdoc/doc/various.html#+smartindent) [+tag_binary](https://yianwillis.github.io/vimcdoc/doc/various.html#+tag_binary) [+title](https://yianwillis.github.io/vimcdoc/doc/various.html#+title)<br/>2. vim-minimal包新增vimrc的默认配置文件(defaults.vim) | | | | | | | | API差异/ABI差异 | 新增/变更/删除API | **新增函数及其扩展功能函数:**<br/>assert_nobeep() 断言命令不会响铃<br/>autocmd_add() 新增一组自动命令和组<br/>autocmd_delete() 删除一组自动命令和组<br/>autocmd_get() 返回自动命令的列表<br/>blob2list() 返回 blob 对应的数值列表<br/>charclass() 字符类<br/>charcol() 光标或位置标记的字符数 (译者注: 应为列号)<br/>charidx() 字符串里某字节的字符索引<br/>digraph_get() 得到二合字母<br/>digraph_getlist() 得到所有二合字母<br/>digraph_set() 注册二合字母<br/>digraph_setlist() 注册多个二合字母<br/>echoraw() 照原样输出字符<br/>exists() 检查函数名是否合法的支持。<br/>exists_compiled() 类似于 exists() 但在编译时检查<br/>extendnew() 创建新字典并附加项目<br/>flatten() 展平列表<br/>flattennew() 展平列表的备份<br/>fullcommand() 得到完整命令名<br/>getcharpos() 得到光标、位置标记等的字符位置<br/>getcharstr() 从用户处得到一个字符,以字符串形式返回<br/>getcmdcompltype() 返回当前命令行补全类型<br/>getcmdscreenpos() 返回命令行的当前光标位置<br/>getcursorcharpos() 得到光标的字符位置<br/>getmarklist() 全局/局部位置标记的列表<br/>getreginfo() 得到寄存器的信息<br/>gettext() 查找信息翻译<br/>hlget() 得到高亮组的属性<br/>hlset() 设置高亮组的属性<br/>isabsolutepath() 检查路径是否绝对路径<br/>list2blob() 从数值列表中还原为 blob<br/>maplist() 所有映射的列表,每项为一个字典<br/>mapnew() 用经过改变的项目创建新列表<br/>mapset() 恢复映射<br/>matchfuzzy() 在字符串列表中模糊匹配字符串<br/>matchfuzzypos() 在字符串列表中模糊匹配字符串<br/>menu_info() 得到菜单项的信息<br/>popup_list() 得到所有弹出窗口 ID 的列表<br/>prompt_getprompt() 得到缓冲区的实际提示文本<br/>prop_add_list() 在多个位置附属文本属性<br/>prop_find() 搜索文本属性<br/>readblob() 读取文件到 blob<br/>readdirex() 得到文件信息列表,每项是一个字典<br/>reduce() 缩减列表到一个值<br/>search() 跳过表达式的支持。<br/>searchcount() 得到光标前/后的匹配数目<br/>setcellwidths() 设置字符单元宽度覆盖<br/>setcharpos() 设置光标、位置标记等的字符位置<br/>setcursorcharpos() 设置光标的字符位置<br/>slice() 得到列表的切片<br/>strcharlen() 字符串以字符计算的长度<br/>terminalprops() 终端属性<br/>test_gui_event() 生成 GUI 事件,测试用<br/>test_null_function() 返回 null funcref<br/>test_srand_seed() 设置 srand() 的种子值<br/>test_unknown() 返回未知类型的值<br/>test_void() 返回 void 类型的值<br/>typename() 变量类型,以文本返回<br/>virtcol2col() 屏幕上字符的字节索引<br/>win_gettype() 得到窗口类型<br/>win_move_separator() 移动窗口垂直分割符<br/>win_move_statusline() 移动窗口状态行<br/>windowsversion() 得到 MS-Windows 版本<br/> | | | | 新增/变更/删除宏变量 | **新增vim变量**<br/>v:numbermax 数值的最大值<br/>v:numbermin 数值的最小值 (负数)<br/>v:numbersize 数值的位数<br/>v:collate 当前 locale 设置的排序规则<br/>v:exiting vim 退出代码<br/>v:colornames 映射色彩名到十六制色彩字符串的字典<br/>v:sizeofint int 的位数<br/>v:sizeoflong long 的位数<br/>v:sizeofpointer 指针的字节数<br/>v:maxcol 最大行长 | | | | ABI差异 | 经过对比vim 8.2与vim 9.0无 ABI差异 | | | | | | | | 命令行/功能 | 新增/变更/删除命令 | **新增Ex命令:**<br/>:argdedupe 删除参数列表中的重复项目<br/>:balt 类似于 ":badd" 但同时设置轮换文件<br/>:def 定义 Vim9 用户函数<br/>:defcompile 在当前脚本编译 Vim9 用户函数<br/>:disassemble 反汇编 Vim9 用户函数<br/>:echoconsole 类似于:echomsg, 但写入标准输出<br/>:enddef :def 开始的用户函数的结束<br/>:eval 计算表达式并丢弃结果<br/>:export Vim9: 从脚本导出项目<br/>:final Vim9 的不可变变量声明<br/>:import Vim9: 从另一脚本导入项目<br/>:var Vim9 的变量声明<br/>:vim9script 指示 Vim9 脚本文件<br/>新增可视模式下的 'P' 命令,在可视模式下粘贴文本而不把删除文本抽出到无名寄存器。 [put-Visual-mode ](https://yianwillis.github.io/vimcdoc/doc/change.html#put-Visual-mode) <br/>新增 zp 和 zP ,在列块模式下粘贴而不带拖尾空白。<br/>新增 zy ,在列块模式下抽出时不带拖尾空白。<br/>:legacy 使其后一个命令使用老式脚本语法<br/>:vim9cmd 使其后一个命令使用 Vim9 脚本语法<br/>**新增自动命令事件**<br/>CompleteDonePre 插入模式补全完成后,清除信息前<br/>DirChangedPre 切换工作目录前<br/>InsertLeavePre 刚刚离开插入模式前<br/>ModeChanged 切换模式后<br/>SigUSR1 检测到 SIGUSR1 信号后<br/>WinClosed 关闭窗口后<br/>WinScrolled 滚动窗口或改变窗口大小后<br/>VimSuspend 暂停 Vim 时<br/>VimResume Vim 暂停后继续运行时<br/>**新增操作符:**<br/>>> 按位右移<br/><< 按位左移<br/>?? 准假值操作符<br/> | | | | 新增/变更/删除命令选项 | **新增选项如下**:<br/> ['autoshelldir'](https://yianwillis.github.io/vimcdoc/doc/options.html#'autoshelldir') 切换目录为外壳的当前目录<br/> ['cdhome'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cdhome') ":cd" 切换目录为主目录<br/> ['cinscopedecls'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cinscopedecls') 'cino-g' 识别的单词 <br/>['guiligatures'](https://yianwillis.github.io/vimcdoc/doc/options.html#'guiligatures') GTK GUI: 可以构成字形的 ASCII 字符 <br/>['mousemoveevent'](https://yianwillis.github.io/vimcdoc/doc/options.html#'mousemoveevent') 用 `<MouseMove>` 报告鼠标移动<br/> ['quickfixtextfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'quickfixtextfunc') 用于快速修复窗口中文本的函数<br/> ['spelloptions'](https://yianwillis.github.io/vimcdoc/doc/options.html#'spelloptions') 拼写检查选项<br/> ['thesaurusfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'thesaurusfunc') 用于同义词补全的函数<br/> ['xtermcodes'](https://yianwillis.github.io/vimcdoc/doc/options.html#'xtermcodes') 从 xterm 中请求终端代码 <br/> | | | | 新增/变更/删除日志输出 | | | | | | | | | SPEC文件 | 新增/变更/删除 编译依赖、安装依赖、依赖的软件版本变更 | 1、新增make编译依赖。<br/>2、构建前删除ipv6相关的CI测试test_channel.*。<br/>3、vim-common子包新增打包import/dist/vimhelp.vim文件,和/tr,/tr.ISO8859-9,/tr.UTF-8目录下的土耳其语man手册文件。<br/>4、vim-minimal子包新增打包默认的vimrc配置文件(defaults.vim)。 | | | | 拆分软件包方式变更 | | | | | | | |
| 差异分析报告 | | | | | :----------- | ----------------------------------------------------- | -------- | ------------------ | | 版本变更原因 | 选取社区最新稳定版本 | 变更后版本 | vim 9.0.0000 | | 差异分类 | 差异项 | 差异说明 | 影响评估与适配方案 | | 特性变化 | 新增特性 | 1. 支持在字符串内部计算 Vim 表达式。 [interp-string](https://yianwillis.github.io/vimcdoc/doc/eval.html#interp-string)<br/> 支持在 heredoc 内部计算 Vim 表达式。 : [let-heredoc](https://yianwillis.github.io/vimcdoc/doc/eval.html#interp-string) <br/><br/>2. 支持模糊匹配:<br/><br/>- 字符串列表中查找字符串。 [fuzzy-matching](https://yianwillis.github.io/vimcdoc/doc/pattern.html#fuzzy-matching)<br/>- 用 ['wildoptions'](https://yianwillis.github.io/vimcdoc/doc/options.html#'wildoptions') 进行命令行补全的补全支持<br/>- 用于 :[vimgrep](https://yianwillis.github.io/vimcdoc/doc/quickfix.html#:vimgrep) 。<br/><br/>3. 增加 [Haiku](https://yianwillis.github.io/vimcdoc/doc/os_haiku.html#Haiku) OS 的支持。<br/>4. 支持 "lsp" 通道模式以简化 LSP 服务器 RPC 通信 [ language-server-protocol](https://yianwillis.github.io/vimcdoc/doc/channel.html#language-server-protocol) 。<br/>5. 支持 [channel](https://yianwillis.github.io/vimcdoc/doc/channel.html#channel) 中使用 Unix 域套接字。<br/>6. 通道的 IPv6 支持 [channel-address](https://yianwillis.github.io/vimcdoc/doc/channel.html#channel-address)。<br/>7. 支持执行当前缓冲区上的行。 [:source-range](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:source-range)<br/>8. 终端窗口改进:<br/><br/>- 支持在弹出窗口中打开终端。 [popup-terminal](https://yianwillis.github.io/vimcdoc/doc/popup.html#popup-terminal)<br/>- 支持终端设置下划线色彩。<br/>- 检测终端的焦点事件 ( [FocusGained](https://yianwillis.github.io/vimcdoc/doc/autocmd.html#FocusGained) 和 [FocusLost](https://yianwillis.github.io/vimcdoc/doc/autocmd.html#FocusLost) )。<br/>- 为终端窗口增加响铃支持。('[belloff](https://yianwillis.github.io/vimcdoc/doc/options.html#'belloff')')<br/>- 终端窗口中支持鼠标左右滚动。<br/><br/>9. 支持停止 Vim 脚本的剖视: `:profile stop` 和写入报告到文件: `:profile dump` <br/> [:profile](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:profile) <br/>10. 补全改进:<br/><br/>- \- [:breakadd](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:breakadd) 、 [:breakdel](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:breakdel) 、 [:diffget](https://yianwillis.github.io/vimcdoc/doc/diff.html#:diffget) 、 [:diffput](https://yianwillis.github.io/vimcdoc/doc/diff.html#:diffput) 、 [:profile](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:profile) 、 [:profdel](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:profdel) 和 [:scriptnames](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:scriptnames) 命令的参数补全支持。<br/>- 补全函数中支持使用任何 Vim 类型的 user_data ( [complete-items](https://yianwillis.github.io/vimcdoc/doc/insert.html#complete-items) )。<br/>- 停止插入模式补全且不改变文本 ( [i_CTRL-X_CTRL-Z](https://yianwillis.github.io/vimcdoc/doc/insert.html#i_CTRL-X_CTRL-Z) )。<br/>- 加入 [getcompletion()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#getcompletion()) 的 "cmdline" 选项以返回命令行参数。<br/><br/>11. 支持设置 ['foldtext'](https://yianwillis.github.io/vimcdoc/doc/options.html#'foldtext')、['completefunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'completefunc')、['omnifunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'omnifunc'), ['operatorfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'operatorfunc')、 ['thesaurusfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'thesaurusfunc')、['quickfixtextfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'quickfixtextfunc')、['tagfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'tagfunc'), ['imactivatefunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'imactivatefunc') 和 ['imstatusfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'imstatusfunc') 选项为函数引用或匿名函数或局部于脚本的函数。<br/>12. 支持直接设置 ['balloonexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'balloonexpr')、['charconvert'](https://yianwillis.github.io/vimcdoc/doc/options.html#'charconvert') ['foldexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'foldexpr'), ['formatexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'formatexpr')、 ['includeexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'includeexpr')、['printexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'printexpr')、['patchexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'patchexpr')、['indentexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'indentexpr'), ['modelineexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'modelineexpr')、 ['diffexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'diffexpr') 和 ['printexpr'](https://yianwillis.github.io/vimcdoc/doc/options.html#'printexpr') 选项为局部于脚本的函数。<br/>13. ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 的改进:<br/><br/>- 支持配置用于标记折叠开始、显示关闭折叠和显示折叠分割符的字符,分别用 ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 里的 "foldopen"、"foldclose" 和 "foldsep"。 <br/>- 支持配置代表不存在行的显示字符,用 ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 里的 "eob"。<br/>- ['fillchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fillchars') 选项里的 "stl"、"stlnc"、"foldopen"、"foldclose" 和 "foldsep" 项 目支持使用多字节。 <br/><br/>14. 支持 XChaCha20 加密方法。['cryptmethod'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cryptmethod')<br/>15. 拼写检查:<br/><br/>- 即使 ['spell'](https://yianwillis.github.io/vimcdoc/doc/options.html#'spell') 关闭,也可用 z= 来为当前单词进行拼写检查。<br/>- 为 ['spellsuggest' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'spellsuggest')加上 "timeout" 以限制拼写建议的搜索时间。<br/>- 新增支持,为[ 'spelloptions' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'spelloptions')加上 "camel" 可对驼峰式大小写单词进行拼写检查。<br/><br/>16. 支持在映射里执行 Ex 命令而不改变当前模式 [<Cmd>](https://yianwillis.github.io/vimcdoc/doc/map.html#%3CCmd%3E) 和 [<ScriptCmd>](https://yianwillis.github.io/vimcdoc/doc/map.html#%3CScriptCmd%3E) 。<br/>17. [ 'nrformats' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'nrformats')里置位 "unsigned" 时识别数值为无符号数。<br/>18. [:cquit](https://yianwillis.github.io/vimcdoc/doc/quickfix.html#:cquit) 新增可选错误码。<br/>19. 用 [g<Tab>](https://yianwillis.github.io/vimcdoc/doc/tabpage.html#g%3CTab%3E) 跳转到最近访问的标签页, [:tabnext](https://yianwillis.github.io/vimcdoc/doc/tabpage.html#:tabnext) 等命令支持最近访问的标签页。<br/>20. 用 expand('<SID>') 来扩展脚本 ID,用 expand('<script>') 来扩展脚本名。[expand()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#expand())<br/>21. [:sort](https://yianwillis.github.io/vimcdoc/doc/change.html#:sort) 和 [sort()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#sort()) 支持 locale 敏感的排序。<br/>22. 用 [ :sleep!](https://yianwillis.github.io/vimcdoc/doc/various.html#:sleep!) 睡眠时隐藏光标。<br/>23. 新增 ['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 的 "multispace" 以显示在任何地方出现的两个或多个空格。<br/>24. 新增['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 的 "leadmultispace" 以显示两个或多个引导空格。<br/>25. 新增 ['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 的 "lead" 以设置用于显示引导空格的字符。<br/>26. 支持 ['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') 里指定字符时使用十六进制记法 (\x, \u and \U)。<br/>27. 使['listchars'](https://yianwillis.github.io/vimcdoc/doc/options.html#'listchars') , ['virtualedit'](https://yianwillis.github.io/vimcdoc/doc/options.html#'virtualedit') and ['thesaurusfunc' ](https://yianwillis.github.io/vimcdoc/doc/options.html#'thesaurusfunc')成为全局-局部选项。<br/>28. 支持用 [:for](https://yianwillis.github.io/vimcdoc/doc/eval.html#:for) 遍历字符串内容。<br/>29. ['diffopt'](https://yianwillis.github.io/vimcdoc/doc/options.html#'diffopt') 里置位 "followwrap" 时比较窗口不复位 ['wrap'](https://yianwillis.github.io/vimcdoc/doc/options.html#'wrap')。<br/>30. 支持 ['statusline'](https://yianwillis.github.io/vimcdoc/doc/options.html#'statusline') 表达式结果当作状态行格式字符串重新计算 (%{% expr %})<br/>31. 新增 [zp](https://yianwillis.github.io/vimcdoc/doc/change.html#zp) 和 [ zP](https://yianwillis.github.io/vimcdoc/doc/change.html#zP) ,在列块模式下粘贴而不带拖尾空白。<br/>32. 新增 [zy](https://yianwillis.github.io/vimcdoc/doc/change.html#zy) ,在列块模式下抽出时不带拖尾空白。<br/>33. 新增可视模式下的 'P' 命令,在可视模式下粘贴文本而不把删除文本抽出到无名寄存器。 [put-Visual-mode ](https://yianwillis.github.io/vimcdoc/doc/change.html#put-Visual-mode)<br/>34. 新增 \%.l、\%<.l 和 \%>.l 匹配原以匹配光标所在行。详见 [ /\%l](https://yianwillis.github.io/vimcdoc/doc/pattern.html#%2F\%l) 。<br/>35. 新增 ['breakindentopt'](https://yianwillis.github.io/vimcdoc/doc/options.html#'breakindentopt') 的 "list" 来为编号或无编号列表提供额外缩进。新增['breakindentopt'](https://yianwillis.github.io/vimcdoc/doc/options.html#'breakindentopt') 的 "column" 使软回绕行缩进到指定列。<br/>36. 新增 [hl-CursorLineSign](https://yianwillis.github.io/vimcdoc/doc/syntax.html#hl-CursorLineSign) 和 [hl-CursorLineFold](https://yianwillis.github.io/vimcdoc/doc/syntax.html#hl-CursorLineFold) 缺省高亮组以调整用于 ['cursorline'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cursorline') 的标号高亮。<br/>37. 新增 [hl-CurSearch](https://yianwillis.github.io/vimcdoc/doc/syntax.html#hl-CurSearch) 缺省高亮组用于当前搜索匹配。<br/>38. 新增 Vim 启动时记录的支持 ( [--log](https://yianwillis.github.io/vimcdoc/doc/starting.html#--log) )。<br/>39. 新增用 ['quickfixtextfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'quickfixtextfunc') 定制快速修复缓冲区内容的支持。<br/>40. 支持 errorformat 的 "note" 错误类型 (%t)。<br/>41. 新增 ['errorformat'](https://yianwillis.github.io/vimcdoc/doc/options.html#'errorformat') 解析结束行号 (%e) 和 结束列号 (%k) 的支持。<br/>42. 支持 [settagstack()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#settagstack()) 裁短标签栈。<br/>43. [:set](https://yianwillis.github.io/vimcdoc/doc/options.html#:set) 带 "!" 在单独行显示每个选项。<br/>44. 新增 ['backspace'](https://yianwillis.github.io/vimcdoc/doc/options.html#'backspace') 的 "nostop" 以允许 [CTRL-W](https://yianwillis.github.io/vimcdoc/doc/index.html#CTRL-W) 和 [CTRL-U](https://yianwillis.github.io/vimcdoc/doc/scroll.html#CTRL-U) 退格也可以越过插入的 开始处。<br/>45. 置位 ['fsync'](https://yianwillis.github.io/vimcdoc/doc/options.html#'fsync') 时同步撤销文件。<br/>46. 支持用 ['sessionoptions'](https://yianwillis.github.io/vimcdoc/doc/options.html#'sessionoptions') 的 "skiprtp" 从会话文件里排除 ['runtimepath'](https://yianwillis.github.io/vimcdoc/doc/options.html#'runtimepath') 和 ['packpath'](https://yianwillis.github.io/vimcdoc/doc/options.html#'packpath') 选项。<br/>47. 支持用 [getbufinfo()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#getbufinfo()) 获取缓冲区的行数。<br/>48. 支持 [filter()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#filter()) 和 [map()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#map()) 用于 blob 和字符串类型。<br/>49. 支持标签类型 (kind) 使用多字节字符。 [tags-file-format](https://yianwillis.github.io/vimcdoc/doc/tagsrch.html#tags-file-format) <br/>50. 新增用 [exists()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#exists()) 检查函数名是否合法的支持。<br/>51. 更新 xdiff 到版本 2.33。更新 libvterm 到修订版 789。<br/>52. 支持 'trim' 用于 Python/Lua/Perl/Tcl/Ruby/MzScheme 界面的 here 文档。<br/>53. 新增 [t_AU](https://yianwillis.github.io/vimcdoc/doc/term.html#t_AU) 和 [t_8u](https://yianwillis.github.io/vimcdoc/doc/term.html#t_8u) termcap 码以支持下划线和下曲。新增 t_fd 和 t_fe termcap 码以检测焦点事件。<br/>54. 支持像正常代码那样缩进 C 编译指示 (pragma)。( [cino-P](https://yianwillis.github.io/vimcdoc/doc/indent.html#cino-P) )<br/>55. 新增定义语法折叠级别的支持 ( [:syn-foldlevel](https://yianwillis.github.io/vimcdoc/doc/syntax.html#:syn-foldlevel) )<br/>56. 新增字符串中用 \<*xxx> 在字符前加上修饰符的支持。( [expr-quote](https://yianwillis.github.io/vimcdoc/doc/eval.html#expr-quote) )。<br/>57. 新增 trim() 在字符串头部或尾部裁剪字符的支持。<br/>58. 使 ":verbose pwd" 显示目录的作用域。 [:pwd-verbose](https://yianwillis.github.io/vimcdoc/doc/editing.html#:pwd-verbose) <br/>59. 新增指定八进制数的 "0o" 记法 [scriptversion-4](https://yianwillis.github.io/vimcdoc/doc/eval.html#scriptversion-4) <br/>60. 支持用 "tcd -" 和 "lcd -" 命令切换到上次局部于标签页和窗口的目录。( [:tcd-](https://yianwillis.github.io/vimcdoc/doc/editing.html#:tcd-) 和 [:lcd-](https://yianwillis.github.io/vimcdoc/doc/editing.html#:lcd-) )<br/>61. 新增用 [search()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#search()) 时跳过表达式的支持。<br/>62. 新增 [readdir()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#readdir()) 和 [readdirex()](https://yianwillis.github.io/vimcdoc/doc/builtin.html#readdirex()) 函数返回的目录内容按大小写敏感或不敏感排序的 支持。<br/>63. 新增执行包含续行的寄存器 ( [: @](https://yianwillis.github.io/vimcdoc/doc/repeat.html#:@) ) 的支持。<br/>64. Lua 支持:<br/><br/>- 从 Lua 里调用 Vim 函数 (vim.call() 和 vim.fn())。<br/>- 把 Lua 函数和闭包转换为 Vim 函数引用,以便在 Vimscript 里引用 ( [lua-funcref](https://yianwillis.github.io/vimcdoc/doc/if_lua.html#lua-funcref) )。<br/>- 后向不兼容: Lua 数组现在以一为基。<br/>- 新增在 Vim 列表上使用 table.insert() 和 table.remove() 函数的支持。<br/>- 支持用 vim.command() 运行多个 Ex-模式命令。 <br/>- 新增 vim.lua_version 以获取 Lua 版本。<br/>- 新增从 Lua 访问 Via 命名空间字典的支持 ( [lua-vim-variables](https://yianwillis.github.io/vimcdoc/doc/if_lua.html#lua-vim-variables) )。<br/><br/>65. 支持定义 [:command](https://yianwillis.github.io/vimcdoc/doc/map.html#:command) 或 [:autocmd](https://yianwillis.github.io/vimcdoc/doc/autocmd.html#:autocmd) 时使用命令块 ( [:command-repl](https://yianwillis.github.io/vimcdoc/doc/map.html#:command-repl) )。<br/>66. 支持 [: z!](https://yianwillis.github.io/vimcdoc/doc/various.html#:z!) ,使用 Vim 显示高度而不是当前窗口高度。<br/>67. 支持 ":delcommand -buffer {cmd}" 来删除局部于缓冲区的命令。<br/>68. 排版语句之后的 // 注释时,找到行注释的开始处,插入注释头然后正确缩进注释( [fo-/](https://yianwillis.github.io/vimcdoc/doc/change.html#fo-%2F) )。<br/>69. 新增 `:sign define` 的 "numhl" 参数,为标号放置行的行号使用单独的高亮组。[:sign-define](https://yianwillis.github.io/vimcdoc/doc/sign.html#:sign-define) <br/>70. $SHELL 以 "nologin" 或 "false" 结尾时,以受限模式启动 Vim。<br/>71. TermDebug 改进:<br/><br/>- 支持在单独窗口显示反汇编码。<br/>- 支持 GDB 的 until 命令。<br/>- 支持用于标号的单独组。<br/><br/>72. xxd: 支持以十进制显示位移 (-d)。<br/>73. C 全能补全插件 ( [ft-c-omni](https://yianwillis.github.io/vimcdoc/doc/insert.html#ft-c-omni))、文件类型检测脚本 (ft.vim) 和语法菜单生成脚本(makemenu.vim) 用 Vim9 脚本语法进行了改写。<br/>74. 支持 Unicode 版本 13 新的 UTF-8 字符。<br/>75. 新增编译时选项(./configure):<br/>--clean 清除任何个人配置(vimrc、插件等),用于vim原始配置以定位问题<br/>--startuptime {file} 在启动文件期间,将包含时间的日志消息写入文件{file}<br/>76. 新增vim 9脚本(Vim9-script),脚本的主要目标是大幅提高性能。Vim9-script具有新样式的函数写法,以及支持内建类型新的变量类型,详情见:[Vim9-script的用法,以及与老式脚本的差异说明](https://yianwillis.github.io/vimcdoc/doc/version9.html#new-vim-script-9)<br/>77. 新的色彩方案 :做了一些调整使许多类型的终端上体验保持一致。 详情见:[vim 9.0色彩方案说明](https://github.com/vim/colorschemes) | | | | 删除特性 | **删除/改动以下特性**:<br/> - Athena 和 neXTaw GUI 支持 (用 Motif 来代替)<br/> - EBCDIC 支持<br/> - Atari MiNT 和 BeOS<br/> - Mac Carbon GUI (用 MacVim 来代替) <br/> 后向不兼容: Lua 数组现在以一为基,过去以零为基。<br/> 使用 vim 9脚本(Vim9-script)与老式脚本时有若干不同,详情见:[ vim9-differences ](https://yianwillis.github.io/vimcdoc/doc/vim9.html#vim9-differences)<br/> | 不兼容部分,升级后用户需要基本高版本适配修改代码 | | | | | | | 配置文件 | 新增/变更/删除配置项 | 1. 编译时所有构造版本现在都打开以下特性:<br/> [+cindent](https://yianwillis.github.io/vimcdoc/doc/various.html#+cindent) [+jumplist](https://yianwillis.github.io/vimcdoc/doc/various.html#+jumplist) [+lispindent](https://yianwillis.github.io/vimcdoc/doc/various.html#+lispindent) [+num64](https://yianwillis.github.io/vimcdoc/doc/various.html#+num64) [+smartindent](https://yianwillis.github.io/vimcdoc/doc/various.html#+smartindent) [+tag_binary](https://yianwillis.github.io/vimcdoc/doc/various.html#+tag_binary) [+title](https://yianwillis.github.io/vimcdoc/doc/various.html#+title)<br/>2. vim-minimal包新增vimrc的默认配置文件(defaults.vim) | | | | | | | | API差异/ABI差异 | 新增/变更/删除API | **新增函数及其扩展功能函数:**<br/>assert_nobeep() 断言命令不会响铃<br/>autocmd_add() 新增一组自动命令和组<br/>autocmd_delete() 删除一组自动命令和组<br/>autocmd_get() 返回自动命令的列表<br/>blob2list() 返回 blob 对应的数值列表<br/>charclass() 字符类<br/>charcol() 光标或位置标记的字符数 (译者注: 应为列号)<br/>charidx() 字符串里某字节的字符索引<br/>digraph_get() 得到二合字母<br/>digraph_getlist() 得到所有二合字母<br/>digraph_set() 注册二合字母<br/>digraph_setlist() 注册多个二合字母<br/>echoraw() 照原样输出字符<br/>exists() 检查函数名是否合法的支持。<br/>exists_compiled() 类似于 exists() 但在编译时检查<br/>extendnew() 创建新字典并附加项目<br/>flatten() 展平列表<br/>flattennew() 展平列表的备份<br/>fullcommand() 得到完整命令名<br/>getcharpos() 得到光标、位置标记等的字符位置<br/>getcharstr() 从用户处得到一个字符,以字符串形式返回<br/>getcmdcompltype() 返回当前命令行补全类型<br/>getcmdscreenpos() 返回命令行的当前光标位置<br/>getcursorcharpos() 得到光标的字符位置<br/>getmarklist() 全局/局部位置标记的列表<br/>getreginfo() 得到寄存器的信息<br/>gettext() 查找信息翻译<br/>hlget() 得到高亮组的属性<br/>hlset() 设置高亮组的属性<br/>isabsolutepath() 检查路径是否绝对路径<br/>list2blob() 从数值列表中还原为 blob<br/>maplist() 所有映射的列表,每项为一个字典<br/>mapnew() 用经过改变的项目创建新列表<br/>mapset() 恢复映射<br/>matchfuzzy() 在字符串列表中模糊匹配字符串<br/>matchfuzzypos() 在字符串列表中模糊匹配字符串<br/>menu_info() 得到菜单项的信息<br/>popup_list() 得到所有弹出窗口 ID 的列表<br/>prompt_getprompt() 得到缓冲区的实际提示文本<br/>prop_add_list() 在多个位置附属文本属性<br/>prop_find() 搜索文本属性<br/>readblob() 读取文件到 blob<br/>readdirex() 得到文件信息列表,每项是一个字典<br/>reduce() 缩减列表到一个值<br/>search() 跳过表达式的支持。<br/>searchcount() 得到光标前/后的匹配数目<br/>setcellwidths() 设置字符单元宽度覆盖<br/>setcharpos() 设置光标、位置标记等的字符位置<br/>setcursorcharpos() 设置光标的字符位置<br/>slice() 得到列表的切片<br/>strcharlen() 字符串以字符计算的长度<br/>terminalprops() 终端属性<br/>test_gui_event() 生成 GUI 事件,测试用<br/>test_null_function() 返回 null funcref<br/>test_srand_seed() 设置 srand() 的种子值<br/>test_unknown() 返回未知类型的值<br/>test_void() 返回 void 类型的值<br/>typename() 变量类型,以文本返回<br/>virtcol2col() 屏幕上字符的字节索引<br/>win_gettype() 得到窗口类型<br/>win_move_separator() 移动窗口垂直分割符<br/>win_move_statusline() 移动窗口状态行<br/>windowsversion() 得到 MS-Windows 版本<br/> | | | | 新增/变更/删除宏变量 | **新增vim变量**<br/>v:numbermax 数值的最大值<br/>v:numbermin 数值的最小值 (负数)<br/>v:numbersize 数值的位数<br/>v:collate 当前 locale 设置的排序规则<br/>v:exiting vim 退出代码<br/>v:colornames 映射色彩名到十六制色彩字符串的字典<br/>v:sizeofint int 的位数<br/>v:sizeoflong long 的位数<br/>v:sizeofpointer 指针的字节数<br/>v:maxcol 最大行长 | | | | ABI差异 | 经过对比vim 8.2与vim 9.0无 ABI差异 | | | | | | | | 命令行/功能 | 新增/变更/删除命令 | **新增Ex命令:**<br/>:argdedupe 删除参数列表中的重复项目<br/>:balt 类似于 ":badd" 但同时设置轮换文件<br/>:def 定义 Vim9 用户函数<br/>:defcompile 在当前脚本编译 Vim9 用户函数<br/>:disassemble 反汇编 Vim9 用户函数<br/>:echoconsole 类似于:echomsg, 但写入标准输出<br/>:enddef :def 开始的用户函数的结束<br/>:eval 计算表达式并丢弃结果<br/>:export Vim9: 从脚本导出项目<br/>:final Vim9 的不可变变量声明<br/>:import Vim9: 从另一脚本导入项目<br/>:var Vim9 的变量声明<br/>:vim9script 指示 Vim9 脚本文件<br/>新增可视模式下的 'P' 命令,在可视模式下粘贴文本而不把删除文本抽出到无名寄存器。 [put-Visual-mode ](https://yianwillis.github.io/vimcdoc/doc/change.html#put-Visual-mode) <br/>新增 zp 和 zP ,在列块模式下粘贴而不带拖尾空白。<br/>新增 zy ,在列块模式下抽出时不带拖尾空白。<br/>:legacy 使其后一个命令使用老式脚本语法<br/>:vim9cmd 使其后一个命令使用 Vim9 脚本语法<br/>**新增自动命令事件**<br/>CompleteDonePre 插入模式补全完成后,清除信息前<br/>DirChangedPre 切换工作目录前<br/>InsertLeavePre 刚刚离开插入模式前<br/>ModeChanged 切换模式后<br/>SigUSR1 检测到 SIGUSR1 信号后<br/>WinClosed 关闭窗口后<br/>WinScrolled 滚动窗口或改变窗口大小后<br/>VimSuspend 暂停 Vim 时<br/>VimResume Vim 暂停后继续运行时<br/>**新增操作符:**<br/>>> 按位右移<br/><< 按位左移<br/>?? 准假值操作符<br/> | | | | 新增/变更/删除命令选项 | **新增选项如下**:<br/> ['autoshelldir'](https://yianwillis.github.io/vimcdoc/doc/options.html#'autoshelldir') 切换目录为外壳的当前目录<br/> ['cdhome'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cdhome') ":cd" 切换目录为主目录<br/> ['cinscopedecls'](https://yianwillis.github.io/vimcdoc/doc/options.html#'cinscopedecls') 'cino-g' 识别的单词 <br/>['guiligatures'](https://yianwillis.github.io/vimcdoc/doc/options.html#'guiligatures') GTK GUI: 可以构成字形的 ASCII 字符 <br/>['mousemoveevent'](https://yianwillis.github.io/vimcdoc/doc/options.html#'mousemoveevent') 用 `<MouseMove>` 报告鼠标移动<br/> ['quickfixtextfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'quickfixtextfunc') 用于快速修复窗口中文本的函数<br/> ['spelloptions'](https://yianwillis.github.io/vimcdoc/doc/options.html#'spelloptions') 拼写检查选项<br/> ['thesaurusfunc'](https://yianwillis.github.io/vimcdoc/doc/options.html#'thesaurusfunc') 用于同义词补全的函数<br/> ['xtermcodes'](https://yianwillis.github.io/vimcdoc/doc/options.html#'xtermcodes') 从 xterm 中请求终端代码 <br/> | | | | 新增/变更/删除日志输出 | | | | | | | | | SPEC文件 | 新增/变更/删除 编译依赖、安装依赖、依赖的软件版本变更 | 1、新增make编译依赖。<br/>2、构建前删除ipv6相关的CI测试test_channel.*。<br/>3、vim-common子包新增打包import/dist/vimhelp.vim文件,和/tr,/tr.ISO8859-9,/tr.UTF-8目录下的土耳其语man手册文件。<br/>4、vim-minimal子包新增打包默认的vimrc配置文件(defaults.vim)。 | | | | 拆分软件包方式变更 | | | | | | | |
评论 (
16
)
登录
后才可以发表评论
状态
已完成
待办的
进行中
已完成
已拒绝
负责人
未设置
标签
sig/Base-service
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (29)
标签 (46)
master
openEuler-24.03-LTS-SP1
openEuler-24.03-LTS-Next
openEuler-24.03-LTS
openEuler-24.03-LTS-SP2
openEuler-25.09
openEuler-22.03-LTS-SP3
openEuler-22.03-LTS-SP4
openEuler-20.03-LTS-SP4
openEuler-25.03
openEuler-22.03-LTS-SP1
openEuler-24.09
openEuler-20.03-LTS-SP1
openEuler-22.03-LTS
openEuler-22.03-LTS-Next
openEuler-22.03-LTS-SP2
openEuler-20.03-LTS-SP3
openEuler-23.09
openEuler-23.03
openEuler-22.09
sync-pr325-master-to-openEuler-22.09
openEuler-21.09
openEuler-20.03-LTS-SP2
openEuler-20.03-LTS
openEuler-20.03-LTS-Next
openEuler-21.03
openEuler-20.09
openEuler1.0-base
openEuler1.0
openEuler-25.09-release
openEuler-20.03-LTS-SP4-update-20250808
openEuler-24.03-LTS-update-20250808
openEuler-24.03-LTS-SP1-update-20250808
openEuler-22.03-LTS-SP3-update-20250801
openEuler-22.03-LTS-SP4-update-20250801
openEuler-24.03-LTS-SP2-update-20250801
openEuler-24.03-LTS-SP2-release
openEuler-25.03-release
openEuler-20.03-LTS-SP4-update-20250329
openEuler-22.03-LTS-SP4-update-20250329
openEuler-22.03-LTS-SP3-update-20250329
openEuler-24.03-LTS-SP1-update-20250329
openEuler-24.03-LTS-update-20250329
openEuler-24.03-LTS-update-20250228
openEuler-24.03-LTS-SP1-update-20250228
openEuler-22.03-LTS-SP3-update-20250228
openEuler-22.03-LTS-SP4-update-20250228
openEuler-20.03-LTS-SP4-update-20250228
openEuler-24.03-LTS-update-20250214
openEuler-24.03-LTS-SP1-update-20250214
openEuler-22.03-LTS-SP4-update-20250214
openEuler-22.03-LTS-SP3-update-20250214
openEuler-20.03-LTS-SP4-update-20250214
openEuler-24.03-LTS-SP1-release
openEuler-22.03-LTS-SP4-update-before-20241025
openEuler-22.03-LTS-SP4-release
openEuler-24.09-release
openEuler-24.03-LTS-release
openEuler-22.03-LTS-SP3-release
openEuler-23.09-rc5
openEuler-22.03-LTS-SP1-release
openEuler-22.09-release
openEuler-22.09-rc5
openEuler-22.09-20220829
openEuler-22.03-LTS-20220331
openEuler-22.03-LTS-round5
openEuler-22.03-LTS-round3
openEuler-22.03-LTS-round2
openEuler-22.03-LTS-round1
openEuler-20.03-LTS-SP3-release
openEuler-20.03-LTS-SP2-20210624
openEuler-21.03-20210330
openEuler-20.09-20200929
openEuler-20.03-LTS-20200606
openEuler-20.03-LTS-tag
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)
1
https://gitee.com/src-openeuler/vim.git
git@gitee.com:src-openeuler/vim.git
src-openeuler
vim
vim
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册