tmux প্রতি ফলক শিরোনাম সমর্থন করে, তবে এই শিরোনামগুলি প্রদর্শন করার জন্য এটি প্রতি-ফলকের অবস্থান সরবরাহ করে না।
আপনি পালাবার ক্রম চট্টগ্রাম সিটি কর্পোরেশন এর সাথে একটি ফলকে শিরোনাম সেট করতে পারেন ]2;
... চট্টগ্রাম সিটি কর্পোরেশন \
(যেমন অধ্যায় নামক দেখতে নাম ও নমুনা এ থেকে জেড মধ্যে tmux র manpage)। আপনি শেল থেকে এটির মতো এটি করতে পারেন:
printf '\033]2;%s\033\\' 'title goes here'
প্রতিটি ফলকের শিরোনামটি সিস্টেমের হোস্টনামের ডিফল্ট হয়। ডিফল্টরূপে সক্রিয় ফলকে শিরোনাম ডানদিকে প্রদর্শিত হয় tmux অবস্থা লাইন (অধিবেশন পরিবর্তনশীল এর ডিফল্ট বৈশ্বিক মান status-right
হয় "#22T" %H:%M %d-%b-%y
, যা শো ফলকে শিরোনাম, সময়, এবং তারিখ 22 অক্ষর)।
সুতরাং, যতক্ষণ না আপনি সক্রিয় ফলকের শিরোনামটি দেখতে সক্ষম হয়ে সন্তুষ্ট হন (অর্থাত্ একটি নিষ্ক্রিয় ফলকের শিরোনামটি দেখতে প্যানগুলি স্যুইচ করতে ইচ্ছুক), আপনি ডিফল্ট কার্যকারিতাটি পেতে পারেন। প্রতিটি ফলকের জন্য প্রধান কমান্ড শুরু করার আগে যথাযথ শিরোনাম-সেটিং-এড়াক সিকোয়েন্সটি প্রেরণ করুন।
আপনার প্রতি-ফলকের তথ্য প্রদর্শন করার জন্য যদি পুরোপুরি ডেডিকেটেড লাইনের প্রয়োজন হয়, তবে নেস্টেড টিএমউक्स সেশনগুলি আপনার প্রথমে মনে হতে পারে তত বেশি (অপ্রয়োজনীয়) "ওভারকিল" নাও হতে পারে।
সাধারণ ক্ষেত্রে, কিছু প্রদত্ত টার্মিনালে একটি চালিত স্থিতি রেখা সরবরাহ করতে আপনার একটি সম্পূর্ণ টার্মিনাল (পুনরায়) এমুলেটর প্রয়োজন যা মূল টার্মিনাল এবং একটি নতুন টার্মিনালের (একটিতে কম লাইনযুক্ত একটি) এর মধ্যে বসে থাকে। এই জাতীয় (পুনরায়) অনুকরণটি অভ্যন্তরীণ টার্মিনালে প্রেরিত কন্ট্রোল সিকোয়েন্সগুলি অনুবাদ করতে এবং মূল টার্মিনালের জন্য তাদের অনুবাদ করতে প্রয়োজন। উদাহরণস্বরূপ, বাইরের টার্মিনালের নীচে স্থিতি রেখা বজায় রাখতে কমান্ডটি
শেষ লাইনে যান।
অভ্যন্তরীণ টার্মিনালে প্রেরিত হতে হবে
শেষ লাইনের পরের দিকে যান।
যখন অনুবাদ হয় এবং বাইরের টার্মিনালে প্রেরণ করা হয়। একইভাবে, অভ্যন্তরীণ টার্মিনালে প্রেরিত একটি এলএফ অবশ্যই হয়ে উঠবে
যদি কার্সারটি শেষ লাইনের পরের দিকে থাকে, তবে একটি স্পষ্ট পরবর্তী-থেকে-শেষ লাইনটি সরবরাহ করতে (শেষ লাইনের স্থিতি রেখাটি সুরক্ষিত করতে) এই লাইনটি এবং তার উপরে সমস্ত লাইন এক লাইন উপরে স্ক্রোল করুন। অন্যথায়, একটি এলএফ পাঠান।
বাইরের টার্মিনালে
Tmux এবং স্ক্রিনের মতো প্রোগ্রামগুলি কেবল এই জাতীয় টার্মিনাল পুনরায় ইমুলেটর। অবশ্যই, টার্মিনাল এমুলেটরটির চারপাশে অন্যান্য অনেক কার্যকারিতা আবৃত রয়েছে তবে কেবলমাত্র নির্ভরযোগ্য স্ট্যাটাস লাইন সরবরাহ করতে আপনার টার্মিনাল এমুলেশন কোডের একটি বৃহত অংশ প্রয়োজন need
তবে যতক্ষণ না একটি হালকা ওজন সমাধান রয়েছে
- আপনার প্রোগ্রামগুলির ( নোড.জেএস উদাহরণস্বরূপ) যে প্যানেগুলি চলছে সেগুলির সাথে সীমিত টার্মিনাল মিথস্ক্রিয়া রয়েছে (যেমন কোনও কার্সার অবস্থান নেই), এবং
- আপনার প্রোগ্রামগুলি চলাকালীন আপনি ফলকের আকার পরিবর্তন করবেন না।
অনেক টার্মিনাল এমুলেটরগুলির মতো, tmux তার প্যানে একটি "সেট স্ক্রোলিং অঞ্চল" টার্মিনাল নিয়ন্ত্রণ কমান্ড সমর্থন করে supports আপনি এই কমান্ডটি টার্মিনালের শীর্ষে (বা নীচে) এন -1 লাইনে স্ক্রোলিং অঞ্চলটি সীমাবদ্ধ করতে এবং অ-স্ক্রোলিং লাইনে কিছু প্রকারের উদাহরণ-সনাক্তকারী পাঠ্য লিখতে পারেন।
বিধিনিষেধ (কোনও কার্সার আন্দোলনের কমান্ড অনুমোদিত নয়, পুনরায় আকার দেওয়ার প্রয়োজন নেই) প্রয়োজন কারণ প্রোগ্রাম যা আউটপুট উত্পন্ন করছে (যেমন একটি নোড.জেএস উদাহরণ) কোনও ধারণা নেই যে স্ক্রোলিং নির্দিষ্ট অঞ্চলে সীমাবদ্ধ হয়েছে। যদি আউটপুট-উত্পাদক প্রোগ্রামটি স্ক্রোলিং অঞ্চলের বাইরে কার্সারটি সরানোর জন্য ঘটে থাকে তবে আউটপুটটি গার্ফড হয়ে যেতে পারে। একইভাবে, টার্মিনাল পুনরায় আকার দেওয়া হলে টার্মিনাল এমুলেটর সম্ভবত স্বয়ংক্রিয়ভাবে স্ক্রলিং অঞ্চলটি পুনরায় সেট করে (সুতরাং "অ-স্ক্রোলিং লাইন" সম্ভবত স্ক্রোলিংয়ের সমাপ্ত হবে)।
আমি একটি স্ক্রিপ্ট লিখেছিলাম tput
যা উপযুক্ত নিয়ন্ত্রণ সিক্যুয়েন্সগুলি তৈরি করতে, নন-স্ক্রোলিং লাইনে লিখতে এবং কার্সারটিকে স্ক্রোলিং অঞ্চলে স্থানান্তরিত করার পরে একটি প্রোগ্রাম চালাতে ব্যবহার করে:
#!/bin/sh
# usage: no_scroll_line top|bottom 'non-scrolling line content' command to run with args
#
# Set up a non-scrolling line at the top (or the bottom) of the
# terminal, write the given text into it, then (in the scrolling
# region) run the given command with its arguments. When the
# command has finished, pause with a prompt and reset the
# scrolling region.
get_size() {
set -- $(stty size)
LINES=$1
COLUMNS=$2
}
set_nonscrolling_line() {
get_size
case "$1" in
t|to|top)
non_scroll_line=0
first_scrolling_line=1
scroll_region="1 $(($LINES - 1))"
;;
b|bo|bot|bott|botto|bottom)
first_scrolling_line=0
scroll_region="0 $(($LINES - 2))"
non_scroll_line="$(($LINES - 1))"
;;
*)
echo 'error: first argument must be "top" or "bottom"'
exit 1
;;
esac
clear
tput csr $scroll_region
tput cup "$non_scroll_line" 0
printf %s "$2"
tput cup "$first_scrolling_line" 0
}
reset_scrolling() {
get_size
clear
tput csr 0 $(($LINES - 1))
}
# Set up the scrolling region and write into the non-scrolling line
set_nonscrolling_line "$1" "$2"
shift 2
# Run something that writes into the scolling region
"$@"
ec=$?
# Reset the scrolling region
printf %s 'Press ENTER to reset scrolling (will clear screen)'
read a_line
reset_scrolling
exit "$ec"
আপনি এটি এর মতো ব্যবহার করতে পারেন:
tmux split-window '/path/to/no_scroll_line bottom "Node instance foo" node foo.js'
tmux split-window '/path/to/no_scroll_line bottom "Node instance bar" node bar.js'
tmux split-window '/path/to/no_scroll_line bottom "Node instance quux" node quux.js'
স্ক্রিপ্টটি tmux এর বাইরেও কাজ করা উচিত যতক্ষণ না টার্মিনালটি তার csr
এবং cup
টার্মিনো ক্ষমতা সমর্থন করে এবং প্রকাশ করে ।