如何配置Neovim使:w命令仅显示文件名作为保存提示
配置Neovim的:w命令自定义保存提示(适配noice.nvim)
你的问题在于原自动命令只是追加了自定义消息,但noice.nvim仍然会显示Neovim默认的长路径保存提示。要完全替换默认提示,有两种适配noice的方案:
方案1:通过noice.nvim路由拦截并修改消息
利用noice的routes配置直接过滤默认保存消息,替换为自定义内容,这是最贴合noice设计的方式:
require("noice").setup({ routes = { { filter = { event = "msg_show", kind = "", find = "^%d+L, %d+B written$", -- 匹配默认保存消息格式(如"5L, 120B written") }, view = "mini", -- 可选:用紧凑的mini视图显示提示 opts = { render = function(_, _) local filename = vim.fn.expand("%:t") -- 获取当前文件名(不含路径) return "Saved: " .. filename end, }, }, }, })
方案2:禁用默认消息+自定义自动命令
先关闭Neovim默认的保存提示,再用noice的通知接口输出自定义内容,保证风格统一:
-- 禁用Neovim默认的保存成功消息 vim.opt.shortmess:append("F") local function show_only_saved_message() local file_name = vim.fn.expand("%:t") -- 用noice的notify输出,适配其显示系统 require("noice").notify("Saved: " .. file_name, "info") end -- 用Lua API创建自动命令(替代vim.cmd写法,更规范) vim.api.nvim_create_augroup("CustomSaveMessage", { clear = true }) vim.api.nvim_create_autocmd("BufWritePost", { group = "CustomSaveMessage", pattern = "*", callback = show_only_saved_message, })
注意事项
- 方案1无需修改全局设置,直接通过noice路由拦截,更推荐;
- 避免用
vim.api.nvim_out_write输出消息,因为会绕过noice的消息管理系统,导致显示不一致; - 可根据需求自定义渲染内容,比如添加文件大小、修改时间等信息。
内容的提问来源于stack exchange,提问作者Yesid Rodelo
相关产品推荐
相关产品推荐

