У меня есть простой текстовый файл с записями как
firstAuthorLastName_titleFirstWord_YYYY
что я изменяю на
firstAuthorLastNameYYYYtitleFirstWord
с помощью следующей команды s//
в Vim.^ [1]
%s/\([a-z]\+\)_\([a-z]\+\)_\([0-9]\{4}\)/\1\3\2/g
Но я хочу делать эту команду снова и снова. Похоже, я должен быть в состоянии сделать это с помощью пакетного сценария Windows и флаг -c
для gvim.exe
. Но я не могу заставить его работать.
У меня есть пакетный скрипт Windows со следующим.
gvim -c "%s/\([a-z]\+\)_\([a-z]\+\)_\([0-9]\{4}\)/\1\3\2/g" herron.bib
Но я получаю сообщение E486: Pattern not found: \([a-z]\+\)_\([a-z]\+\)_\([0-9]\{4}\)
. Есть ли способ повторно использовать / автоматизировать эту команду s//
? Я знаю, что могу стрелять вверх по истории моей бывшей команды, но мне хотелось бы чего-то более постоянного и надежного.
[^ 1] FWIW, это файл BibTeX .bib, который я экспортирую из Zotero. В дальнейшем я использую vim-pandoc для записи заметок в уценке. Подчеркивание затрудняет использование "аккуратной" функции vim-pandoc, поэтому я удалил их. Я обновляю .bib несколько раз в неделю и реэкспортирую его из Zotero, поэтому мне также нужно запускать это регулярное выражение несколько раз в неделю.