已弃用

Nvim :help 页面,生成源代码,使用 tree-sitter-vimdoc 解析器。


Nvim
以下列出的项目已弃用:它们将在未来被移除。在新的脚本中不应使用它们,旧脚本应更新。

已弃用 功能

在 0.11 中弃用 deprecated-0.11

API

nvim_subscribe() 插件必须维护自己的“多播”通道列表。
nvim_unsubscribe() 插件必须维护自己的“多播”通道列表。

LUA

vim.region() 使用 getregionpos() 代替。
vim.highlight 重命名为 vim.hl
vim.validate(opts: table) 使用表单 1。参见 vim.validate()

诊断

vim.diagnostic.goto_next() 使用 vim.diagnostic.jump() 以及 {count=1, float=true} 代替。
vim.diagnostic.goto_prev() 使用 vim.diagnostic.jump() 以及 {count=-1, float=true} 代替。
vim.diagnostic.get_next_pos() 使用 vim.diagnostic.get_next() 返回值的“lnum”和“col”字段代替。
vim.diagnostic.get_prev_pos() 使用 vim.diagnostic.get_prev() 返回值的“lnum”和“col”字段代替。
各种函数使用的“win_id”参数已弃用,取而代之的是“winid” winid
vim.diagnostic.JumpOpts 的“cursor_position”参数已重命名为“pos”

树状语法

TSNode:child_containing_descendant() 使用 TSNode:child_with_descendant() 代替;它与前者相同,只是它可以返回后代本身。

LSP

vim.lsp.util.jump_to_location 使用 vim.lsp.util.show_document() 以及 {focus=true} 代替。
vim.lsp.buf_request_all “error” 键已在处理程序的 result 参数中重命名为“err”。
vim.lsp.with() 将配置传递给等效的函数 invim.lsp.buf.*’。
vim.lsp.handlers 不再支持客户端到服务器的响应处理程序。仅支持服务器到客户端的请求/通知处理程序。

在 0.10 中弃用 deprecated-0.10

诊断

使用 :sign-definesign_define() 配置 diagnostic-signs。使用 vim.diagnostic.config() 的“signs”键代替。
vim.diagnostic 函数
旧版签名:vim.diagnostic.enable(buf:number, namespace:number)

选项

“term_background” UI 选项 ui-ext-options 已弃用,不再填充。现在,背景颜色检测是在 Lua 中由 Nvim 核心执行,而不是 TUI。

树状语法

在 0.9 中弃用 deprecated-0.9

LUA

nvim_exec() 使用 nvim_exec2() 代替。

在 0.8 或更早版本中弃用

命令

:rv :rviminfo 已弃用,请使用 :rshada 命令。
:wv :wviminfo 已弃用,请使用 :wshada 命令。

环境变量

已弃用,请使用
--listenserverstart() 设置服务器名称
v:servername 获取服务器名称
$NVIM 检测父级 Nvim
如果指定了 --listen,则忽略。
除非显式指定 "env" 选项,否则会被 terminaljobstart() 取消设置。示例
call jobstart(['foo'], { 'env': { 'NVIM_LISTEN_ADDRESS': v:servername  } })

事件

BufCreate 请使用 BufAdd 代替。
EncodingChanged 不会触发;'encoding' 始终为 "utf-8"。
FileEncoding 不会触发;等效于 EncodingChanged.
GUIEnter 不会触发;请使用 UIEnter 代替。
GUIFailed 不会触发。

按键码

<MouseDown> 请使用 <ScrollWheelUp> 代替。
<MouseUp> 请使用 <ScrollWheelDown> 代替。

函数

buffer_exists()bufexists() 的旧名称。
buffer_name()bufname() 的旧名称。
buffer_number()bufnr() 的旧名称。
file_readable()filereadable() 的旧名称。
highlight_exists()hlexists() 的旧名称。
highlightID()hlID() 的旧名称。
inputdialog() 请使用 input() 代替。
jobclose()chanclose() 的旧名称
jobsend()chansend() 的旧名称
last_buffer_nr() 是 bufnr("$") 的旧名称。
rpcstart() 请使用带有 {'rpc': v:true}jobstart() 代替。
rpcstop() 请使用 jobstop() 停止任何作业,或使用 chanclose(id, "rpc") 关闭 RPC 通信而不停止作业。使用 chanclose(id) 关闭任何套接字。

高亮

hl-VertSplit 请使用 hl-WinSeparator 代替。

LSP 诊断

对于以下每个函数,请使用 vim.diagnostic 中的对应函数代替(除非另有说明)。例如,使用 vim.diagnostic.get() 代替 vim.lsp.diagnostic.get()
以下功能已弃用,没有替代方案。这些功能已在内部迁移,不再作为 API 的一部分公开。请改用 vim.diagnostic.config()vim.diagnostic.show()

LSP 函数

vim.lsp.buf.server_ready() 请使用 LspAttach 代替,具体取决于您的使用场景。"服务器就绪" 不是 LSP 规范的一部分,因此 Nvim LSP 客户端无法有意义地实现它。"就绪" 是模棱两可的,因为
语言服务器可能已完成分析工作区,但编辑始终可以重新触发分析/构建。
语言服务器即使在处理更改时,也可以处理某些请求。
vim.lsp.buf_get_clients() 请使用带有 {buffer=bufnr}vim.lsp.get_clients() 代替。
vim.lsp.buf.formatting() 请使用带有 {async=true}vim.lsp.buf.format() 代替。
vim.lsp.buf.formatting_sync() 请使用带有 {async=false}vim.lsp.buf.format() 代替。

LUA

vim.register_keystroke_callback() 请使用 vim.on_key() 代替。

普通命令

]f [f 与 "gf" 相同。

选项

'fe' Vim 6.0 之前的 'fenc'+'enc';不再使用。
'highlight' 'hl' 内置 高亮组 的名称不可更改。
'langnoremap' 已弃用,请使用 'nolangremap' 代替。
'sessionoptions' 标记 "unix"、"slash" 被忽略,始终启用。
'viewoptions' 标记 "unix"、"slash" 被忽略,始终启用。
'viminfo' 已弃用,请使用 'shada' 选项代替。
'viminfofile' 已弃用,请使用 'shadafile' 选项代替。
'paste' 'nopaste' Just Paste It.™ 'paste' 选项已过时:当您使用终端或 GUI 的粘贴功能(CTRL-SHIFT-v、CMD-v(macOS)、鼠标中键单击……)粘贴文本时,粘贴 会自动处理。启用 "粘贴模式"
禁用插入模式、命令行模式下的映射。
禁用缩写。
'formatoptions' 视为为空。
禁用以下选项的效果

UI 扩展

ui-wildmenu 请使用带有 ui-popupmenuui-cmdline 代替。由 ext_wildmenu ui-option 启用。发出以下事件
["wildmenu_show", items]
["wildmenu_select", selected]
["wildmenu_hide"]
term_background 未使用。终端背景颜色现在由 Nvim 核心直接检测,而不是 TUI。

变量

b:terminal_job_pid 请使用 jobpid(&channel) 代替。
b:terminal_job_id 请使用 &channel 代替。在非当前缓冲区中访问
Lua:vim.bo[bufnr].channel
Vimscript:getbufvar(bufnr, '&channel')
命令索引
快速参考