मैं कमांड को zsh में बोल्ड कैसे बना सकता हूं?


18

मैंने अपना बैश शेल सेट किया है ताकि मैं जो भी कमांड टाइप करूं वह बोल्ड दिखाई दे और कमांड का आउटपुट सामान्य वजन में दिखाया गया है:

यहां छवि विवरण दर्ज करें

मैंने इसे \e[01mअपने PS1वैरिएबल के अंत में जोड़कर बोल्ड चालू किया, और trap DEBUGइसे बंद करने के लिए उपयोग किया:

trap 'printf "\e[0m" "$_"' DEBUG

इस प्रकार, \e[0mप्रत्येक कमांड निष्पादित होने से पहले प्रिंट किया जाता है और मुझे आउटपुट में सामान्य फ़ॉन्ट भार मिलता है।

मैं उसी प्रभाव में कैसे जाऊंगा zsh?

जवाबों:


13

पुराने ढंग का उपयोग करना था POSTEDIT

 POSTEDIT=$'\e[0m'

(और वैसे यह बैश नहीं है, अनुकरण करने के लिए DEBUG ट्रैप का उपयोग न करें preexec: zsh वह जगह है जहाँ से है ) लेकिन zsh 4.3.11 के बाद से आप कमांड लाइन सिंटैक्स हाइलाइटिंग सुविधा का उपयोग कर सकते हैं । अपने प्रॉम्प्ट को केवल अपने प्रॉम्प्ट और सेट के बारे में बताएं

zle_highlight=(default:bold)

7

आप क्या चाहते हैं preexec हुक फ़ंक्शन :

preexec() { printf "\e[0m"; }

फिर प्रत्येक कमांड निष्पादित होने से पहले, preexecअपने फ़ॉन्ट को सामान्य करने के लिए रीसेट किया जाएगा।

इसलिए, अपने प्रश्न में वही संकेत दिखाने के लिए, इन पंक्तियों को अपने साथ जोड़ें ~/.zshrc:

autoload -U colors && colors
PS1="%{$fg_bold[yellow]%}%n@%m %{$fg[blue]%}%~ \$ %{$reset_color%}%{$fg_bold[white]%}"
preexec() { printf "\e[0m"; }

DEBUG ट्रैप के बजाय इसका उपयोग करना सही है, लेकिन न तो कमांड लाइन को बोल्ड बनाने का सही तरीका है।
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.