বাশ প্রম্পটের জন্য বর্তমান উইন্ডো নম্বর পান


11

আমি স্ট্যাটাস বারটি প্রতিস্থাপন করতে চাই ash এর মতো বাশ প্রম্পট প্রদর্শন উইন্ডো নম্বর দিয়ে ① আমি কীভাবে শেলটিতে বর্তমান উইন্ডো নম্বর পেতে পারি?

এখানে TMUX_PANE env পরিবর্তনশীল রয়েছে, দুর্ভাগ্যক্রমে কোনও TMUX_WINDOW নেই।

আমার কাছে সবচেয়ে কাছেরটিটি হ'ল: tmux display-messageউইন্ডো / ফলক তথ্য ফ্ল্যাশ করতে, তারপরে সর্বশেষ লাইনটি নিয়ে tmux show-messagesপার্স করুন। প্রতিটি সময় প্রম্পট প্রদর্শিত হওয়ার পরে আমি উইন্ডো / ফলক তথ্য ফ্ল্যাশ করতে চাই না।

উত্তর:


14

display-message -pস্ট্যান্ডআউটে আউটপুট প্রেরণ করতে আপনি এটিকে আউটপুট থেকে বের করে এড়াতে ব্যবহার করতে পারেন show-messages:

tmux display-message -p '#I'

আপনি এ জাতীয় বৃত্তাকার সংখ্যায় রূপান্তর করতে পারেন ( বাশ সিনট্যাক্স; ৩.২.৪৮ এবং ৪.২.২০ সংস্করণ দিয়ে পরীক্ষা করেছেন):

circled_digits=$(printf %s \${$'\xEA',\`,{a..s}} | iconv -f UTF-16BE)
# circled_digits='⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳'

tmux_winidx_circled() {
    local winidx=$(tmux display-message -p '#I')
    if (( winidx > 20 )); then
        echo "($winidx)"
    else
        echo "${circled_digits:$winidx:1}"
    fi
}

প্রথম লাইনটি খাঁটি ASCII এ চমৎকার; যদি আপনার কনফিগারেশন ফাইলটিতে অ-এসসিআইআই অক্ষর না থাকার বিষয়টি আপনি আপত্তি করেন না, তবে আপনি পরিবর্তে দ্বিতীয় লাইনের সাথে যেতে পারেন (এটি অবশ্যই আপনার সম্পাদক এবং শেলটি ফাইলের এনকোডিংটি সঠিকভাবে পরিচালনা করতে পারে বলে ধরে নিচ্ছে) obvious

তারপরে আপনি এটি ব্যবহার করতে পারেন:

PS1="$(tmux_winidx_circled) \W➤ "

3

শেল আরম্ভ করার সময় tmux বার্তাটি ফ্ল্যাশ করতে এবং এটি সংরক্ষণ করার জন্য আমার যা দরকার ছিল তা হ'ল। ডি-আহা!

tmux display-message
export TMUX_WINDOW=$(tmux show-messages | tail -1 | grep -o '\[[0-9]\] \([0-9]\)' | grep -o '[0-9]$')
PS1="$(echo $TMUX_WINDOW) \W➤ "

এখন আমার প্রম্পটটি দেখে মনে হচ্ছে:

[2] ~➤  

আর যা বাকী রয়েছে তা পার্সিংয়ের উন্নতি করা এবং সুন্দর ইউনিকোডের বৃত্তযুক্ত অঙ্কের অক্ষরগুলির সাথে নিয়মিত অঙ্কগুলি প্রতিস্থাপন - তবে এটি অন্য গল্প।

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