Windows में zsh पर प्रत्येक संकेत से पहले एक प्रतिशत चिह्न क्यों दिखाई दे रहा है?


13

मुझे विंडोज़ में zsh सेट हो रहा है और मुझे हर प्रॉम्प्ट के ठीक ऊपर लाइन में पहले कैरेक्टर पोज़िशन में एक रिवर्स (ब्लैक ऑन व्हाइट (ब्लैक टर्मिनल बैकग्राउंड)) प्रतिशत सिंबल मिल रहा है।

आमतौर पर इसका मतलब है कि फ़ाइल के अंत में कोई नई पंक्ति नहीं है, उदाहरण के लिए जब catफ़ाइल को फाइल किया जाता है।

यह मेरे मैक या विंडोज पर मिंट्टी पर भी नहीं होता है। लेकिन यह ConEmu और मानक टर्मिनल ऐप में होता है जिसे CMD.EXE आमतौर पर चलाता है।

मैंने पहले से ही unsetअपने सभी प्रांप्ट स्ट्रिंग्स और साथ ही साथ precmd()जो मैं आमतौर पर प्रॉम्प्ट के ऊपर एक रिक्त लाइन जोड़ने के लिए उपयोग करता हूं।

कोई सुराग यह क्या हो सकता है?

जवाबों:


33

प्रासंगिक विकल्प शायद PROMPT_SP, मैनुअल से विस्फोट है

एक आंशिक लाइन (यानी एक पंक्ति जो एक नई रेखा के साथ समाप्त नहीं हुई) को संरक्षित करने का प्रयास करें जो अन्यथा PROMPT_CR विकल्प के कारण कमांड प्रॉम्प्ट द्वारा कवर किया जाएगा। यह कुछ कर्सर-नियंत्रण वर्णों को आउटपुट करके काम करता है, जिसमें रिक्त स्थान की एक श्रृंखला भी शामिल है, जो एक आंशिक रेखा मौजूद होने पर टर्मिनल को अगली पंक्ति में ले जाना चाहिए (ध्यान दें कि यह केवल तभी सफल होता है यदि आपके टर्मिनल में स्वचालित मार्जिन है, जो विशिष्ट है) ।

जब एक आंशिक रेखा संरक्षित होती है, तो डिफ़ॉल्ट रूप से आपको आंशिक रेखा के अंत में एक व्युत्क्रम + बोल्ड वर्ण दिखाई देगा: %एक सामान्य उपयोगकर्ता के लिए या #रूट के लिए। यदि सेट किया जाता है, तो शेल पैरामीटर PROMPT_EOL_MARK का उपयोग यह अनुकूलित करने के लिए किया जा सकता है कि आंशिक लाइनों का अंत कैसे दिखाया जाता है।

तो, या तो आप ए

unsetopt PROMPT_SP

यदि आप कवर अप लाइन के बारे में परवाह नहीं करते हैं (हालांकि आपके मामले में यह एक खाली लाइन लगती है, जैसा कि आपको %शुरुआत में संकेत मिलता है )।

या उपयोग करें

setopt PROMPT_CR
setopt PROMPT_SP
export PROMPT_EOL_MARK=""

जो आंशिक लाइनों को संरक्षित करता है, लेकिन %प्रॉम्प्ट पर कुछ खाली लाइनों की कीमत पर - को हटा देता है ।

इसे स्थायी बनाने के लिए, अपना अपडेट करें ~/.zshrc

यह एक अंधा शॉट है, क्योंकि मैं अपने इस व्यवहार को पुन: पेश नहीं कर सकता cmd.exe


1
धन्यवाद @ विजेता, इसने मुझे और जानने के लिए सिर्फ सही जगह पर रखा। यहाँ मैं क्या लेकर आया हूं: 1) तीन चीजें काम करती हैं, अगर आप विकल्पों को जोड़ते हैं, तो अधिक करें: PROMPT_CR को बंद करें; PROMPT_SP को परेशान न करें; और PROMPT_EOL_MARK = ""। 2) सेटिंग PROMPT_EOL_MARK = "" कष्टप्रद उलटा + बोल्ड "%" वर्ण से छुटकारा दिलाता है, लेकिन यह अभी भी एक अतिरिक्त लाइन फ़ीड जोड़ता है, इसलिए मीनटेट या मैक की तुलना में शीघ्र दिखता है। 3) मैं सबसे अच्छा समझौता के रूप में परेशान PROMPT_SP के साथ जा रहा हूं। 4) जब तक आप -o विकल्प का उपयोग नहीं करते तब तक सेट और अनसेट का उपयोग करना काम नहीं करता है। काम करना और परेशान करना। यदि आप ठीक करेंगे तो मैं आपका उत्तर स्वीकार कर
लूंगा

@ सैकनी: मुझे इसके लिए माफी मांगनी होगी set। बेशक, यह होना चाहिए था setopt- जाहिर है मैंने अपना जवाब बहुत तेजी से लिखा था। मैंने अपने उत्तर को अपडेट किया और खाली लाइनों के बारे में भी बिंदु को शामिल करने की कोशिश की।
mpy

2

तो मैं अपने zsh के साथ ठीक यही मुद्दा रहा था + ओह-मेरा-zsh।

मैंने इसे mpy और उन लाइनों की मदद से ठीक किया है:

PROMPT_CR को सेट करें

PROMPT_SP को सेट करें

निर्यात PROMPT_EOL_MARK = ""

आपको बस -> ~ / .oh-my-zsh / themes / XXXXXX पर जाना होगा। आपको उस विषय को खोलने की आवश्यकता है, जिसका उपयोग आप ओह-माय-ज़श पर कर रहे हैं ताकि मैं इसके लिए अपने एग्जॉस्ट को तैयार कर सकूं।

बस इस फ़ाइल को खोलें और फ़ाइल के अंत में उन 3 पंक्तियों को कॉपी / पेस्ट करें।

और उसके तय !!

आशा है कि आपके पास एक अच्छा दिन है और यह कुछ लोगों को बाहर निकालने में मदद करेगा।

शांति


कृपया उत्तर के रूप में "धन्यवाद" न जोड़ें। साइट में कुछ समय का निवेश करें और आप अपने पसंद के उत्तर को बढ़ाने के लिए पर्याप्त विशेषाधिकार प्राप्त करेंगे , जो आपको धन्यवाद कहने का सुपर उपयोगकर्ता तरीका है।
DavidPostill

0

आप कॉनमू के अंदर मिनिट चला सकते हैं। कि मेरे लिए percents से छुटकारा मिल गया।

यहां मेरे पास कार्य मापदंडों के लिए है:

/icon "%ConEmuDrive%\msys64\msys2.ico"

और आदेश:

set CHERE_INVOKING=1 & %ConEmuDrive%\\msys64\usr\bin\mintty.exe -i "%ConEmuDrive%\msys64\msys2.ico" -
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.