2009-12-21 16 views
6

मुझे पता है कि विम और बैश शेल पटकथा लेखन हो रही धीमा कर रहा हूँ और इस मुद्दे में चल रहा हूँ:विम को फिर से कैसे प्रस्तुत करें:! दे घुमा के?

जब मैं MacVim चल रहा हूँ, मैं कभी कभी संकलित करने के लिए जो कुछ भी यह मैं पर काम कर रहा हूँ है कमांड लाइन का उपयोग करना चाहते (इस मामले में एक छोटा जावा प्रोग्राम)। इसलिए मैं :! bash टाइप करता हूं और जो कुछ भी है उसे संकलित करता हूं, मुझे इसकी आवश्यकता होती है और इसकी जांच होती है। फिर जब मैं प्रोग्राम पर वापस जाना चाहता हूं तो मैं संपादन कर रहा था, मैं vim MyProgram.java टाइप करता हूं और [8;1H~ [9:1H~ [10:1H~ ... etc.

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

क्या आपकी वर्तमान फ़ाइल को संकलित करने और चलाने के बेहतर तरीके हैं?

(मैं MacVim 7.2 और OSX 10.6.2 पर बैश 3.2.48 उपयोग कर रहा हूँ।)

उत्तर

15

दो सुझाव:

  1. उपयोग exit बैश खोल छोड़ने की और vim पर लौटें।
  2. विम के भीतर, :set makeprg=name_of_your_make_program का उपयोग स्वचालित रूप से :make कमांड के साथ vim के साथ संकलित करने के लिए करें। बोनस के रूप में, यदि यह एक टूलसेट है जो vim पहचानता है, तो vim संकलक के आउटपुट को पार्स करेगा, आपको त्रुटियों को दिखाएगा, और अनुमति देगा आप उनमें से प्रत्येक पर कूदने के लिए ताकि आप उन्हें ठीक कर सकें।कमांड देखें, :cc, :cn, और :cp स्टार्टर्स के लिए।
+3

यह सहायक है : कुछ फ़ंक्शन कुंजियों को मैप करें: सीएन और: सीपी कमांड। आगे और आगे कूदना उस तरह से बहुत तेज है। –

6

बस के प्रकार:

exit 

यह bash उप प्रक्रिया से बाहर निकलने और vim पर लौट जाएँगे। यह ग्नू स्क्रीन की तरह कुछ का उपयोग करने के लिए एक साथ एक विम और बैश सत्र बनाए रखने के लिए बेहतर होगा (और यह :!bash से स्विच करने के लिए आसान है ... exit

+0

स्क्रीन के लिए +1 .... –

+0

2 1/2 साल बाद, tmux> स्क्रीन। –

+0

@Adam: वास्तव में? ऐसा लगता है कि हल्के विकल्प होने पर ध्यान केंद्रित किया जा रहा है (और इसमें स्क्रीन की सभी सुविधाएं नहीं हैं)। स्विच करने के लिए कोई विशेष रूप से आकर्षक कारण? – Draemon

1

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

4

आपको बैश खोल से बाहर निकलना होगा। यह exit कमांड द्वारा या CTRL + D को प्रॉम्प्ट पर दबाकर किया जा सकता है।

2

अन्य उत्तरों सही हैं।

मैं सिर्फ यह है कि आप

:sh 

बजाय

:!bash 

देखें :help sh उपयोग कर सकते हैं उल्लेख करना चाहते हैं।

इस तरह विम जानता है कि आप केवल कुछ कमांड (जो बाश होने के कारण होता है) के बजाय एक खोल चला रहे हैं।

0

यदि मैक ओएस में है, तो आपको शायद बैश कमांड निष्पादित करने के बाद vim पर वापस लौटने के लिए fg टाइप करना होगा। दूसरों ने मेरे लिए काम नहीं किया।

+1

इस मामले में नहीं। "अंदर" vim से इंटरैक्टिव शैल का उपयोग करने के दो तरीके हैं: एक बच्चे की प्रक्रिया के रूप में एक नया शुरू करें (टीएस के रूप में) या vim निलंबित करें (जो आपको * पैरेंट * खोल में ले जाना चाहिए, अगर विम खोल से लॉन्च किया गया था, बेशक)। 'बाहर निकलें' पहले मामले के लिए है, 'एफजी' दूसरे के लिए है। – ZyX

संबंधित मुद्दे