私はこの答えのコードを改善して、不足しているディレクトリを作成する前に確認を求めようとしています。これは私が書いたものです:
function! CreateDirectoryAskConfirmation(path)
if !isdirectory(a:path)
echohl Question
echo "Create directory " . a:path . "?"
echohl None
let response = nr2char(getchar())
if response ==? "y"
call mkdir(a:path, "p")
endif
endif
endfunction
autocmd BufWritePre * call CreateDirectoryAskConfirmation(expand("<afile>:p:h"))
1つ欠けているのy
は、プロンプトを押さない場合は、Vimに書き込みを中止させて、エラーが発生しないようにE212: Can't open file for writing
するためです。エラーメッセージを非表示にするために別のキーを押す必要はありません。これを達成する方法はありますか?
:
、コマンドの先頭は必要ありません。