Как запустить две команды оболочки в одной строке в Vim?

Я хочу sort и uniq некоторые строки. я сделал

 :'<,'>! sort -f|!uniq 

Но это дает ошибку. Возможно ли запустить две команды на одной строке?

Вам не нужно второе ! , Это должно быть просто:

 :'<,'>! sort -f | uniq 

От :help :! :

 Any '!' in {cmd} is replaced with the previous external command (see also 'cpoptions'). But not when there is a backslash before the '!', then that backslash is removed. Example: ":!ls" followed by ":!echo ! \! \\!" executes "echo ls ! \!". A '|' in {cmd} is passed to the shell, you cannot use it to append a Vim command. See :bar. 

Итак, !uniq будет последним командным запуском с добавлением uniq :

 :!ls :!echo !uniq 

Выходы:

 lsuniq Press ENTER or type command to continue