पर लाइन जोड़ने से पहले zsh स्पष्ट आरपीएस 1 मैं एक vim उपयोगकर्ता हूं, और हाल ही में शैल में vi मोड का उपयोग करने में सक्षम होने के लिए zsh के साथ खेलना शुरू कर दिया है (जो सम्मिलित/कमांड की कमी के कारण बाश में व्यावहारिक नहीं है मोड सूचक)। कुछ उदाहरण पढ़ने के बाद, मैं तदनुसार लाइन अद्यतन करने के लिए निम्नलिखित समारोह की स्थापना (मैं रंग-vim-powerline मिलान करने के लिए है, जो मैं भी उपयोग उठाया): के रूप में मैं और अधिक चलने वाले को छोड़करलाइनशफर
vim_ins_mode="%{$fg[white]%}%{$fg_bold[blue]$bg[white]%} INSERT %{$reset_color%}"
vim_cmd_mode="%{$fg[green]%}%{$fg_bold[black]$bg[green]%} COMMAND %{$reset_color%}"
vim_mode=$vim_ins_mode
function zle-line-init zle-keymap-select {
RPS1="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}"
RPS2=$RPS1
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
यह अच्छा काम करता है आदेश, पिछले आदेशों से आरपीएस 1 स्क्रीन पर आउटपुट प्राप्त करता है। आप कल्पना कर सकते हैं, मेरे टर्मिनल के साथ इसने कई उज्ज्वल बक्से होने काफी ध्यान भंग हो सकता है:
मैं किसी भी तरह इस क्षेत्र को खाली करने के लिए आशा करती हूं कि इससे पहले कि यह पिछले आदेश के रूप में linebuffer में फेंक दिया जाता है, लेकिन अब तक न तो उदाहरण न ही zsh विषयों मैंने इसे करने से परेशान देखा। मेरी पुरानी .bashrc फ़ाइल में मेरे पास मेरे कमांड के रंग को रीसेट करने के लिए एक जाल सेटअप था ताकि आउटपुट रंग प्रभावित न हो, मैं सोच रहा हूं कि यहां कुछ ऐसा संभव होगा? या शायद zsh के साथ एक क्लीनर तरीका है?
बिल्कुल सही, मैं सिर्फ क्या चाहता था और इस विकल्प के बारे –
@AlexanderTsepkov अजीब बात जाल के साथ खिलवाड़ की तुलना में बहुत क्लीनर कि मैं हमेशा '.zshrc' में यह था। लेकिन यह डिफ़ॉल्ट नहीं है इसलिए 'zsh -f' के साथ अपने कोड का परीक्षण करने से आपका व्यवहार पता चला। और यह उन छोटी सी सुविधाओं में से एक है जिन्हें आप तब तक नहीं देखते जब तक उन्हें हटाया नहीं जाता है, इसलिए मुझे याद नहीं आया कि वास्तव में उपर्युक्त कोड के बिना अनुरोधित व्यवहार है। – ZyX