Vim: execute command with range silently
According to the vim documentation, the :silent
command can be used to avoid the hit-enter
prompt.
The problem is that I want to silent a command that accepts a range as input, and this does not work because the range is passed to :silent
instead of to the command itself.
Example
To open the urls in the current file or selection, I use the following mapping in my .vimrc
:
noremap <leader>u :w !urlview<cr>
where :w !urlview
pipes the current file or selection to urlview
standard input.
Now, trying to avoid the hit-enter
prompt, I added:
noremap <leader>u :silent w !urlview<cr>
that, when invoked with a selection, rightfully responds with:
E481: No range allowed
Any clues on how to circumvent this issue?
Solution 1:
You can modify the mapping to insert the :silent
after the initial typing of the :w
command, just like you would probably do when typing this interactively:
:noremap <leader>u :w<Home>silent <End> !urlview<CR>