Vim: exécute la commande avec la plage en silence

Selon la documentation vim, la commande :silent peut être utilisée pour éviter l'invite hit-enter .

Le problème est que je désire mettre en silence une commande qui accepte une portée comme entrée, ce qui ne fonctionne pas car la portée est transmise à :silent plutôt que de la commande elle-même.


Exemple

Pour ouvrir les URL dans le fichier ou la sélection en cours, j'utilise le mappage suivant dans mon .vimrc :

 noremap <leader>u :w !urlview<cr> 

:w !urlview le fichier ou la sélection en cours vers l'entrée standard urlview .

Maintenant, en essayant d'éviter l'invite hit-enter , j'ai ajouté:

 noremap <leader>u :silent w !urlview<cr> 

Que, lorsqu'il est invoqué avec une sélection, réponde à juste titre avec:

 E481: No range allowed 

Des indices sur la façon de contourner ce problème?

Vous pouvez modifier le mappage pour insérer le :silent après la saisie initiale de la commande :w , comme vous le feriez probablement lors de la saisie de manière interactive:

 :noremap <leader>u :w<Home>silent <End> !urlview<CR>