ओह-माय-जेडश के साथ zsh में "ऑटो सीडी" को कैसे निष्क्रिय करें


29

Googling ने कोई परिणाम नहीं दिखाया। यहां मेरा मतलब है: मेरे पास xमेरे पथ में नाम वाली एक द्विआधारी फ़ाइल है (वर्तमान फ़ोल्डर नहीं है, लेकिन यह है PATH), और वर्तमान कार्यशील निर्देशिका में समान नाम वाला एक फ़ोल्डर भी है। यदि मैं टाइप करता हूं x, तो मैं चाहता हूं कि बाइनरी निष्पादित हो, लेकिन इसके बजाय यह उस फ़ोल्डर में सीडी है। मैं यह कैसे तय करुं?

जवाबों:


46

एक में तीन सवाल ;-)

AUTO_CD विकल्प और इसे कैसे खोजें

सबसे पहले आप जिस विकल्प की तलाश कर रहे हैं, वह AUTO_CD है। आप इसे आसानी से देख कर पा सकते हैं man zshoptions। अपने पेजर खोज फ़ंक्शन का उपयोग करें, आमतौर पर आप /कीवर्ड दबाते हैं और दर्ज करते हैं। आपके साथ nअगली घटना के लिए कूदते हैं। यह निम्नलिखित लाएगा:

[..]
   Changing Directories
       AUTO_CD (-J)
              If  a  command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory.
[..]

विकल्प का उपयोग करके परेशान किया जा सकता है unsetopt AUTO_CD

इसे ठीक से बंद करना

आप ओह-माय-ज़ीश का उपयोग कर रहे हैं जो कि वर्णित है

"आपके zsh कॉन्फ़िगरेशन को प्रबंधित करने के लिए एक समुदाय-संचालित फ्रेमवर्क" में 120+ वैकल्पिक प्लगइन्स (रेल, गिट, OSX, हब, कैपिस्ट्रानो, काढ़ा, चींटी, macports, आदि), शामिल हैं ...

तो अगली बात यह पता लगाना है कि फ्रेमवर्क के अनुसार विकल्पों को कैसे सक्षम / अक्षम किया जाए।

Readme.textile फ़ाइल : कहा गया है कि जिस तरह से पसंदीदा सक्षम करने के लिए / अक्षम प्लग-इन आपके .zshrc में एक प्रविष्टि होगी plugins=(git osx ruby) पता लगाएं कि कौन प्लगइन AUTO_CD विकल्प का उपयोग करता। जैसा कि मैनपेज से पता चला है कि इसे -J स्विच या AUTO_CD के माध्यम से लगाया जा सकता है। चूंकि ओह-माई-ज़िश गीथूब पर उपलब्ध है, इसलिए इसे खोजने से फ़ाइल बंद हो जाएगी lib/theme-and-appearance.zsh। यदि आप पूरे प्लगइन "थीम-एंड-उपस्थिति" को अक्षम नहीं करना चाहते हैं, तो unsetopt AUTO_CDअपने .zshrc में डालें । ओह-माय-ज़श की फ़ाइलों को सीधे संशोधित न करें, क्योंकि यदि आप रूपरेखा को अपडेट कर रहे हैं, तो आपके परिवर्तन खो जाएंगे।

सीधे निष्पादन योग्य क्यों नहीं लगाए गए हैं

आपका तीसरा प्रश्न यह है कि कैसे एक बाइनरी को सीधे निष्पादित किया जाता है: आपको अपनी बाइनरी फ़ाइल को एक पथ के माध्यम से निष्पादित करना होगा, उदाहरण के लिए एक उपसर्ग के ./साथ ./do-something। यह किसी प्रकार की सुरक्षा सुविधा है और इसे परिवर्तित नहीं किया जाना चाहिए। USB स्टिक में प्लगिंग करना, इसे माउंट करना और इसके साथ एक नज़र रखना ls। यदि कोई निष्पादन योग्य है, lsजो आपके होम डायरेक्टरी को हटा देता है, तो सब कुछ चला जाएगा, क्योंकि इससे आपके $ PATH का ऑर्डर ओवरराइट हो जाएगा।

यदि आपके पास बार-बार कॉल करने की आज्ञा है, तो अपने .zshrc में एक उपनाम स्थापित करना एक सामान्य समाधान होगा।


4
आपका बहुत बहुत धन्यवाद! क्या मैं जरूरत थी unsetopt auto_cdलाइन (मैं स्पष्ट रूप से वह निष्पादन उल्लेख किया है , फिर भी, स्पष्टीकरण अन्य उपयोगकर्ताओं बातें पता लगाने की मदद कर सकता है मेरी राह में है)।
गाबी पुरकारू

पूरी तरह से जवाब देने के लिए धन्यवाद और आपको जानकारी कैसे मिली (इस प्रकार दूसरों को भविष्य में इस तरह की जानकारी खोजने में मदद करने के लिए)।
स्लैश

2
आपके अंतिम पैराग्राफ का कोई मतलब नहीं है। ओपी अपने PATHपर्यावरण चर में एक द्विआधारी के बारे में पूछ रहा है जो वे ऑटोकैड पर वरीयता लेना चाहते हैं। यह ./या तो निर्दिष्ट किए बिना एक पथ से एक निष्पादन योग्य चलाने के लिए शेल स्क्रिप्ट की अक्षमता से कोई लेना-देना नहीं है /
किक्स

रीडमी का पहला लिंक काम नहीं करता है। यहाँ यह है। इसके अलावा, OMZ libनिर्देशिका के पास कुछ भी नहीं है plugins। प्रश्न के बारे में और जैसा कि आपने कहा, सही कमांड है unsetopt
तिमो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.