Como sublinhar títulos? (reStructuredText, Markdown, estilo asciidoc)

13

Várias linguagens de marcação de texto sem formatação: reStructuredText, Markdown, asciidoc (outras também) , usam um sublinhado para indicar títulos.

Chapter 1 Title
===============

Section 1.1 Title
-----------------

Subsection 1.1.1 Title
~~~~~~~~~~~~~~~~~~~~~~

Section 1.2 Title
-----------------

Chapter 2 Title
===============

Existe uma maneira conveniente de adicioná-los no vim?

adicione um caractere com um comprimento correspondente à linha acima.

ideasman42
fonte
Ele não responde diretamente à sua pergunta, mas vale a pena dizer que alguns langs de marcação (por exemplo, Markdown) também suportam um #personagem principal em vez de um cabeçalho de nível 1, ##para o nível 2, etc. É assim que escrevo o Markdown e acho mais claro assim mesmo.
Andrew Ferrier
@ Andrew Ferrier, eu não estou usando remarcação e a pergunta não é especificamente sobre remarcação, é apenas um exemplo de uma marcação que pode usar títulos como este. Listei 3x marcações diferentes, especialmente para evitar discussões sobre os detalhes em qualquer uma das linguagens de marcação.
ideasman42
Compreendo. Foi apenas um comentário incidental para quem faz. Sua pergunta é totalmente válida, eu concordo.
Andrew Ferrier 6/15

Respostas:

22

Uma abordagem ingênua (sem plugins ou scripts) seria EscYpVr=.

Explicação:

  • Yp duplica a linha atual e coloca o cursor na linha inferior.
  • V seleciona a segunda linha no modo Linha Visual.
  • r=substitui todos os caracteres na linha pelo =caractere.

Você pode, é claro, :noremapessa sequência de teclas ao seu gosto.

por exemplo:

" Add Heading: Control-H
nnoremap <C-h> YpVr

... deixando de fora o último caractere para que você possa digitar o que quiser para o título.

200_success
fonte
2
Isso não é ingênuo por qualquer meio.
Romainl
2
@romainl é apenas ingênuo até que você mapeá-lo para algo mais curto eu acho
Dhruva Sagar