Go(Golang)编程语言附带了一个名为go fmt. 它是一个代码格式化程序,可以自动格式化您的代码(对齐、字母排序、制表符、间距、习语......)。它真的很棒。
所以我发现了这个在 Vim 中使用它的小自动命令,每次将缓冲区保存到文件时。 au FileType go au BufWritePre <buffer> Fmt fmt 是 Go vim 插件自带的功能。
这真的很棒,但它有 1 个问题。每次格式化程序写入缓冲区时,它都会在撤消/重做历史记录中创建一个跳转。尝试撤消/重做更改时会变得非常痛苦,因为每第二次更改都是格式化程序(使光标跳转到第 1 行)。
所以我想知道,有没有办法在触发后丢弃撤消/重做历史记录中的最新更改Fmt?
编辑: 好的,到目前为止我有: au FileType go au BufWritePre <buffer> undojoin | Fmt 但它还不是很好。根据:h undojoin,撤消后不允许撤消加入。果然,当我尝试:w撤消后,它会触发错误。
那么我如何实现这样的伪代码:
if lastAction != undo then
au FileType go au BufWritePre <buffer> undojoin | Fmt
end
如果我弄明白了最后一点,我想我有一个解决方案。
叮当猫咪
蓝山帝景
杨__羊羊
相关分类