Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
BufWritePre/ FileWritePreauto コマンドで書き込みをキャンセルするにはどうすればよいですか?
BufWritePre
FileWritePre
私はすでにこの質問を見て、提案された解決策throwはエラーメッセージを表示しますが、それは望ましくありません。私自身のエラーメッセージを表示しているので、何も書き込まれていないことはユーザーに透過的でなければなりません。
throw
次に、独自のエラーメッセージをスローします。これを回避する別の方法はないと思います。結局のところ、ユーザーは を発行した後にバッファが書き込まれることを期待している:wため、これを防ぐことができるのは例外だけです。
:w
BufWriteCmdフックとを使用してこれを回避し:setl buftype=acwrite、バッファを完全に自分で作成することもできますが、これは (エラーが発生しやすい) 多大な労力であり、エラーを発行する場合は、とにかく例外を使用してください。
BufWriteCmd
:setl buftype=acwrite