Vimで1行に2つのシェルコマンドを実行するには?

Vimで1行に2つのシェルコマンドを実行するには?

私はいくつかの行がsort欲しいですuniq。私がやった

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

しかし、エラーが発生します。 1行に2つのコマンドを実行できますか?

答え1

2番目のものは必要ありません!。それは次のようになります。

:'<,'>! 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

関連情報