মুটে বিকল্প ফাইল নির্বাচনকারী ব্যবহার করুন


13

ইন গাড়ল , এটা যেমন একটি ফাইল ব্রাউজারে ব্যবহার করা সম্ভব vifm বা রেঞ্জার (সম্ভবত একটি tmux একটি ইমেল সংযুক্ত করার জন্য একটি ফাইল নির্বাচন করতে ডিফল্ট ফাইল ব্রাউজারের পরিবর্তে বিভক্ত)?



1
মুট সম্পর্কিত প্রাসঙ্গিক বিষয়
ম্যাথিয়াস ব্রাউন

উত্তর:


2

আপনি টিএমউक्स বিভাজনে রঞ্জারটি খুলতে পারেন (একটি সম্ভাবনা যা আপনি প্রস্তাব করেছেন), সংযুক্ত করার জন্য ফাইলটি নির্বাচন করুন, এর পাথ দিয়ে ফাইলের নামটি অনুলিপি করুন 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
রাস্তাপোপল্লো

1
আপনার "আক্ষরিক প্রত্যাবর্তন চরিত্র" এর ব্যাখ্যাটি কৌতুকটি করেছিল! আপনার আসল লিপিটি এখন আমার পক্ষে কাজ করে। ধন্যবাদ @ রাস্তাপোপল্লোস!
জন বন্যা

1

@ জন বন্যার উত্তর আমাকে এই সম্পর্কে আরও কিছুটা ভাবতে অনুপ্রাণিত করেছিল এবং আমি নীচের কাজটি নিয়ে এসেছি, যা বেশ ভালভাবে কাজ করছে বলে মনে হচ্ছে।

নিম্নোক্ত স্ক্রিপ্টটি 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"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.