Hai ragione; una variabile speciale come v:vimmode
sarebbe utile, ma non credo che esista attualmente una cosa del genere. Perché non sollevarlo su vim_dev mailing list?!
Nel frattempo, è necessario rilevare la modalità attraverso il risultato di invocare qualcosa che è vietato in modalità limitata. La mia idea migliore che è il meno intrusivo in caso di successo è invocare writefile()
con un nome file vuoto:
silent! call writefile([], '')
" In restricted mode, this fails with E145: Shell commands not allowed in rvim
" In non-restricted mode, this fails with E482: Can't create file <empty>
let isRestricted = (v:errmsg =~# '^E145:')
fonte
2013-05-22 11:34:35