Como executo dois comandos shell em uma linha no Vim?

1

Eu quero sort e uniq algumas linhas. Eu fiz

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

Mas dá um erro. É possível executar dois comandos em uma linha?

    
por elbarna 24.01.2016 / 00:00

1 resposta

4

Você não precisa do segundo ! . Deve ser apenas:

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

Em :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.

Portanto, !uniq será o último comando executado, com uniq anexado:

:!ls
:!echo !uniq

Saídas:

lsuniq

Press ENTER or type command to continue
    
por 24.01.2016 / 00:01

Tags