2012-03-27 18 views
5

vim में, प्रकार जाँच करने के लिए: श खोल करने के लिए स्विच जाएगा, और बाहर निकलने खोल से बाहर निकलें और वापस vim को मिल सकती है। क्या यह जांचने के लिए कोई आदेश है कि यह vim shell मोड में है या नहीं? ताकि मैं एक ही फाइल को फिर से खोलने के लिए गलती से विम नहीं करूँगा। मैं परिदृश्य नीचे से बचना चाहते हैं:कैसे अगर यह विम खोल मोड में अभी भी

vim myfile > :sh > exit > vim myfile // एक और vim उदाहरण की चेतावनी संपादित कर रहा है एक ही फाइल

मिल ये सामान्य परिदृश्य हैं:
vim myfile > :sh > exit // रखने संपादन
vim myfile > :wq > vim myfile // संपादन

रखने

उत्तर

3

इसके अलावा @ a3nm जवाब देने के लिए, आप क्या कर सकते

  1. उपयोग pstree -h है: यह वर्तमान शाखा के साथ उत्पादन प्रक्रिया पेड़ highligted जाएगा और सभी की जांच करनी है आकर्षण में vim है कि क्या वहाँ है।
  2. एक और संभावना ps t है: यह वर्तमान टर्मिनल का उपयोग करके सभी प्रक्रियाओं को दिखाएगी और के अंदर होने पर सूची में vim दिखाएगी। ps -oargs t अधिक उपयोगी हो सकता है यदि आप उन तर्कों को जानना चाहते हैं जिनके साथ आप भाग गए थे।

इन विधियों और अधिक विश्वसनीय है क्योंकि VIMRUNTIME, VIM और MYVIMRC वातावरण चर ताकि कुछ अनुकूलन (Btw, वे, vimscripts में उपयोग के लिए vim द्वारा परिभाषित कर रहे :sh द्वारा नहीं) करने के लिए आप से overrided जा सकता है। वे अन्य प्रक्रियाओं के लिए भी काम करते हैं जो आपको सबहेल चलाने की अनुमति देते हैं, लेकिन किसी भी पर्यावरण चर को परिभाषित नहीं करते हैं।

मैं भी सामान्य मोड या :suspend/:stop पूर्व में में <C-z> उपयोग करने पर विचार करने के लिए है क्योंकि इन उपयोग खोल vim बजाय नया बनाने के से शुरू किया गया था सुझाव है। यह व्यवहार आपको विम चलाने से पहले टाइप किए गए आदेशों के इतिहास तक पहुंच प्रदान करता है और आपको हर बार प्रतीक्षा करने के बिना अधिक जटिल और समय लेने वाली खोल विन्यास लिखने में सक्षम बनाता है।

मामले में आप <C-z> दोनों तरीकों अभी भी उपयोग काम करते हैं, लेकिन पहली विधि vim को उजागर नहीं होगा, क्योंकि यह एक ही स्तर पर किया जाएगा pstree के रूप में ही है, संभावना है बस नीचे या ऊपर pstree ग्राफ में (एक ही मूल है)। यह तीसरी विधि को भी सक्षम बनाता है: jobs खोल निर्मित।

आदेश <C-z> से बहाल करने के लिए आप जो तब exit (लेकिन अधिक <C-d> तो) टाइप करने के लिए कम है (zsh और पार्टी भी काम करता है में एक भी %) fg का उपयोग करना चाहिए में।

3

vim में :sh आदेश VIMRUNTIME, VIM और MYVIMRC वातावरण चर को परिभाषित करने लगता है, इसलिए तुम सिर्फ अगर वे परिभाषित कर रहे हैं देख सकते हैं। ऐसा करने के लिए, उदाहरण के लिए, आप echo $VIM चला सकते हैं, जिसे सामान्य शेल में खाली रेखा और जैसे vim से खोलने के लिए कुछ खाली लाइन वापस करनी चाहिए।

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