如何暂时禁用vim的通知

时间:2013-08-23 06:59:28

标签: vim

我有一个vim脚本会在保存前更改缓冲区中的内容。

但是这个脚本会触发VIM打印如下通知。

"file.txt" 112L, 4391C written
1 change; before #46  0 seconds ago
Press ENTER or type command to continue

我该如何阻止它?

脚本:

- script.lua

function update()
  local b = vim.buffer()
  for i = 1, 10 do
    local line = b[i]
    if line and line:match('updated_on:.*') then
      b[i] = line:gsub('updated_on:.*', 'updated_on: '..os.date())
      break
    end
  end
end
function undo()
  vim.command'call UndoIt()'
end
vim.command"autocmd BufWritePre * lua update()"
vim.command"autocmd BufWritePost * lua undo()"

- script.vim

function! UndoIt()
  let l:winview = winsaveview()
  undo
  call winrestview(l:winview)
endfunction

1 个答案:

答案 0 :(得分:2)

在脚本中,找出写入的位置,并在该命令之前添加silent 例如,如果通过write命令进行写入,则将write替换为silent write

有关详细信息,请参阅:h :silent