我有一个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
在脚本中,找出写入的位置,然后silent
在该命令之前添加。
例如,如果写入是通过write
命令完成的,则替换write
为silent write
。
有关:h :silent
详细信息,请参见。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句