পুশডাউন টার্মিনাল আউটপুট


16

টার্মিনাল আউটপুটটির আউটপুট ক্রমটি বিপরীত করার কোনও মানক উপায় আছে, যেমন:

~/Developer $ command0 
-bash: comman0: command not found 
~/Developer $ command2 
-bash: command2: command not found 
~/Developer $ command3 
-bash: command3: command not found 
~/Developer $ 

হিসাবে প্রদর্শিত হবে:

~/Developer $ 
-bash: command3: command not found 
~/Developer $ command3 
-bash: command2: command not found 
~/Developer $ command2 
-bash: comman0: command not found 
~/Developer $ comman0

আমি সর্বদা নীচে আপনার প্রম্পট থাকা আউটপুট অর্ডার বিপরীত হতে পারে আউটপুট উপস্থাপনের আরও কার্যকর উপায় প্রতিরোধ স্বজ্ঞাত হয় অনুভূত। আমি কীভাবে এটি বাস্তবায়ন করতে পারি? বিশেষত যেখানে ওএসএক্স টার্মিনাল প্রোগ্রামের আউটপুট অংশটি সংজ্ঞায়িত করা হয়?


এটি আমাকে বিভ্রান্ত করবে, তবে আমি আপনার প্রচেষ্টাকে সাধুবাদ জানাই। লিনাক্স / ইউনিক্স / ওপেন সোর্স মেজর কমগুলি অন হ'ল ওয়ান সাইজ সব ফিট করে না।
ব্রুস এডিগার

আমি মনে করি আপনি যদি শেলের উত্স কোডটি পরিবর্তন না করেন তবে এগুলি মোটেই সম্ভব নয় (উদাঃ) bash ) ।
Renan

5
আপনাকে খোলসের চেয়ে বেশি কিছু হ্যাক করতে হবে। টার্মিনালগুলি ইলেক্ট্রোমেকানিকাল হওয়ার পরে থেকেই এইভাবে স্ক্রোল করছে। খুব কমপক্ষে, আমি বলব আপনাকে টার্মিনাল এমুলেটর হ্যাক করতে হবে, সম্ভবত একটি শেলও।
অ্যালেক্সিয়াস

এটি আসলে স্বাক্ষরকারী পাল্টা। ENTER কী তীরটি লক্ষ্য করেছেন? এটি উপরের নয়, নীচের লাইনের দিকে নির্দেশ করে।
dresende

টার্মিনাল থেকে আউট আইটেমগুলি ধরার কোনও উপায় আছে, আমার চিন্তাভাবনা এমন কিছু ধরণের রেপার তৈরি করা যা এই প্রতিটি আউটপুট আইটেমকে ধরে ফেলবে, তাদের প্রত্যেকের সাথে সামঞ্জস্য রাখে যে কীভাবে টুইট সর্বদা নতুন সাথে সর্বদা উপস্থিত থাকে এবং পোস্ট করা হয় to র‍্যাপার ইউআইয়ের শীর্ষে ইনপুট প্রম্পটটি আটকে রাখা।
rudolph9

উত্তর:


6

বাশ এ এটি শীর্ষে বর্তমান প্রম্পট / কমান্ড এবং নীচে এর আউটপুট প্রদর্শন করবে তবে কোনও স্ক্রোলিং বা পূর্ববর্তী কমান্ড ছাড়াই:

PROMPT_COMMAND='tput cup 0 0; tput el; tput el1'

এই ফাংশনটি পূর্ববর্তী কমান্ডগুলি নীচে রাখবে, তবে আপনাকে প্রতিটি কমান্ড পৃথকভাবে পাইপ করতে হবে। দুর্ভাগ্যক্রমে, exec > >(f)এটির সাথে সাহায্য করতে পারে না কারণ এটি সম্পূর্ণ ব্যাশকে পুনর্নির্দেশ করে, স্বতন্ত্র আদেশগুলি নয়। ফাংশনটি এখানে:

f () { tee ~/.STDIN | wc -l | xargs expr 1 + | xargs tput il && cat ~/.STDIN; }

তারপরে প্রতিটি কমান্ড চালান:

command args |f

এটি আউটপুট সংরক্ষণ করে, দৈর্ঘ্য + 1 সমান অনেকগুলি ফাঁকা রেখা তৈরি করে, তারপরে আউটপুটটিকে আবার পিছনে ফেলে দেয় You যেমন

printf '%*s' $COLUMNS | tr ' ' _;

