ex equivalente de d / ^ Mark para uso com gvim -c e argdo

1

Passo a maior parte do meu tempo no Windows 8 e uso o gvim -c como substituto do sed. Acho que posso conseguir sed com o Cygwin, mas espero poder fazer isso com gvim -c .

Eu tenho um diretório de arquivos .txt delimitados por tabulação, e alguns têm um cabeçalho (como segue) que eu quero remover.

Definition of the Ultimate Owner :                                                                                                                                                  
- minimum percentage that must characterize the path from a subject company up to its Ultimate owner : 25.01%                                                                                                                                                   
- At least one of its shareholders must be known and it cannot own more than 25.01%                                                                                                                                                 

Mark     Company name ... 

Para remover o cabeçalho em uma sessão gvim, usaria d/^Mark e, em seguida, :wq . Mas eu tenho centenas delas, então gostaria de usar gvim -c e argdo . Eu faço muito isso com s// , diga algo como gvim -c "argdo %s/foo/bar/ge | wq" *.tex .

Meu primeiro pensamento foi gvim -c "d/^Mark | wq" *.txt , mas isso não funciona porque / não é um comando ex.

Existe um equivalente ex% de d/^Mark que eu posso usar com gvim -c e argdo ?

    
por Richard Herron 02.08.2013 / 23:21

1 resposta

2

Você deseja o comando :d[elete] , precedido de um intervalo:

:[fromline],[toline]d

Os intervalos não estão limitados a números de linha absolutos: a pesquisa também pode ser usada:

:1,/bar/d

exclui todas as linhas entre a linha 1 e a primeira linha contendo bar .

O comando a seguir exclui todas as linhas entre a linha 1 e a linha acima da primeira linha, começando com bar :

:1,/^bar/-1d

Supondo que você não passe outros comandos antes que possa mover o cursor, podemos cortar alguns caracteres:

  • a linha atual é assumida se a primeira parte do intervalo estiver faltando, já que abrimos um novo buffer e não movemos o cursor, podemos remover o 1 ,

  • o deslocamento padrão para - é 1 , pois esse é o deslocamento que usamos, podemos deixar o último 1 também. O comando se torna:

    :, / ^ bar / -d

Construído a partir dos blocos acima, o seguinte comando deve funcionar:

$ gvim -c "argdo ,/^Mark/-d | wq" *.txt
    
por 03.08.2013 / 00:39

Tags