Рассмотрим следующий текст как часть файла LaTeX .tex:
This is some latex file, with a citation \ref{citationName} which is great
Я хотел бы использовать функцию скрытия синтаксиса Vim, чтобы превратить эту строку в:
This is some latex file, with a citation [citationName] which is great
Следующее выражение регулярного выражения поиска и замены превратит первую строку во вторую: :s/\v\\ref\{(\w+)}/[\1]/
Однако это однократная замена текста, и я хотел бы использовать функцию скрытия синтаксиса vim, например:
- Если курсор находится на строке, содержащей
\ref{name}
, в исходном тексте отображается
- Если курсор НЕ находится на строке, содержащей
\ref{name}
, то такой текст заменяется (скрывается) на [name]
Я прочитал :help conceal
и :help syntax
, но мне совершенно не удалось решить эту проблему.
Вопрос
Как я могу использовать функцию маскировки Vim, чтобы получить поведение, указанное выше?
Попытка 1 :
Я уверен, что я не смогу использовать регулярное выражение, определенное выше, как есть. Однако я могу разбить проблему на две части:
- Скрыть строку
\ref{
(регулярное выражение: \\ref\{
) с символом [
- Скрыть строку
}
, которой предшествует \ref{
(необычное регулярное выражение: \v(\\ref\{(w+))@<=}
) с символом ]
Имея оба регулярных выражения, которые найдут текст, который я хочу скрыть, и символы, с которыми я хочу их скрыть, как я могу их на самом деле скрыть?