Быстрые вложения с уценкой
У меня есть такой документ:
A lot of text.
insert:good graph:x
More text. insert: :y
Even more text.
insert:another figure:z
Я хочу изменить все insert:description:x
в ![description][A_Standardized_filepath/x.pdf]
потому что эта команда ![][]
прикреплю файл в мой markdown-документ. Обратите внимание, что x - это переменная, которую я меняю, и описание уникально для каждой переменной. Однако путь к файлу всегда один и тот же. (Обратите внимание, что y
не было описания, которое я решил, добавив пробел.)
Это позволило бы мне ускорить процесс создания документов.
Я на Windows 7; Я предпочитаю использовать Notepad++ для письма.
1 ответ
Я не знаю notepad++, но если он находит и заменяет с помощью регулярных выражений, то вы сможете это адаптировать. В VIM я бы использовал:
:%s/insert:\([^:]*\):\([^ :]*\)/![\1][A_Standardized_filepath\/\2.pdf]/g
%
означает "действовать на каждой линии"; s
начинает substitute
команда (s/change this/to this/
) и g
в конце означает "действовать на каждое совпадение на линии" (в отличие от первого совпадения, которое является поведением vim по умолчанию).
Мясо этого есть в первой части. \(\)
указать группы захвата; поскольку notepad ++ является относительно новым, я думаю, вам не понадобятся обратные слэши. Все между первым набором \(\)
упоминается как \1
в правой части команды (опять же, это может отличаться в notepad++: Perl использует $1
вместо этого, например), все между вторым набором \(\)
упоминается как \2
на правой стороне и т. д.
[^:]
означает "любой символ, кроме :
', в то время как [^ :]
означает "любой символ, кроме пробела или :
". Это предполагает, что у вас никогда не будет пробелов в части имени файла вашей конструкции.
Если кто-то со знанием Notepad ++ придет, он может свободно использовать это регулярное выражение в ответ.