コマンドラインでexに複数のコマンドを実行するには?

コマンドラインでexに複数のコマンドを実行するには?

vimのexモードを使用して作成したいスクリプトを作成しようとしていますが、複数のコマンドを作成できる構文がわからないようです。

私のコードは次のとおりです

ex -c 'normal! 2gg19|^V49gg59|y' geom.inc

したがって、これはgeom.incファイルのexモードに入り、テキストブロックを強調表示してからそのテキストブロックを取り出すことです。これが完了したら、ファイルが閉じられると付け加えたいのですが、ファイルを閉じる追加のコマンドを含める方法がわからないようです。私は通常"|"がコマンドを一緒にまとめるために使用されることを知っていますが、私が試した組み合わせのどれも機能しません。通常、コマンドの1つが別のファイルだと思います。

答え1

愚かなミスを犯しました。 @Jeff Schallerが上記で提案したように、複数の-cプロンプトは複数のコマンドを受け入れます。だから私の仕事の例は次のとおりです。

ex -c 'normal! 2gg19|^V49gg59|y' -cwq geom.inc

exモードに入り、exコマンドプロンプトを-c表示してブロックを定義しnormal! 2gg19|^V49gg59|ynormal!通常のviコマンドを受け入れます。2gg19|つまり、2行と19列に移動し、^Vビジュアルブロックモードに入り、49gg59|49行と59列に移動してyブロックを取得します)、プロンプトが表示されます書き込みおよび終了するコマンド-cwq

答え2

私は次のようにコマンドをパイプする傾向があります。

$ echo '
  0r !seq 10
  w test
' | ex
$ cat test
1
2
3
4
5
6
7
8
9
10

答え3

最後に「x」または「wq」コマンドを追加するだけです。

ex -c execute 'normal! 2gg19|^V49gg59|y|x' geom.inc

関連情報