执行 BufWritePre 命令后文件未保存?
File not saving after BufWritePre command?
我正在尝试使用一个微型 autocmd 在保存之前格式化我的代码:
autocmd BufWritePre *.cs :OmniSharpCodeFormat
我希望 运行 代码格式化程序,然后保存输出。相反,它 运行 是代码格式化程序,它正确地更改了我缓冲区中的代码,但保存的文件是 原始 预格式化缓冲区。
不太确定我做错了什么!欢迎任何想法或建议。
引用自here:
Yes :OmniSharpCodeFormat is asynchronous now, so it's not going to work in a BufWritePre.
那是将近两年前发布的,但现在可能仍然是异步的。
看起来该方法确实仍然是异步的 - 我正在寻找尝试等待异步完成的方法,但他们似乎添加了一个回调:
function! s:CBCodeFormat() abort
noautocmd write
set nomodified
endfunction
autocmd BufWritePre *.cs call OmniSharp#actions#format#Format(function('s:CBCodeFormat'))
我正在尝试使用一个微型 autocmd 在保存之前格式化我的代码:
autocmd BufWritePre *.cs :OmniSharpCodeFormat
我希望 运行 代码格式化程序,然后保存输出。相反,它 运行 是代码格式化程序,它正确地更改了我缓冲区中的代码,但保存的文件是 原始 预格式化缓冲区。
不太确定我做错了什么!欢迎任何想法或建议。
引用自here:
Yes :OmniSharpCodeFormat is asynchronous now, so it's not going to work in a BufWritePre.
那是将近两年前发布的,但现在可能仍然是异步的。
看起来该方法确实仍然是异步的 - 我正在寻找尝试等待异步完成的方法,但他们似乎添加了一个回调:
function! s:CBCodeFormat() abort
noautocmd write
set nomodified
endfunction
autocmd BufWritePre *.cs call OmniSharp#actions#format#Format(function('s:CBCodeFormat'))