साइगविन से नोटपैड ++ का उपयोग करें बिना शेल के बाहर निकलने के लिए प्रतीक्षा करें


19

मैं साइगविन चला रहा हूं और मुख्य शेल संपादक के रूप में नोटपैड ++ का उपयोग करना चाहूंगा, मेरे मैक पर मेरे पास जो है, उस तरह का उपयोग करना, जहां मैं mate whateverटेक्स्टमैट का एक उदाहरण खोल सकता हूं । ~/.bashrcCygwin में मेरी फ़ाइल में निम्नलिखित उपनाम और पर्यावरण चर सेट हैं:

export EDITOR="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
alias np="/cygdrive/c/Program\ Files/Notepad++/notepad++.exe"

यह ज्यादातर काम करता है: जब मैं टाइप करता हूं np whateverया जब एक Cygwin प्रोग्राम $ EDITOR के लिए कॉल करता है, तो नोटपैड ++ खुलता है।

हालाँकि, शेल तब तक प्रतीक्षा करता है जब तक कि नोटपैड ++ बंद नहीं हो जाता है और तब तक कोई इनपुट की अनुमति नहीं देगा। यह बैश करने के लिए विशिष्ट हो सकता है, लेकिन मैं सिग्विन से नोटपैड ++ कैसे खोल सकता हूं और शेल को बता सकता हूं कि जारी रखने के लिए निकास कोड का इंतजार करें? &उपनाम कमांड के अंत में जोड़ना सही से काम नहीं करता है - यह सिर्फ एक अनटाइटल्ड फ़ाइल को खोलता है और फ़ाइल filename: command not foundको खोलने के बजाय चेतावनी देता है ।

धन्यवाद!

जवाबों:


16

आप bashampersand से पहले तर्क पारित करने के लिए एक समारोह की कोशिश कर सकते हैं :

np ()
{
    /cygdrive/c/Program\ Files/Notepad++/notepad++.exe $* &
}

लेकिन बड़ा मुद्दा नोटपैड ++ के बाहर निकलने तक इंतजार करने का पूरा विचार हो सकता है। शेल कमांड जो $EDITORआमतौर पर उपयोग करते हैं, वे तब तक प्रतीक्षा करने के लिए डिज़ाइन किए जाते हैं जब तक कि संपादक एक संकेत वापस नहीं भेजता है कि संपादन पूरा हो गया है। इसका आमतौर पर मतलब होता है कि संपादक बाहर हो गया है (जैसे viया साथ nano)।

अपने Emacs स्थापित करने के लिए एक तरीका है EDITORकरने के लिए emacsclientऔर फिर जब आपका काम पूरा हुआ संपादन कर रहे हैं, आप एक जादुई कीस्ट्रोक (हिट C-x #संकेत मिलता है कि संपादन पूरा हो गया है)। अगर नोटपैड ++ में साइबरविन उपयोगकर्ताओं के लिए कुछ समान था, तो मैं देख सकता हूं कि यह कैसे काम करेगा।

एक अन्य विकल्प भारी उपयोग के लिए आपके EDITOR और आरक्षित नोटपैड ++ के रूप में सादे, उबाऊ, सरल नोटपैड का उपयोग करना है (मुझे इस ब्लॉग पोस्ट से विचार मिला )


बहुत बढ़िया - यह काम किया। मैं EDITOR के रूप में वेनिला नोटपैड के साथ जा रहा हूँ और नोटपैड के रूप में नोटपैड ++ ()
एंड्रयू

नोटपैड को संपादन समाप्त होने की प्रतीक्षा करने की भी आवश्यकता है
कोडजॉम्बी

8

मैंने इसे एक साधारण सिम्लिंक के साथ हल किया।

ln -s /cygdrive/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe ~/bin/npp

बेशक ~ / बिन मेरे $ पेट में है।

अब एक फाइल खोलने के लिए मैं सिर्फ cygwin प्रॉम्प्ट से "npp filename.txt" टाइप करता हूं। मुझे कमांड के अंत में & का उपयोग नहीं करना पड़ा है।

यह किसी अन्य को खोलने के बजाय वर्तमान में चल रहे नोटपैड ++ विंडो में एक टैब भी फेंक देगा - और यदि फ़ाइल पहले से ही खुली है, तो यह इसे फिर से नहीं खोलता है।


आप $ PATH में ~ / bin कैसे जोड़ेंगे?
एरिक एफ

3

निर्यात EDITOR = "/ cygdrive / c / Program \ Files \ '(x86)' / नोटपैड ++ / नोटपैड ++। exe"

उपनाम np = "/ cygdrive / c / Program \ Files \ '(x86)' / नोटपैड ++ / नोटपैड ++। exe"

x86 के लिए भी काम करता है


2

बस अपने कमांड के अंत में एक स्थान और एक एम्परसेंड (&) जोड़ें और शेल तुरंत नोटपैड ++ खुला छोड़ते हुए इनपुट मोड में वापस आ जाएगा।

संपादित करें:

मैं इसे आपके उपनाम में जोड़ने की बात नहीं कर रहा हूं। इसे अपनी कमांड के अंत में इस तरह जोड़ें:

np whatever &


1
ऊह। यह अब तक अच्छा लग रहा है। वहाँ एक रास्ता है कि .bash_profileमैं इसे हर समय टाइप करने की आवश्यकता नहीं है?
एंड्रयू

मैं बैश विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि आप अपने उपनाम को एक चर ले सकते हैं जो कि तर्क है, और अंत में एम्परसैंड भी शामिल है। बैश के साथ कोई चालाक शायद आपको सटीक वाक्यविन्यास दे सकता है। मैं केवल आपके प्रश्न का उत्तर देना जानता था क्योंकि मैं विंडोज़ देव वातावरण में काम करते समय ठीक यही काम करता था :)
रॉबर्ट एस सियाकियो

आप किसी अन्य व्यक्ति को बैश में परिवर्तनशील नहीं बना सकते। आपको किसी फ़ंक्शन या स्क्रिप्ट का उपयोग करना होगा।
अगली सूचना तक रोक दिया गया।

1

उपनाम अंतर-तर्कपूर्ण तर्क नहीं लेते हैं। इसके बजाय एक फ़ंक्शन का उपयोग करें।

function np() { /cygdrive/c/Program\ Files/Notepad++/notepad++.exe $1 & }

1
#!/bin/sh
/cygdrive/c/Program\ Files/Notepad++/notepad++.exe $@ &

यह स्क्रिप्ट नोटपैड ++ को पृष्ठभूमि में शुरू करती है, जो 'और' से पहले कमांड लाइन के तर्कों को पारित करती है।

जैसा कि डौग ने सलाह दी , एक डिफ़ॉल्ट $EDITORजो ब्लॉक नहीं करता है, वह समस्या पैदा कर सकता है।


0

इसे पूरा करने के लिए साइबरविन में एक विशिष्ट कमांड है। सुनिश्चित करें कि आप run.exe डाउनलोड करते हैं, और सुनिश्चित करें कि यह आपके PATH में है (या आपके PATH में निष्पादन योग्य है)

alias np="run.exe /cygdrive/c/Program\ Files/Notepad++/notepad++.exe"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.