【问题标题】:File not saving after BufWritePre command?BufWritePre 命令后文件不保存?
【发布时间】:2021-03-02 20:28:10
【问题描述】:

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

autocmd BufWritePre *.cs :OmniSharpCodeFormat

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

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

【问题讨论】:

标签: vim vi omnisharp


【解决方案1】:

引用here

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 2016-09-16
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      相关资源
      最近更新 更多