Sto cercando di migliorare il codice da questa risposta per chiedere conferma prima di creare la directory mancante, questo è quello che scrivo:
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"))
Una cosa che mi manca: quando non premo y
al prompt vorrei che Vim interrompesse la scrittura, quindi non ricevo l'errore E212: Can't open file for writing
e non ho bisogno di premere un altro tasto per far scomparire il messaggio di errore. C'è un modo per raggiungere questo obiettivo?
:
comando iniziale non è mai necessario per i comandi.