¿Cómo subrayar títulos? (reStructuredText, Markdown, estilo asciidoc)

13

Varios lenguajes de marcado de texto plano: reStructuredText, Markdown, asciidoc (otros también) , usan un subrayado para denotar títulos.

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

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

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

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

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

¿Hay alguna manera conveniente de agregar estos en vim?

agregue un carácter con una longitud que coincida con la línea de arriba.

ideasman42
fuente
No responde directamente a su pregunta, pero vale la pena decir que algunas marcas de marcado (por ejemplo, Markdown) también admiten un #personaje principal en lugar de un título de nivel 1, ##nivel 2, etc. Así es como escribo Markdown, y lo encuentro más claro de esa manera de todos modos.
Andrew Ferrier
@Andrew Ferrier, no estoy usando Markdown y la pregunta no es específicamente sobre Markdown, es solo un ejemplo de un marcado que puede usar títulos como este. Enumeré 3 veces diferentes marcas, especialmente para evitar la discusión sobre los detalles en cualquiera de los lenguajes de marcado.
ideasman42
Entiendo. Fue solo un comentario incidental para cualquiera que lo haga. Su pregunta es totalmente válida, estoy de acuerdo.
Andrew Ferrier

Respuestas:

22

Sería un enfoque ingenuo (sin complementos ni secuencias de comandos) EscYpVr=.

Explicación:

  • Yp duplica la línea actual y coloca el cursor en la línea inferior.
  • V selecciona la segunda línea en modo Visual Line.
  • r=reemplaza todos los caracteres en la línea con el =carácter.

Puede, por supuesto, :noremapesa secuencia de teclas a su gusto.

p.ej:

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

... dejando el último carácter para que puedas escribir lo que quieras para el título.

200_success
fuente
2
Esto no es ingenuo de ninguna manera.
romainl
2
@romainl es solo ingenuo hasta que lo asignes a algo más corto, supongo
Dhruva Sagar