এই পুরো ফাংশনটির শঙ্কিত তবে স্বয়ংক্রিয় বিকল্প হিসাবে, আমরা আমাদের পূর্ববর্তী $ PROMPT_COMMAND এর শেষে একটি কমান্ড যুক্ত করতে পারি যা কিছুটা নির্বিচারে ১১ টি লাইন সাফ করে:

PROMPT_COMMAND='tput cup 0 0; tput el; tput el1; tput il 11'

আপনি tput -Sএকাধিক বাইনারি কল এড়াতেও ব্যবহার করতে পারেন ।


আমি https://github.com/swirepe/alwaysontop$PROMPT_COMMAND থেকে পেয়েছি ।


6

দুর্ভাগ্যক্রমে, এটি মোটামুটি কঠিন হবে। অ্যাপ্লিকেশন এবং ওএস-এক্স টার্মিনালের মধ্যে প্রোটোকলটি ভিটি 100 / এএনএসআই টার্মিনাল কন্ট্রোল প্রোটোকলের একটি বৈকল্পিক , বিশেষত এক্সটির্ম প্রোটোকলের ।

এর মধ্যে স্ক্রিন অবস্থান ইত্যাদি সম্পর্কে একগুচ্ছ অনুমান অন্তর্ভুক্ত রয়েছে যা প্রদর্শন এমন একটি পৃথিবীতে পুনর্নির্মাণ করা চ্যালেঞ্জক হবে যেখানে প্রদর্শনটি উল্টো হয়েছিল।

আরও খারাপ, আপনার সমস্ত টার্মিনাল এমুলেটরটি হ'ল "এই অক্ষরটিকে এই অবস্থানে রাখুন" টাইপ কমান্ডের স্ট্রিং। কমান্ড প্রম্পট এবং এটি দ্বারা চালিত কমান্ডের আউটপুটটির মধ্যে কোনও পার্থক্য নেই, সুতরাং আপনি উভয় অংশের জন্য একটি কাজ করতে পারবেন না - কমপক্ষে, নীচের শেলটির সহযোগিতা ছাড়াই নয়।

শেল এবং প্রোগ্রামগুলি ধরে নেয় যে স্ক্রিনটি উপরের দিকে চলে গেছে - নীচে নতুন ডেটা এবং নীচে চিরতরে বহন করে।

আপনি, অন্তত তাত্ত্বিকভাবে, আপনার টার্মিনাল এমুলেটরটি সংশোধন করতে পারেন যাতে এটি বিপরীত ক্রমে লাইনগুলি প্রদর্শন করে - "নীচে" লাইনটি প্রথমে এবং স্ক্রিনের নীচে "শীর্ষ" রেখা পর্যন্ত।

এটি কমান্ড আউটপুটে লাইনের ক্রমটিকে বিপরীত করবে, যদিও, অন্যান্য সামগ্রীটিও পিছনের দিকে চলে যাবে। আপনি যদি কমান্ডগুলি (যেমন: এলএস, বিড়াল) "ডাউন" চালাতে চান তবে "আপ" জীবন সরানোর অনুরোধ জানানো হয় তবে জীবন আরও কঠিন।

আমি এটি প্রয়োগ করে এমন কোনও সফ্টওয়্যার জানি না। (... তবে একটি লিঙ্কের জন্য জেডিবিডি এর মন্তব্য দেখুন)) :)



6

যদিও এটি হুবহু ফলাফলকে বিপরীত করবে না, এটি আপনার প্রম্পটটিকে শীর্ষে রাখবে:

https://github.com/swirepe/alwaysontop

এটি চালাতে ব্যবহার করুন:

git clone https://github.com/swirepe/alwaysontop.git
cd alwaysontop/
source alwaysontop.sh

আপনি যদি সিদ্ধান্ত নেন যে এটি পছন্দ করে তবে এটি আপনার .bash_ প্রোফাইলে এর মতো কিছু সহ উত্স:

echo "source ~/alwaysontop/alwaysontop.sh" >> ~/.bash_profile

1
এটি কিছুটা বগি (যেমন ট্যাব-স্বতঃসিদ্ধ এবং ইতিহাস সহ) তবে এটি সঠিকভাবে প্রয়োগ করা না হলে এই ইউআইয়ের কী মনে হতে পারে এটি খুব ভাল একটি ডেমো। আমি মনে করি এটি এর জন্য মূল্যবান - লোকেরা এটি চায় কিনা তা জানাতে সহায়তা করার জন্য!
স্কিপাইলট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.