バックグラウンド シナリオ: 1 つの VimScript をデバッグしているときに、一部のコードが実行されません。その理由は、unmap で 1 つのエラーが発生し、VimScript がこのエラーで終了するためです。コードの周りに空の try-catch が 1 つ配置されているため、何が問題なのかがはっきりしません。最終的に問題を特定した後、このデフォルトの動作はあまり直感的ではないのではないかと考え始めました。
これは、vim が実験的に、存在しないマッピングを削除する際にエラーを報告することを示す簡単なコードです。最後の行で「E31: No such mapping」のように言って失敗します。
map <F10> :echo 'hello'
unmap <F10>
unmap <F10>
残念ながら、この動作に関するドキュメントは見つかりませんでした。誰かが、存在しないマッピングを削除することについて説明できる場所を教えてもらえますか? このデザインの背後にある合理性は何ですか? 個人的には、存在しないマッピングを削除することを 1 つの通常のステートメントと見なし、通常どおり続行します。
編集:この質問には誤解があるかもしれません。エラーを抑制する方法を尋ねているわけではありません。存在しないマッピングを1つ削除することが1つのエラーであるとvimが考える理由を知りたいです。そんなに深刻ですか?
回答とコメントで指摘されているように、要求された操作を実行できるときに1つのエラーを発生させるのはUNIXの哲学です。私はそれに完全に同意しますが、シェルでは、スクリプトはデフォルトでエラーが発生しても続行されるため、同じ理由は適用されません。
PS:推奨されているように、この質問はvim-devに移動されました。