No mutt , é possível usar um navegador de arquivos como vifm ou ranger (possivelmente em uma divisão do tmux ) em vez do navegador de arquivos padrão para selecionar um arquivo para anexar a um email?
Você pode abrir o ranger em uma divisão do tmux (uma possibilidade sugerida), selecionar o arquivo a ser anexado, copiar o nome do arquivo com o caminho usando yp e, em seguida, retornar à janela de anexação do mutt, pressionar ae colar o caminho e o nome do arquivo no diretório linha que se abre na parte inferior da janela de conexão e pressione Enter.
Com relação à questão de espaços no nome do arquivo (em resposta ao comentário de @Rastapopolous), percebi que tenho um forte hábito de não usá-los, mas testando novamente o método acima para colar o caminho do guarda florestal, acho que quando o nome do arquivo possui espaços, por alguma razão, o nome do anexo colado no mutt tem uma repetição de parte do nome anexada! Pode-se retroceder para remover o "apêndice" e o anexo é prontamente enviado, mesmo com os espaços não escapados. Testei a cópia do caminho do ranger no vim e cola corretamente, mas não no vira-lata.
Como eu costumo usar o tmux, acho esse método relativamente simples.
Como alternativa e independentemente do tmux, também tenho o seguinte script no meu .bashrc:
# email an attachment
function mail_attach ()
{
mutt -F ~/.muttrc -a "$@" -- [email protected];
}
export -f mail_attach
Isso é útil quando você sabe que irá anexar antes de escrever um email. Portanto, de dentro do ranger, basta selecionar um arquivo, digitar spara abrir uma linha de comando do shell e indicar o arquivo selecionado com %f, ou seja:
:shell mail_attach %f
Pressionar Enterabrirá o editor de mutt para compor um email que já possui o arquivo selecionado anexado. No entanto, é necessário alterar o endereço de email do destinatário para o desejado. Talvez haja uma maneira de alterar a função para abrir o editor de email com um campo "Para" em branco, mas não sei o suficiente. No entanto, eu não acho isso um grande negócio.
Para vários arquivos, se eles estiverem na mesma pasta, eu os seleciono todos e, em seguida, pressione @qual é um atalho de guarda florestal para abrir a linha de comando do shell como esta, onde %shá uma referência aos arquivos selecionados:
:shell %s
Em seguida, basta inserir mail_attachantes %se pressionar Enter para abrir o mutt para compor o email que já possui todos os arquivos selecionados. Se você deseja anexar arquivos de pastas diferentes, não sei como fazer isso além de reuni-los na mesma pasta.
Gostaria de dar crédito a quem criou a função, mas não sei mais de onde ela veio. Eu sei que não fui eu.
Obrigado pela sua resposta! Acabei de publicar um método alternativo, um pouco mais simplificado, que você pode achar interessante.
Rastapopoulos
Muito obrigado pela alternativa, no entanto, acho que sou muito casada com o ranger e, ao mesmo tempo, não tenho as habilidades necessárias para adaptar seu script ao ranger!
John Flood
Eu adaptei o script que publiquei para o ranger. A única desvantagem é que parece não funcionar para nomes de arquivos com espaços neles. (É apenas minha versão de vira-lata, ou é impossível escrever um <espaço> personagem do 'Anexar arquivo' menu compor?
Roberto Rastapopoulos
Bom truque, e você também pode fazer :shell mutt -a %fdiretamente a partir de ranger.
Rastapopoulos
1
Sua explicação sobre o "caractere de retorno literal" fez o truque! Seu script original agora funciona para mim. Obrigado @Rastapopoulos!
John Flood
1
A resposta de @ John Flood me inspirou a pensar um pouco mais sobre isso, e eu vim com a seguinte solução alternativa, que parece funcionar muito bem.
Salve o script a seguir como mutt_attachem algum lugar $PATH, com o Returncaractere alfabético em vez de ^M(em vim, isso é alcançado pressionando <c-v><Return>no modo de inserção).
Agora, se você abrir muttno primeiro painel da janela Emailem uma tmuxsessão chamada email(criada com, por exemplo, o comando tmux new -s email. A especificação da sessão, janela e painel é conveniente principalmente para fins de depuração) e pressionar Control+Ano menu de composição, vifmabrirá no choose-filesmodo , e o arquivo selecionado será anexado automaticamente.
Melhor ainda, isso permite que você marque vários arquivos vifmusando t(ou modo visual) e rangerusandoSpace e anexe todos eles ao mesmo tempo!
EDIT : notei que o código não funciona para nomes de arquivos que contêm espaços em branco, pois parece impossível digitar um espaço no menu de composição de anexos na minha versão do mutt ... Aqui está uma solução alternativa (um pouco feia):
#!/usr/bin/env bash# File in which to store the list of filenames to attach
tmp=$(mktemp)
vifm "$HOME"-c "set nohlsearch"--choose-files "$tmp"# ranger "$HOME" --choosefiles="$tmp"while IFS="" read -r file;do# Workaround for filenames that contain spacesif[["$file"=*" "*]];then
file_no_space=/tmp/$(basename "$file"| sed 's/ /_/g')
ln -s -f "$file""$file_no_space"
file="$file_no_space"fi
tmux send-keys -t email:Email.0-l "a$file^M";done<"$tmp"
Respostas:
Você pode abrir o ranger em uma divisão do tmux (uma possibilidade sugerida), selecionar o arquivo a ser anexado, copiar o nome do arquivo com o caminho usando
yp
e, em seguida, retornar à janela de anexação do mutt, pressionara
e colar o caminho e o nome do arquivo no diretório linha que se abre na parte inferior da janela de conexão e pressioneEnter
.Com relação à questão de espaços no nome do arquivo (em resposta ao comentário de @Rastapopolous), percebi que tenho um forte hábito de não usá-los, mas testando novamente o método acima para colar o caminho do guarda florestal, acho que quando o nome do arquivo possui espaços, por alguma razão, o nome do anexo colado no mutt tem uma repetição de parte do nome anexada! Pode-se retroceder para remover o "apêndice" e o anexo é prontamente enviado, mesmo com os espaços não escapados. Testei a cópia do caminho do ranger no vim e cola corretamente, mas não no vira-lata.
Como eu costumo usar o tmux, acho esse método relativamente simples.
Como alternativa e independentemente do tmux, também tenho o seguinte script no meu .bashrc:
Isso é útil quando você sabe que irá anexar antes de escrever um email. Portanto, de dentro do ranger, basta selecionar um arquivo, digitar
s
para abrir uma linha de comando do shell e indicar o arquivo selecionado com%f
, ou seja:Pressionar
Enter
abrirá o editor de mutt para compor um email que já possui o arquivo selecionado anexado. No entanto, é necessário alterar o endereço de email do destinatário para o desejado. Talvez haja uma maneira de alterar a função para abrir o editor de email com um campo "Para" em branco, mas não sei o suficiente. No entanto, eu não acho isso um grande negócio.Para vários arquivos, se eles estiverem na mesma pasta, eu os seleciono todos e, em seguida, pressione
@
qual é um atalho de guarda florestal para abrir a linha de comando do shell como esta, onde%s
há uma referência aos arquivos selecionados:Em seguida, basta inserir
mail_attach
antes%s
e pressionar Enter para abrir o mutt para compor o email que já possui todos os arquivos selecionados. Se você deseja anexar arquivos de pastas diferentes, não sei como fazer isso além de reuni-los na mesma pasta.Gostaria de dar crédito a quem criou a função, mas não sei mais de onde ela veio. Eu sei que não fui eu.
fonte
:shell mutt -a %f
diretamente a partir deranger
.A resposta de @ John Flood me inspirou a pensar um pouco mais sobre isso, e eu vim com a seguinte solução alternativa, que parece funcionar muito bem.
Salve o script a seguir como
mutt_attach
em algum lugar$PATH
, com oReturn
caractere alfabético em vez de^M
(emvim
, isso é alcançado pressionando<c-v><Return>
no modo de inserção).Em
.muttrc
, definaAgora, se você abrir
mutt
no primeiro painel da janelaEmail
em umatmux
sessão chamadaemail
(criada com, por exemplo, o comandotmux new -s email
. A especificação da sessão, janela e painel é conveniente principalmente para fins de depuração) e pressionarControl+A
no menu de composição,vifm
abrirá nochoose-files
modo , e o arquivo selecionado será anexado automaticamente.Melhor ainda, isso permite que você marque vários arquivos
vifm
usandot
(ou modo visual) eranger
usandoSpace
e anexe todos eles ao mesmo tempo!EDIT : notei que o código não funciona para nomes de arquivos que contêm espaços em branco, pois parece impossível digitar um espaço no menu de composição de anexos na minha versão do mutt ... Aqui está uma solução alternativa (um pouco feia):
fonte