में मठ , यह इस तरह के रूप में एक फ़ाइल ब्राउज़र का उपयोग करना संभव है vifm या रेंजर (संभवतः एक में tmux एक ईमेल से संलग्न करने के लिए फ़ाइल चुनने के लिए डिफ़ॉल्ट फ़ाइल ब्राउज़र के बजाय विभाजन)?
में मठ , यह इस तरह के रूप में एक फ़ाइल ब्राउज़र का उपयोग करना संभव है vifm या रेंजर (संभवतः एक में tmux एक ईमेल से संलग्न करने के लिए फ़ाइल चुनने के लिए डिफ़ॉल्ट फ़ाइल ब्राउज़र के बजाय विभाजन)?
जवाबों:
आप रेंजर को tmux विभाजन (आपके द्वारा सुझाए गए एक संभावना) में खोल सकते हैं, संलग्न होने के लिए फ़ाइल का चयन करें, फ़ाइल पथ का उपयोग करके इसके पथ की प्रतिलिपि बनाएँ yp
और फिर म्यूट अटैच विंडो पर वापस लौटें, a
अनुलग्नक पथ को दबाएं और दूरस्थ में फ़ाइल का नाम पेस्ट करें लाइन जो अटैच विंडो के नीचे खुलती है और दबाएँ Enter
।
फ़ाइल नाम में रिक्त स्थान के मुद्दे के बारे में (@Rastapopolous की टिप्पणी के जवाब में), मुझे एहसास हुआ कि मुझे उनका उपयोग न करने की मजबूत आदत है, लेकिन रेंजर से रास्ता चिपकाने की उपरोक्त विधि का पुन: परीक्षण कर रहा हूं, मुझे लगता है कि जब फ़ाइल का नाम रिक्त स्थान है, किसी कारण से, म्यूट में चिपकाए गए अनुलग्नक नाम में संलग्न नाम के हिस्से की पुनरावृत्ति है! कोई "उपांग" को हटाने के लिए बैकस्पेस दे सकता है और अटैचमेंट को आसानी से भेजा जाता है यहां तक कि रिक्त स्थान से बचने के साथ भी। मैंने रेंजर से पथ की प्रतिलिपि का परीक्षण विम में किया और यह सही ढंग से चिपकाया, लेकिन म्यूट में नहीं।
चूँकि मैं आदतन 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
और एंटर दबाने पर ईमेल कंपोज़ करने के लिए म्यूट खुल जाएगा जिसमें पहले से ही सभी चुनिंदा फाइलें जुड़ी हुई हैं। यदि आप अलग-अलग फ़ोल्डरों से फाइल अटैच करना चाहते हैं, तो मुझे नहीं पता कि कैसे करना है इसके अलावा उन्हें एक ही फोल्डर में इकट्ठा करना है।
मैं इस बात का श्रेय देना चाहूंगा कि जिसने भी फंक्शन बनाया है, लेकिन मैं नहीं जानता कि यह कहां से आया है। मुझे पता है कि यह मैं नहीं था।
:shell mutt -a %f
सीधे से भी कर सकते हैं ranger
।
@ जॉन फ्लड के जवाब ने मुझे इस बारे में थोड़ा और सोचने के लिए प्रेरित किया, और मैं निम्नलिखित वर्कअराउंड के साथ आया, जो काफी अच्छी तरह से काम करता है।
निम्नलिखित लिपि को 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
, और उन सभी को एक ही समय में संलग्न करता है!
संपादित करें : मैंने देखा कि कोड में ऐसे फ़ाइलनामों के लिए काम नहीं किया जाता है, जिनमें व्हॉट्सएप होते हैं, क्योंकि मेरे म्यूट के संस्करण में अटैचमेंट कंपोज मेनू में जगह टाइप करना असंभव लगता है ... यहाँ एक (कुछ बदसूरत) वर्कअराउंड है:
#!/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"