Execute o comando vim na linha de comando

2

Eu preciso fazer o seguinte em vários arquivos: dt{%lx:wq , ou seja,

  1. excluir para o primeiro {
  2. encontre a correspondência }
  3. excluir o próximo caractere
  4. salve e saia

como faço isso a partir da linha de comando sem abrir a tela?

vi -c 'dt{%lx:wq' falha com o óbvio

E492: Not an editor command: dt{%lx:wq

Acho que preciso converter cada comando - dt{ , % , l , x - em um comando ex . Como eu encontro os comandos?

    
por sds 16.10.2015 / 17:55

1 resposta

1

Você pode usar vi e ex , por exemplo:

ex -s +'norm dt{%lx' -cwq foo

Para vi , basta adicionar -e (para o modo Ex):

vi -es +'norm dt{%lx' -cwq foo

Então, para fazer seus exemplos funcionarem, basicamente você precisa adicionar norm / normal que executa comandos no modo Normal (como você estaria digitando no Vi).

Os principais parâmetros são:

  • -s - Modo silencioso que não abre a tela. Útil para trabalhar no terminal.
  • -e - Ex-mode (necessário para vi / vim comandos) como ex já tem por padrão
  • -cwq - Melhor maneira de fazer :wq

Se você ainda tiver problemas, adicione -V para verbosidade.

Para mais exemplos, verifique:

por 16.10.2015 / 22:00

Tags