Executando um comando em linhas delimitadas

7

Como posso executar um comando em todas as linhas delimitadas, digamos por \begin{otherlanguage}e \end{otherlanguage}?

Por exemplo,

1 This line should not be affected,
2 \begin{otherlanguage}
3 but this should;
4 \end{otherlanguage}
5 this should not.

(O cmd pode ser norm A test.)

Toothrot
fonte
Você poderia nos dar um exemplo viável?
Romainl
@romainl, sim, desculpe se eu não estava claro.
precisa saber é o seguinte

Respostas:

9

Você pode usar o delimitador de padrão para isso:

:/first/,/second/norm dd

Você pode usar qualquer padrão de pesquisa ao redor do ,.

Se você deseja usar apenas o interior dos padrões correspondentes, use + e - assim:

:/first/+1,/second/-1 norm dd
nobe4
fonte
11
Muito agradável. Eu achei que adicionar gno começo ajuda se houver mais de um conjunto de delimitadores.
precisa saber é o seguinte
Gostaria de saber se algo semelhante poderia ser usado para fazer uma seleção visual?
precisa saber é o seguinte
Interessante, você deve ser capaz de modificar as marcas <e >, eu acho que vale a pena uma outra pergunta;)
nobe4
5

Uma resposta mais específica (já que você parece estar editando um arquivo TeX): se você usar o vimtexplug - in (embora LaTeX-Boxtambém possua este IIRC), poderá selecionar facilmente todo o ambiente (sem as linhas \begine do \endmarcador) usando o objeto de texto do ambiente interno ( ie) Portanto, supondo que o cursor esteja em algum lugar dentro do otherlanguageambiente, seu exemplo pode ser "resolvido" com algo como:

vie:norm A test

Para mais mapeamentos de vimtex, consulte :h vimtex-default-mappings.

VanLaser
fonte