Eu não vejo nada de errado, e aparentemente o padrão é passado corretamente para o Vim, então deve funcionar: - (
Alternativas
A menos que você realmente precise de recursos especiais do Vim, provavelmente é melhor usar ferramentas não interativas como sed
, awk
ou Perl / Python / Ruby / seu favorito linguagem de script aqui .
Dito isto, você pode usar o Vim não interativamente:
Modo em lote silencioso
Para um processamento de texto muito simples (ou seja, usando o Vim como um 'sed' ou 'awk' aprimorado, talvez apenas aproveitando as expressões regulares aprimoradas em um comando :substitute
), use Ex-mode .
REM Windows
call vim -N -u NONE -n -es -S "commands.ex" "filespec"
Nota: o modo de lote silencioso ( :help -s-ex
) atrapalha o console do Windows, portanto, talvez seja necessário fazer um cls
para limpar após a execução do Vim.
Alternativas de Vim
Com base na sua descrição, não está totalmente claro se você deseja automação completa ou apenas uma lembrança mais fácil. Se você não se importa de aplicar o comando manualmente (mas rapidamente) de dentro do Vim, que tal:
a) um comando personalizado
:command! TidyNames %s/\([a-z]\+\)_\([a-z]\+\)_\([0-9]\{4}\)//g
b) um mapeamento personalizado
:nnoremap <Leader>tn :%s/\([a-z]\+\)_\([a-z]\+\)_\([0-9]\{4}\)//g<CR>
Ambos podem ser colocados em seu ~/.vimrc
ou (com <buffer>
modificador) em um ~/.vim/after/ftplugin/tex.vim
específico do tipo de arquivo.