Как подчеркнуть названия? (reStructuredText, Markdown, asciidoc style)


13

Различные языки разметки простого текста: reStructuredText, Markdown, asciidoc (и другие тоже) используют подчеркивание для обозначения заголовков.

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

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

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

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

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

Есть ли удобный способ добавить их в vim?

добавьте символ с длиной, соответствующей строке выше.


Он не дает прямого ответа на ваш вопрос, но стоит сказать, что некоторые языки разметки (например, Markdown) также поддерживают ведущий #символ вместо заголовка уровня 1, ##уровня 2 и т. Д. Вот как я пишу Markdown, и я нахожу это более понятным так или иначе.
Эндрю Ферье

@ Andrew Ferrier, я не использую уценку, и вопрос не в том, что касается уценки, это всего лишь пример разметки, которая может использовать такие названия. Я перечислил 3 раза разные наценки, особенно во избежание обсуждения специфики любого из языков разметки.
ideasman42

Я понимаю. Это был просто случайный комментарий для любого, кто это делает. Ваш вопрос полностью действителен, я согласен.
Эндрю Ферье

Ответы:


22

Наивный подход (без плагинов или скриптов) будет EscYpVr=.

Объяснение:

  • Yp дублирует текущую строку и помещает курсор в нижнюю строку.
  • V выбирает вторую строку в режиме Visual Line.
  • r=заменяет все символы в строке =символом.

Вы можете, конечно, :noremapэту последовательность нажатий клавиш на свой вкус.

например:

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

... пропуская последний символ, чтобы вы могли вводить в зависимости от того, что вы хотите для заголовка.


2
Это не наивно ни в коем случае.
Ромен

2
@romainl это только наивно, пока ты не сопоставишь это с чем-то более коротким, я думаю
Дхрува Сагар
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.