2012-09-10 33 views
9

मुझे कभी-कभी विंडोज़ में काम करना पड़ता है, जिसका अर्थ अक्सर बैश खोल का उपयोग करना है। अगर मैं कई फाइलों के साथ vim (नहींgvim) में (उदाहरण के लिए) हूँ खोलें, और मैं Ctrlजेड मारा संक्षेप में वापस खोल के पास जाकर vim की ओर लौटने के बजाय मेरी vim प्रक्रिया को निलंबन से पहले कुछ करने के लिए गिट बैश एक नया डॉस खोल बनाता है। यह आखिरी चीज है जिसे मैं कभी चाहूंगा। Googling turns up nothing useful (इस समय पर - मेरे भविष्य में वाईएमएमवी)। क्या चल रहा है?विंडोज गिट बैश खोल पर Ctrl-Z क्यों विफल रहता है?

उत्तर

1

की तर्ज पर कहीं एक स्क्रिप्ट बनाने के लिए मैं कभी कभी में काम करना है है विंडोज़, जो अक्सर गिट बैश खोल का उपयोग करने का मतलब है।

अच्छा। मैं भी।

यदि मैं कई फाइलों के साथ vim (gvim नहीं) में (उदाहरण के लिए) हूं, और मैंने^Z को संक्षेप में खोल पर वापस जाने के लिए हिट किया है और vim पर लौटने से पहले कुछ करने के लिए, मेरी vim प्रक्रिया गिट को निलंबित करने के बजाय बैश एक नया डॉस खोल बनाता है।

यदि आप गिट बैश में अन्य प्रक्रियाओं को निष्पादित करते हैं, तो CTRL-Z उन्हें या तो निलंबित नहीं करेगा। विम उस के आसपास काम करता है और, इसके बजाय, एक समान परिणाम प्राप्त करने के लिए एक खोल बनाता है। विम विंडोज़ में एक उपकरण है जिसे बैश की आवश्यकता नहीं होती है, बल्कि विंडोज़ कमांड प्रॉम्प्ट विंडोज़ मशीन में जरूरी है। मुझे लगता है कि यह विंडोज बाइनरी प्रोग्राम की एक सुरक्षित पसंद है।

यह आखिरी चीज है जिसे मैं कभी चाहूंगा। गुगलिंग कुछ भी उपयोगी नहीं है (इस समय पर - मेरे भविष्य में वाईएमएमवी)। क्या हो रहा है?

मेरा अनुमान है कि विम में डॉस खोल बनाने के लिए CTRL-Z मानचित्र है। आप के बजाय एक bash खोल बनाना चाहते हैं, तो आप लिख सकते हैं:

:!sh

और आप एक bash खोल में क्रियान्वित की जाएगी।

1

मेरा अनुमान है कि इसका कारण यह है कि विंडोज POSIX निलंबन प्रक्रिया API लागू नहीं करता है। मेरे पास एक ही समस्या थी और मुझे एक सामान्य समाधान नहीं मिला। लेकिन विशिष्ट आम मामलों (जैसे जाँचने के रूप में) के लिए, एक काम के चारों ओर अपने पथ (उदाहरण के लिए/सी/bin/जाँचने)

#!/bin/env bash 
    /c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe [email protected] & 
+0

यदि मैं आपको समझता हूं, तो आप इसे gvim के लिए एक रैपर के रूप में उपयोग कर रहे हैं, और आप इसका अर्थ यह कर रहे हैं कि^Z *** WILL *** रैपर स्क्रिप्ट के लिए काम करेगा, भले ही यह वास्तविक के लिए काम न करे निष्पादन? ठीक है, यह समझ में आता है, क्योंकि वास्तविक निष्पादन योग्य एक * exe * फ़ाइल है। – iconoclast

+0

क्षमा करें, नहीं,^ज़ेड अभी भी काम नहीं करेगा। जब मैं बैश में "gvim" टाइप करता हूं, तो सभी स्क्रिप्ट को gvim पृष्ठभूमि में रखा जाता है, ताकि मुझे अगले कमांड टाइप करने के लिए^Z नहीं होना पड़े। असल में, यह सिर्फ आदेश टाइप करने के बाद याद रखने के लिए बचाता है। – setrofim

+0

मुझे यकीन नहीं है कि यह मेरी मदद कैसे करता है। मैं vim का उपयोग कर रहा हूँ, gvim नहीं, तो यह टर्मिनल में खुला है। मैं कमांड लाइन पर लौटने के लिए इसे निलंबित करने का एक तरीका चाहता हूं। – iconoclast