লিনাক্স: কালারিং ব্যাশ প্রম্পট ক্যারিজ রিটার্নকে ভেঙে দেবে


24

আমি যখন bashপ্রম্পটটিকে এভাবে রঙিন করার চেষ্টা করি :

export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

এটি ক্যারিজ রিটার্নটি ভেঙে ফেলেছে (লাইন পূর্ণ হয়ে গেলে নতুন লাইনে যাওয়ার পরিবর্তে এটি একই লাইনে শুরু হবে এবং ইনপুট পাঠ্যটি মুছে ফেলে)।

আমি যদি রঙের ক্রমটি সরিয়ে ফেলি তবে এটি সূক্ষ্মভাবে কাজ করে।
আমি উবুন্টু ১১.১০ এবং টার্মিনাল (গুয়াকের একই বাগ রয়েছে) ব্যবহার করি।


স্ট্রেঞ্জ। এটি রেডহ্যাট 5 এবং ম্যাক ওএস এক্স
মাত্তিও

উত্তর:


43

প্রম্পটের দৃশ্যমান দৈর্ঘ্যটি সঠিকভাবে গণনা করতে আপনাকে 'রিডলাইন' এর জন্য \[এবং এর \]মধ্যে সমস্ত পালানোর ক্রমগুলি আবশ্যক । তাদের ছাড়া, 'রিডলাইন' মনে করে যে প্রম্পটটি তার চেয়ে লম্বা, এবং কখন পাঠ্যটি মার্জিনে পৌঁছে know

পিএস 1 = " \ [ \ ই [; ৩১ মি। \] [\ ইউ @ \ এইচ \ ডাব্লু]] \ $ \ [ \ ই [এম \] "

4
অসংখ্য ধন্যবাদ!! আমি অফিসিয়াল ডক্সে এ সম্পর্কে কিছু ডকুমেন্টেশন সন্ধান করার চেষ্টা করছিলাম কিন্তু পারিনি - 'স্টক' রঙিন প্রম্পটে এই 'ট্রিক' ব্যবহার করে এবং প্রথমে এটি ঠিক কী ছিল তা নির্ধারণ করতে আমার বেশ কষ্ট হয়েছিল, তাই পরিষ্কার করার জন্য ধন্যবাদ আপ --- বিটিডব্লিউ আমি man৮৪ লাইনের আশেপাশে 'ম্যান রিডলাইন 3' তে ডকুমেন্টেশন উত্সটি খুঁজে পেয়েছি এবং এটি বলেছে যে এটিতে আসলে যারা এই বিষয়ে ডকুমেন্টেশন রয়েছে তা জানতে "স্কিপ-সিএসআই-সিকোয়েন্স" বলা হয়। আমি মনে করি না আপনি আমাকে পঠন পাঠানোর জন্য আমাকে নির্দেশ না করেই এটি পেয়ে গেছেন (3) যদিও আমি সংযোগটি তৈরি করতে আগে-ব্যর্থ হয়েছিলাম এটি সম্পর্কে আমি জানতাম।
ওসিরিগোথের

"মোড়ানো" এর অর্থ কী? আপনি পুরো জিনিস মোড়ানো মানে কি ইন একটি \[, \]? আমি অনুমান করি তবে এটি আমার পক্ষে কাজ করছে বলে মনে হয় না।
ম্যাক্স হাওয়েল

2
@osirisgothra: ডকুমেন্টেশনটি আসলে একটি ভিন্ন জিনিস সম্পর্কে কথা বলছে - skip-csi-sequenceএটি বিশেষ কী দ্বারা উত্পন্ন ইনপুট ক্রমগুলি দমন করতে বোঝানো হয়েছিল ।
মাধ্যাকর্ষণ

1
@ ম্যাক্সহোয়েল আপনাকে প্রতিটি \e[xxmক্রম মোড়তে হবে , পুরো স্ট্রিংটি নয়।
এনরিকো

ধন্যবাদ। আমার ক্ষেত্রে আমি সবেমাত্র প্রতিস্থাপন \e[39mকরেছি \[\e[;39m\]এবং এটি সূক্ষ্মভাবে কাজ করে
হেরগোট

1

[এবং] টিপ ওএস এক্স ১০.৮.২ তেও বাশ নিয়ে কাজ করেছে।

আমি ব্যবহার করি:

পিএস 1 = "[\ ই [0; 37 মি \ ডাব্লু \ $ (গিট শাখা 2> / দেব / নাল | গ্রেপ -e '*' | সেড 's / ^ .. (। *) / {\ 1} /') \ $ \ ই [এম] "

যা আমাকে আমার বর্তমান গিট শাখা ব্যবহারে দেখায়।


আপনি কি "__git_ps1" সম্পর্কে জানেন?
রাফাক

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