Obtenha o Vim para as linhas circundantes

Eu adoro o (Mac) Vim, e aos poucos estou ficando mais e mais proficiente nisso, mas como eu lido com muita programação da web, este surge muito: Como faço para transformar certas linhas em títulos ou tags de parágrafo?

Para responder a isso, é um pouco complexo usar meu método, então vou dividi-lo em duas etapas:

Etapa 1: Desejo especificar quais linhas corresponder:
Para fazer isso, eu uso : g para pesquisar linhas e retorná-las para mim usando expressões regulares . Por exemplo, na minha necessidade mais recente, todos os títulos começaram com um número:

:g/^[0-9]/

Se você executar esse comando sozinho, verá com o que vai terminar, uma saída de todas as linhas que começam com um número. (Você também pode substituir “[0-9]” por d para especificar “dígitos”)

Etapa 2: Eu quero realizar uma substituição de string para quebrar a linha
no Vim, se você for para qualquer linha e digitar o seguinte:

:s#^.*$#<p>&</p>#

Isso substituirá a totalidade da linha (a primeira parte) por uma tag de parágrafo (a segunda parte), e o amersand (&) é um espaço reservado para “o conteúdo da correspondência”.

O motivo pelo qual usei hashes (#) é porque sei que as tags HTML têm uma barra (/), então, para não precisar escapar, usei apenas um hash como símbolo para definir minhas expressões regulares.

Etapa 3: Eu quero os dois juntos.
Você provavelmente pode ver onde isso vai dar: você deseja executar as etapas 1 e 2 e colocá-los juntos. Fácil, basta colocá-los costas com costas!

:g/^[0-9]/s#^.*$#<p>&</p>#

E é isso!

Claro, parece um pouco complicado para começar, mas depois que você entende o que está fazendo, faz muito sentido.

Além disso, este é um exemplo muito simples. Você pode torná-lo mais complexo e verificar se há outras coisas para torná-los parágrafos, cabeçalhos ou outras tags de que possa precisar.