私は非常に速く入力し、1 つの ;
または :
. (コマンドを入力すると、タイプミスが発生することがあり:wq
ます。)
特定の名前に一致するファイルの保存を拒否するマクロを作成する方法はありますか?
シンプルでありながら効果的な解決策は、タイプミスの可能性があるファイル名に一致する自動コマンドを定義することです。これにより、警告が発行され、保存が終了します。
:autocmd BufWritePre [:;]* throw 'Forbidden file name: ' . expand('<afile>')
この:throw
コマンドは、Vim にバッファーの内容の書き込みを停止させるために必要であることに注意してください。
E605
例外がキャッチされないためにエラーが発生するのを回避するために、ブロック:echoerr
内で実行されるコマンドを使用してエラーを発行できますtry
。 <code>:echoerr は、try
構成内から呼び出されたときに例外としてエラー メッセージを生成します (「 」を参照:help :echoerr
)。
:autocmd BufWritePre [:;]*
\ try | echoerr 'Forbidden file name: ' . expand('<afile>') | endtry
上記の自動コマンドで使用されたパターンに一致する名前でファイルを保存する必要がある場合は、書き込みコマンドを先頭に追加するか、それに応じてオプション
を:noautocmd
設定できます (詳細については、およびを参照)。eventignore
:help :noautocmd
:help eventignore
:noa w :ok.txt