Como vários comandos são dados para ex a partir da linha de comando?

2

Estou procurando usar o modo ex do vim para um script que estou tentando escrever, mas não consigo descobrir a sintaxe que me permitirá escrever vários comandos.

Meu código é parecido com isto:

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

Então, isso entra no modo ex para o arquivo geom.inc, destaca um bloco de texto e puxa esse bloco de texto. Tudo o que eu quero adicionar é que ele irá fechar o arquivo depois de ter feito isso, mas não consigo descobrir como incluir o comando adicional para fechar o arquivo. Eu sei em geral "|" é usado para juntar comandos, mas nenhuma combinação que eu tentei funcionou. Normalmente faz com que ele pense que um dos comandos é outro arquivo.

    
por Tyberius 12.06.2017 / 21:15

3 respostas

2

Eu estava cometendo erros bobos. Como o @Jeff Schaller sugere acima, vários prompts -c permitirão múltiplos comandos. Então, meu exemplo de trabalho é assim.

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

Onde eu entro no modo ex (ex), solicito um comando (-c), defina um bloco ('normal! 2gg19 | ^ V49gg59 | y' onde normal! permite o uso de comandos vi regulares, 2gg19 | significa mover para a segunda linha e a 19ª coluna, ^ V entra no bloco visual, 49gg59 | move para a 49ª linha e 59ª coluna e y puxa o bloco), e o prompt outro comando para escrever e sair (-cwq).

    
por 12.06.2017 / 23:42
1

Apenas use o comando 'x' ou 'wq' no final

ex -c execute 'normal! 2gg19|^V49gg59|y|x' geom.inc
    
por 12.06.2017 / 21:47
1

Eu costumo direcionar os comandos para, por exemplo:

$ echo '
  0r !seq 10
  w test
' | ex
$ cat test
1
2
3
4
5
6
7
8
9
10
    
por 12.06.2017 / 22:28