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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.