3

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?

1 Answer 1

9

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>
1
  • Thanks! Since I never saw a range used "in the middle" of a command, I assumed it was not possible :|.
    – mrucci
    Apr 21, 2013 at 16:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .