존재하다바보, 파일 브라우저를 사용할 수 있습니까?비빔또는숲지기(아마도멀티플렉서분할)을 사용하여 이메일에 첨부할 파일을 선택하시겠습니까?
답변1
tmux 분할에서 레인저를 열고(제안한 가능성) 첨부할 파일을 선택하고 mutt를 사용하여 파일 이름과 해당 경로를 복사한 yp
다음 mutt 첨부 창으로 돌아가 a
첨부 파일 경로와 파일 이름을 누르고 붙여넣을 수 있습니다. 추가 창 맨 아래 줄을 열고 를 누릅니다 Enter
.
파일 이름의 공백 문제(@Rastapopolous의 의견에 대한 응답)와 관련하여 나는 공백을 사용하지 않는 강한 습관이 있다는 것을 깨달았지만 레인저에서 경로를 붙여넣는 위의 방법을 다시 테스트한 결과 파일 이름에 공백이 있는 경우 어떤 이유에서인지 발견했습니다. , mutt에 붙여넣은 첨부 파일 이름에 중복된 이름이 있습니다! 백스페이스를 사용하여 "첨부 파일"을 제거할 수 있으며 공백이 탈출되지 않은 경우에도 첨부 파일을 쉽게 보낼 수 있습니다. vim에서 레인저의 경로 복사본을 테스트했는데 올바르게 붙여넣었지만 mutt에서는 붙여넣지 못했습니다.
나는 tmux 사용에 익숙했기 때문에 이것이 비교적 간단한 방법이라는 것을 알았습니다.
또는 tmux와 별도로 .bashrc에 다음 스크립트도 있습니다.
# email an attachment
function mail_attach ()
{
mutt -F ~/.muttrc -a "$@" -- [email protected];
}
export -f mail_attach
이는 이메일을 작성하기 전에 첨부 파일을 추가하려는 경우에 유용합니다. 따라서 레인저에서 파일을 선택하고 다음을 입력하여 s
선택한 파일을 나타내는 셸 명령줄을 엽니다 %f
. 예:
:shell mail_attach %f
누르면 Enter
선택한 파일이 첨부된 이메일을 작성할 수 있는 mutt 편집기가 열립니다. 그러나 수신자 이메일 주소를 원하는 주소로 변경해야 합니다. 어쩌면 빈 "받는 사람" 필드가 있는 이메일 편집기를 열도록 기능을 변경하는 방법이 있을 수 있지만 아직 이에 대해 충분히 알지 못합니다. 그러나 나는 그것이 큰 문제라고 생각하지 않습니다.
여러 파일의 경우 동일한 폴더에 있으면 모두 선택한 다음 @
Ranger 단축키를 눌러 다음과 같은 셸 명령줄을 엽니다. 여기서 %s
선택한 파일에 대한 참조는 다음과 같습니다.
:shell %s
그런 다음 mail_attach
앞에 삽입 %s
하고 Enter를 눌러 mutt를 열어 선택한 모든 파일이 첨부된 이메일을 작성하세요. 다른 폴더에 있는 파일을 첨부하고 싶으면 같은 폴더에 모으는 것 외에는 방법을 모르겠습니다.
이 기능을 만든 사람에게 감사를 표하고 싶지만 더 이상 그 기능이 어디서 왔는지 모르겠습니다. 나는 그것이 내가 아니라는 것을 압니다.
답변2
@John Flood의 답변은 이에 대해 더 많이 생각하도록 영감을 주었고 잘 작동하는 것 같은 다음 해결 방법을 생각해 냈습니다.
다음 스크립트를 mutt_attach
의 어딘가에 저장하고 대신 $PATH
리터럴 문자를 사용하십시오 ( 에서는 삽입 모드에서 키를 누르면 됩니다) .Return
^M
vim
<c-v><Return>
#!/usr/bin/env bash
tmp=$(mktemp)
vifm "$HOME" -c "set nohlsearch" --choose-files "$tmp"
# ranger "$HOME" --choosefiles="$tmp"
while IFS="" read -r file; do
tmux send-keys -t email:Email.0 -l "a$file^M";
done < "$tmp"
에서 .muttrc
정의
macro compose \CA "!mutt_attach\n"
이제 이름이 지정된 세션에서 창의 첫 번째 창을 열고 mutt
(예: 만들기 명령 사용. 세션, 창 및 창 지정은 주로 디버깅 목적으로 사용됨) 작성 메뉴를 누르면 다음과 같은 메시지가 표시됩니다. 모드를 열면 선택한 파일이 자동으로 첨부됩니다.Email
tmux
email
tmux new -s email
Control+A
vifm
choose-files
더 좋은 점은 vifm
사용 t
(또는 시각적 모드) ranger
에서 여러 파일에 태그를 지정 하고 Space
동시에 사용하고 추가할 수 있다는 것입니다!
편집하다:내 버전의 mutt에서는 첨부 파일 작성 메뉴에 공백을 입력하는 것이 불가능해 보이기 때문에 공백이 포함된 파일 이름에는 이 코드가 작동하지 않는다는 것을 알았습니다. 다음은 (다소 추악한) 해결 방법입니다.
#!/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 spaces
if [[ "$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"