No Mutt, eu gostaria de configurar algo parecido com a ação de filtro de mensagem "Responder com Modelo" do Thunderbird. Ou seja, para uma determinada mensagem, eu gostaria de poder facilmente (leia-se: atalho de teclado) enviar uma resposta com assunto e corpo predefinidos. Isso é possível?
Obrigado.
Eu criei uma solução que requer o Vim (meu editor de escolha) mais uma função Vimscript , um script Bash simples e um arquivo de modelo. Isso garante que o texto seja codificado corretamente (por exemplo,
format=flowed
), porque o Mutt realmente processa o arquivo salvo pelo editor de texto (pesquise por "Space-stuffing" no Manual do Mutt ).Uma solução (talvez) melhor implementada somente no Mutt está em andamento, mas pelos motivos listados no Mutt: como desabilitar a especificação do nome do arquivo para um único anexo de texto simples em linha? ainda não está polido o suficiente. Além disso, o arquivo de texto anexado -- a resposta do modelo -- não seria processado de forma alguma, o que poderia causar problemas aos destinatários.
De qualquer forma, a função Vimscript (armazenada em
~/.vimrc
) substitui o texto de resposta preparado pelo Mutt pelo texto do arquivo de modelo:A primeira linha apaga tudo (para o registrador do buraco negro), a segunda lê o texto do modelo do arquivo de modelo, a terceira linha remove a linha vazia inicial inserida por
read
(r
; novamente, para o registrador do buraco negro) e a última linha salva o arquivo e sai do Vim .O script Bash
~/.mutt/vim-auto-reply
( ) é usado como um substituto temporário para o Mutt eeditor
garante que a função acima seja chamada como um autocomando do Vim :A macro Mutt de pressionamento de tecla única (vinculada a Esc- aneste exemplo) é então lida como segue:
Vamos descompactar os comandos:
<enter-command>set editor=~/.mutt/vim-auto-reply<enter>
: define temporariamente oeditor
para o nosso script (para substituir o conteúdo da mensagem pelo modelo e sair imediatamente do Vim ),<reply>
: responde à mensagem selecionada (requerset fast_reply
),<edit-from><kill-line>Do Not Reply <[email protected]><enter>
: substitui o remetente noFrom
cabeçalho por um valor adequado,<edit-subject>)<bol><delete-char><delete-char><delete-char><delete-char>Automatic Reply (was: <enter>
: muda o assunto (por exemplo, "Assunto original" --> "Resposta automática (era: Assunto original)"), os quatro<delete-char>
s excluem o "Re: " adicionado por Mutt ao responder,<send-message>
: envia nossa resposta automática,a
: arquiva a mensagem original,<enter-command>set editor=vim<enter>
: restaura nosso originaleditor
.O penúltimo comando (
a
) está vinculado à minha macro de arquivo que também marca a mensagem como lida (a única diferença entre Index e Pager é oi
):Mais uma vez, vamos analisar o que temos aqui:
<enter-command>set resolve=no<enter>
: não queremos avançar para a próxima mensagem após realizar a etapa seguinte,<clear-flag>N
: limpa o sinalizador Novo (ou seja, marca a mensagem como lida),<enter-command>set resolve=yes<enter>
: restaura o comportamento original (para avançar para a próxima mensagem sempre que um comando que modifica a mensagem atual for executado),<save-message>=Archive<enter>
: salva a mensagem original na pasta de arquivo,i
para o Pager : pula para o Índice primeiro (necessário para que o resto funcione corretamente).Uso: basta pressionar Esc- ano Índice ou no Pager . :)