BufWritePre 命令后文件未保存?

时间:2021-03-02 20:28:10

标签: vim vi omnisharp

我试图在保存之前使用一个小小的 autocmd 来格式化我的代码:

autocmd BufWritePre *.cs :OmniSharpCodeFormat

我希望这会运行代码格式化程序,然后保存输出。相反,它运行代码格式化程序,它正确地更改了我缓冲区中的代码,但保存的文件是原始预格式化的缓冲区。

不太确定我在这里做错了什么!接受任何想法或建议。

2 个答案:

答案 0 :(得分:0)

引用here

<块引用>

是的:OmniSharpCodeFormat 现在是异步的,所以它不会在 BufWritePre 中工作。

这是近两年前发布的,但现在可能仍然是异步的。

答案 1 :(得分:0)

看起来该方法确实仍然是异步的 - 我正在寻找尝试等待异步完成的方法,但似乎他们添加了回调:

function! s:CBCodeFormat() abort
  noautocmd write
  set nomodified
endfunction
autocmd BufWritePre *.cs call OmniSharp#actions#format#Format(function('s:CBCodeFormat'))
相关问题