¿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.


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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.