আমার টার্মিনাল থিমটি এরকম ব্যবহার হত,
তবে আমি ভেবেছিলাম প্রম্পটটি এত জায়গার অপচয় করে। এবং পরে আমি একটি ধারণা পেয়েছিলাম যে আমি যখনই কোনও কমান্ড চালাই তখনই আমি প্রম্পটটি সাফ করতে পারি। আমি ব্যাশ ব্যবহার করছিলাম, সমাধানগুলির একটি হ'ল preexec_invoke_exec
ফাংশনটি ব্যবহার করা ।
আমি সর্বশেষ প্রম্পট অক্ষর পরিষ্কার করতে নিম্নলিখিত কমান্ডটি ব্যবহার করি:
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
যাতে টার্মিনালটি খুব পরিষ্কার থাকে, যেমন
তবে এখন আমার সমস্যাটি হ'ল, যদি আমি এক লাইনে মাল্টি কমান্ড ব্যবহার করতে চাই তবে সমস্যা হবে , বলুন, যখন আমি ব্যবহার করি for i in ...
।
আমার .bashrc এ ফাংশনটির সম্পূর্ণ সংস্করণ এখানে রয়েছে,
preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`;
local this_pwd=`pwd`;
preexec "$this_command" "$this_pwd"
}
trap 'preexec_invoke_exec' DEBUG
zsh
...
for i in $(seq 1 10); do ls; done
তার ফাংশনটি করেন তবে পুনরাবৃত্ত আদেশের আউটপুট "গিলে ফেলেছে " তাই কথা বলতে। সুতরাং ওপি প্রম্পটটি সক্ষম করার সময় আচরণটি স্যানিটাইজ করতে চেয়েছিল। আমি এটিকে সমর্থন করার কারণটি শেল, ব্যবহারযোগ্যতা, প্রতিক্রিয়া এবং বহনযোগ্যতার বিষয়ে সচেতনতার আগ্রহ for আমি আমার পূর্ববর্তী মন্তব্যে যে লিঙ্কটি রেখেছিলাম তা সুপারুসারটিতে পোস্টের দিকে পরিচালিত করে - তারা এই স্নিপেটটি চিহ্নিত করার সমস্যায় পড়েছিল, তাই এটি একটি প্রোটোটাইপ যা একটি জাল ফাংশনের আকারে নেটিভ zsh কার্যকারিতা (যা আমি আকর্ষণীয় বলে মনে করি) অনুকরণ করে em এখানে.