에서 똥개 , 그것은 같은 파일 브라우저를 사용하는 것이 가능하다 vifm 또는 레인저 (아마도에서 TMUX의 이메일에 첨부 할 파일을 선택하는 대신 기본 파일 브라우저의 분할)?
에서 똥개 , 그것은 같은 파일 브라우저를 사용하는 것이 가능하다 vifm 또는 레인저 (아마도에서 TMUX의 이메일에 첨부 할 파일을 선택하는 대신 기본 파일 브라우저의 분할)?
답변:
tmux 분할에서 레인저를 열고 (추천 가능) 첨부 할 파일을 선택하고 경로를 사용하여 파일 이름을 복사 yp
한 다음 mutt attach 창으로 돌아가서 a
첨부 파일 경로와 파일 이름을 첨부 창의 맨 아래에있는 줄을 열고를 누릅니다 Enter
.
파일 이름의 공백 문제 (@Rastapopolous의 의견에 대한 응답)와 관련하여 공간을 사용하지 않는 강한 습관이 있음을 깨달았지만 레인저에서 경로를 붙여 넣는 위의 방법을 다시 테스트하면 파일 이름에 공백이 있습니다. 어떤 이유로 든 mutt에 붙여진 첨부 파일 이름에 추가 된 이름의 일부가 반복됩니다! "부록"을 제거하기 위해 백 스페이스를 사용할 수 있으며, 이스케이프되지 않은 공간에서도 첨부 파일을 쉽게 보낼 수 있습니다. vim에서 레인저의 경로 복사를 테스트했으며 올바르게 붙여 넣지 만 음소거 상태는 아닙니다.
습관적으로 tmux를 사용하기 때문에 비교적 간단한 방법입니다.
tmux와는 별도로 또는 독립적으로 .bashrc에 다음 스크립트가 있습니다.
# email an attachment
function mail_attach ()
{
mutt -F ~/.muttrc -a "$@" -- myemail@gmail.com;
}
export -f mail_attach
이메일을 작성하기 전에 첨부 할 것임을 알 때 유용합니다. 따라서 레인저 내에서 파일을 선택 s
하고 셸 명령 줄을 열도록 입력하고 선택한 파일을로 표시합니다 %f
.
:shell mail_attach %f
를 누르면 Enter
이미 선택된 파일이 첨부 된 이메일을 작성하기위한 뮤트 편집기가 열립니다. 그러나 수신자 이메일 주소를 원하는 주소로 변경해야합니다. 비어있는 "받는 사람"필드를 사용하여 전자 메일 편집기를 열도록 기능을 변경하는 방법이있을 수 있지만 충분하지 않습니다. 그러나 나는 이것이 큰 문제라고 생각하지 않습니다.
여러 파일의 경우 동일한 폴더에있는 경우 모두 선택하고 선택한 파일에 대한 참조가있는 @
다음과 같이 쉘 명령 줄을 여는 레인저 바로 가기 인을 누릅니다 %s
.
:shell %s
그런 다음 mail_attach
이전에 단순히 삽입 %s
하고 Enter 키를 누르면 선택한 모든 파일이 이미 첨부 된 이메일을 작성하기 위해 음소거가 열립니다. 다른 폴더의 파일을 첨부하려면 동일한 폴더에 파일을 수집하는 것 외에는 그렇게하는 방법을 모르겠습니다.
함수를 만든 사람에게 신용을주고 싶지만 더 이상 어디에서 왔는지 알 수 없습니다. 나는 내가 아니었다는 것을 안다.
:shell mutt -a %f
에서 직접 할 수도 있습니다 ranger
.
@ John Flood의 대답은 이것에 대해 조금 더 생각하도록 영감을 주었고 다음 해결 방법을 생각해 냈습니다.
로 다음 스크립트 저장을 mutt_attach
어딘가에 $PATH
litteral와, 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
A의 tmux
이름이 세션 email
(예를 들어, 사용하여 만든 명령을 tmux new -s email
세션 창을 지정. 그리고 창 목적으로 디버깅을 위해 주로 편리합니다) Enter 키를 누릅니다 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"