J'essaie d'améliorer le code de cette réponse pour demander une confirmation avant de créer le répertoire manquant, voici ce que j'écris:
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"))
Une chose me manque: lorsque je n'appuie pas y
à l'invite, j'aimerais que Vim abandonne l'écriture pour ne pas avoir l'erreur E212: Can't open file for writing
et je n'ai pas besoin d' appuyer sur une autre touche pour faire disparaître le message d'erreur. Il existe un moyen d'y parvenir?
:
n'est jamais nécessaire pour les commandes.