You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:43:34