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.