ইন গাড়ল , এটা যেমন একটি ফাইল ব্রাউজারে ব্যবহার করা সম্ভব vifm বা রেঞ্জার (সম্ভবত একটি tmux একটি ইমেল সংযুক্ত করার জন্য একটি ফাইল নির্বাচন করতে ডিফল্ট ফাইল ব্রাউজারের পরিবর্তে বিভক্ত)?
ইন গাড়ল , এটা যেমন একটি ফাইল ব্রাউজারে ব্যবহার করা সম্ভব vifm বা রেঞ্জার (সম্ভবত একটি tmux একটি ইমেল সংযুক্ত করার জন্য একটি ফাইল নির্বাচন করতে ডিফল্ট ফাইল ব্রাউজারের পরিবর্তে বিভক্ত)?
উত্তর:
আপনি টিএমউक्स বিভাজনে রঞ্জারটি খুলতে পারেন (একটি সম্ভাবনা যা আপনি প্রস্তাব করেছেন), সংযুক্ত করার জন্য ফাইলটি নির্বাচন করুন, এর পাথ দিয়ে ফাইলের নামটি অনুলিপি করুন yp
এবং তারপরে মুট সংযুক্ত উইন্ডোতে ফিরে আসুন, a
সংযুক্তির পথটি এবং ফাইলের নামটি টিপুন এবং পেস্ট করুন লাইন যা সংযুক্ত উইন্ডোর নীচে খোলে এবং টিপুন Enter
।
ফাইলের নামের জায়গাগুলির ইস্যু সম্পর্কে (@ রাস্তাপ্রতিষ্ঠানের মন্তব্যের প্রতিক্রিয়া হিসাবে) বুঝতে পেরেছিলাম যে এগুলি ব্যবহার না করার আমার দৃ strong় অভ্যাস রয়েছে, তবে রেঞ্জার থেকে রাস্তাটি পাস্ট করার উপরের পদ্ধতিটি পুনরায় পরীক্ষা করে দেখলাম যে যখন ফাইলের নাম ফাঁকা আছে, কোনও কারণে, মুটতে সংযুক্তিটির নাম সংযুক্ত নামের একটি অংশের পুনরাবৃত্তি রয়েছে! "অ্যাপেনডেজ" অপসারণ করতে কেউ ব্যাকস্পেস করতে পারে এবং স্পেসটি এড়ানোর পরেও সংযুক্তিটি সহজেই পাঠানো হয়। আমি রেমারের কাছ থেকে পাথের অনুলিপিটি ভিমে পরীক্ষা করেছিলাম এবং এটি সঠিকভাবে আটকায়, তবে মুটে নয়।
যেহেতু আমি অভ্যাসগতভাবে 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"