টার্মিনাল ইনপুট সঠিকভাবে বা মোটেও মোড়বে না


15

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

লাইনের শুরুতে ফিরে আসতে Ctrl-A টিপতে পরিবর্তে আমার প্রথম ইনপুট লাইনের আগে লাইনটিতে কোথাও আমাকে ফিরিয়ে আনবে, যেখান থেকে আর কোনও ইনপুট খুব অদ্ভুত হয়ে যায়।

কারণ এটি সত্যিই একটি খারাপ ব্যাখ্যা এবং কল্পনা করা শক্ত, এটি এখানে কেমন দেখাচ্ছে:

স্ক্রিনক্যাপ: লাইন মোড়ানোর পরীক্ষা

কেউ কি জানো এটা কি? এটি কেবল নির্দিষ্ট পরিস্থিতিতে ঘটে না, এটি একটি স্থায়ী জিনিস যা প্রতিটি টার্মিনাল এমুলেটরের প্রতিটি সেশনের শুরু থেকে শেষ পর্যন্ত সর্বদা থাকে।

এর আউটপুট printf "%s\n" "$PS1" "$COLUMNS":

leod:~$ printf "%s\n" "$PS1" "$COLUMNS"
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 
80

এর আউটপুট stty -a:

leod:~$ stty -a
speed 38400 baud; rows 11; columns 140; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

3
printf "%s\n" "$PS1" "$COLUMNS"দয়া করে এর আউটপুট যুক্ত করুন।
মুড়ু

এটি হতে পারে আপনার প্রোগ্রামটি testঅস্থির অবস্থায় টার্মিনালটি ছেড়ে যায়। যদি এটি কোনও স্ক্রিপ্ট হয় তবে আপনি কি আপনার প্রশ্নের মধ্যে এটি অন্তর্ভুক্ত করতে পারেন? আপনি যদি testপ্রথমে চালনা না করে টাইপ করা শুরু করেন তবে কি সাধারণত পাঠ্য মোড়ানো হয়?
WinEunuuchs2Unix

1
আমরা কি পাশাপাশি আউটপুট দেখতে পারি stty -a?
স্টিল্ড্রাইভার

1
@ WinEunuuchs2 ইউনিক্স ভুল পরীক্ষা (পাং উদ্দেশ্যে)। type -a testপরিবর্তে চেষ্টা করুন।
মুরু

1
এর আউটপুট কি printf "%q\n" "$PS1"? পিএস 1 এর ভিতরে কাঁচা পালানোর ক্রমগুলি থাকতে পারে এবং %sসেগুলি অক্ষত রেখে দেয় (যা উদাহরণস্বরূপ রঙটি পিছনে পিছনে বদলে দেয় যা আউটপুটে নজরে না থাকে)। %qপ্রতিটি অ-প্রিন্টযোগ্য অক্ষর পাঠযোগ্য উপায়ে উদ্ধৃত করে।
উদাহরণস্বরূপ

উত্তর:


7

আপনার টার্মিনালটি উইন্ডোর আকারকে সঠিকভাবে স্বীকৃতি দিচ্ছে না এটি সম্ভব। আমি U&L স্ট্যাকেক্সচেঞ্জে সম্পর্কিত একটি প্রশ্ন পেয়েছি এবং কেউ নীচে কীভাবে এটি চলছে তা যাচাইয়ের পরামর্শ দিয়েছিল:

আদর্শ

shopt | grep checkwinsize

যদি আউটপুটটি না হয়:

checkwinsize    on

তুমি ব্যবহার করতে পার

shopt -s checkwinsize

চালু করতে. নিষ্ক্রিয় করতে:shopt -u checkwinsize


1
সম্ভবত আমি যথেষ্ট পরীক্ষা করিনি তবে আমার checkwinsizeইতিমধ্যে ছিল on। আমি shopt -u checkwinsizeএটি বন্ধ করে দিতাম এবং আমার টার্মিনালটি এখনও পাঠ্যকে সঠিকভাবে জড়িত করে। আমি নিশ্চিত নই যে এই উত্তরটি সত্যই ওপি সমস্যার সমাধান করে।
WinEunuuchs2 ইউনিক্স

উজ্জ্বল। এটি আমার প্রয়োজনীয় ফিক্স। কমান্ড লাইন মোড়ানো এখন পুরোপুরি 80 টিরও বেশি অক্ষরের সাথে কাজ করে।
রেন্ডি

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