सवाल विम संपादक से कैसे बाहर निकलें?


मैं फंस गया हूँ और भाग नहीं सकता। इसे कहते हैं:

"type :quit<Enter> to quit VIM"

लेकिन जब मैं टाइप करता हूं कि यह ऑब्जेक्ट बॉडी में दिखाई देता है।


2719
2017-08-06 12:25


मूल


क्या आप बस वीआईएम छोड़ने की कोशिश कर रहे हैं? यदि ऐसा है, तो "से बचें" दबाएं और फिर 'q' टाइप करें - Pop
मत भूलना पेट! आपको टाइप करना चाहिए :quit और फिर हिट करें [ENTER] कुंजी। - Farahmand
विम की मूल बातें सीखना वाकई आसान है, और यह आपके सिस्टम में सही बनाया गया है। टर्मिनल प्रकार "vimtutor" में। 25 मिनट बाद आप अपने सामान्य पाठ संपादक से तेज़ी से आगे बढ़ेंगे! - Mark Robson
रोकने के लिए git commit भविष्य में आपको भेजने के लिए भेजना: git config --global core.editor="nano" - Tom Kelly
पोस्टरिटी के लिए एसओ ब्लॉग आलेख को लिंकबैक - Hong Ooi


जवाब:


को मारो Esc "सामान्य मोड" दर्ज करने के लिए कुंजी। फिर आप टाइप कर सकते हैं : "कमांड लाइन मोड" दर्ज करने के लिए। एक कोलन (:) स्क्रीन के नीचे दिखाई देगा और आप निम्न आदेशों में से एक में टाइप कर सकते हैं। कमांड निष्पादित करने के लिए, दबाएं दर्ज कुंजी।

  • :q  छोड़ने के लिए (के लिए छोटा :quit)
  • :q! बिना बचत के छोड़ने के लिए (के लिए छोटा :quit!)
  • :wq लिखने और छोड़ने के लिए
  • :wq! लिखने और छोड़ने के लिए भी अगर फ़ाइल को केवल पढ़ने की अनुमति है (यदि फ़ाइल में लेखन अनुमति नहीं है: बल लिखना)
  • :x  लिखने और छोड़ने के लिए (इसी तरह :wq, लेकिन केवल परिवर्तन होते हैं तो लिखते हैं)
  • :exit लिखने और बाहर निकलने के लिए (जैसा ही :x)
  • :qa सभी को छोड़ने के लिए (के लिए छोटा :quitall)
  • :cq बिना सहेजे छोड़े जाने और विम रिटर्न गैर-शून्य त्रुटि (यानी त्रुटि से बाहर निकलें)

आप टाइप करके "कमांड मोड" से सीधे विम से बाहर निकल सकते हैं ZZ बचाने और छोड़ने के लिए (जैसा ही :x) या ZQ बस छोड़ने के लिए (जैसा ही :q!)। (ध्यान दें कि मामला यहां महत्वपूर्ण है। ZZ तथा zz एक ही बात का मतलब नहीं है।)

विम की व्यापक सहायता है - कि आप इसके साथ पहुंच सकते हैं :help कमांड - जहां आप अपने सभी सवालों के जवाब और शुरुआती लोगों के लिए एक ट्यूटोरियल पा सकते हैं।


3762
2017-08-06 12:46



जब तक आप एसीसी को रीमेप नहीं करते हैं या आपके .vimrc में अजीब मैपिंग नहीं करते हैं तो यह निश्चित रूप से होना चाहिए। यदि लिनक्स टाइप xev पर है और सुनिश्चित करें कि बच निकलने पर कुंजीपटल है तो आप भागते हैं। - dirvine
याद रखें कि आप ctrl + c का उपयोग कर सकते हैं यदि आप Esc का उपयोग नहीं कर सकते (जैसे मेरे क्योंकि मेरा खोल कुल टर्मिनल में है)। vim.wikia.com/wiki/Avoid_the_escape_key - dotnetCarpenter
:x == ZZ परंतु :x ! = :wq। :x फ़ाइल iff फ़ाइल बदल गया है लिखें, :wq फाइल हमेशा लिखो (मामले का उपयोग करते समय यानी inotify)। - Hauleth
ईमानदार होने के लिए, मुझे विम की सहायता प्रणाली का उपयोग करने के लिए विम की सहायता प्रणाली का उपयोग करना कठिन समय है, और ज्यादातर त्वरित रेफ कार्ड और ऑनलाइन दस्तावेज़ीकरण पर भरोसा करते हैं। - bgvaughan
अगर आपके पास फ़ाइल पर अनुमति नहीं है लेकिन सुडो अनुमतियां हैं :w ! sudo tee % - tvlooy


आदेश दर्ज करने से पहले, को मारो Esc कुंजी। इसे दर्ज करने के बाद, हिट करें वापसी पुष्टि करने के लिए।

Esc वर्तमान कमांड को खत्म करता है और विम को स्विच करता है सामान्य स्थिति। अब अगर आप दबाते हैं :, द : पर दिखाई देगा तल स्क्रीन का यह पुष्टि करता है कि आप वास्तव में एक कमांड टाइप कर रहे हैं और फ़ाइल को संपादित नहीं कर रहे हैं।

अधिकांश आदेशों में संक्षेप होते हैं, ब्रैकेट में संलग्न वैकल्पिक भाग के साथ: c[ommand]

'*' के साथ चिह्नित कमांड केवल विम हैं (वीआई में लागू नहीं)।

सुरक्षित छोड़ें (असुरक्षित परिवर्तन होने पर विफल रहता है):

  • :q[uit]  वर्तमान से बाहर निकलें खिड़की। अगर यह आखिरी खिड़की है तो विम से बाहर निकलें। यह तब विफल रहता है जब वर्तमान में परिवर्तन किए गए हैं बफर
  • :qa[ll]* सभी खिड़कियों और विम से बाहर निकलें, जब तक कि कुछ बफर बदल नहीं जाते हैं।

प्रॉम्प्ट-छोड़ें (अगर सहेजे गए परिवर्तन हैं तो संकेत मिलता है)

  • :conf[irm] q[uit]* छोड़ो, लेकिन जब कुछ बफर बदल दिए गए हैं तो संकेत दें।
  • :conf[irm] xa[ll]* सभी बदले गए बफर लिखें और विम से बाहर निकलें। कुछ बफर लिखे जाने पर संकेत प्राप्त करें।

परिवर्तन (सहेजें) लिखें और छोड़ें:

  • :wq वर्तमान फ़ाइल लिखें (भले ही इसे बदला नहीं गया हो) और छोड़ दें। लेखन विफल होता है जब फ़ाइल केवल पढ़ने के लिए होती है या बफर का नाम नहीं होता है। :wqa[ll]* सभी खिड़कियों के लिए।
  • :wq! वही, लेकिन केवल पढ़ने-योग्य फ़ाइलों को भी लिखता है। :wqa[ll]!* सभी खिड़कियों के लिए।
  • :x[it], ZZ(साथ में विवरण)। केवल फाइल लिखें अगर यह बदल गया था और छोड़ दिया, :xa[ll]* सभी खिड़कियों के लिए।

परिवर्तनों को छोड़ दें और छोड़ दें:

  • :q[uit]!  ZQ* लिखने के बिना छोड़ें, जब भी दृश्य बफर बदलते हैं। छुपा बफर बदलते समय बाहर नहीं निकलता है।
  • :qa[ll]!*, :quita[ll][!]* विम से बाहर निकलें, बफर में सभी परिवर्तन (छुपा सहित) खो गए हैं।

दबाएँ वापसी आदेश की पुष्टि करने के लिए।

यह उत्तर सभी विम लिखने का संदर्भ नहीं देता है और कमांड और तर्क छोड़ देता है। वास्तव में, वे संदर्भित हैं वीम दस्तावेज

विम में व्यापक अंतर्निहित सहायता है, प्रकार Esc:helpवापसी इसे खोलने के लिए।

यह जवाब प्रेरित था अन्य एक, मूल रूप से @dirvine द्वारा लिखित और अन्य SO उपयोगकर्ताओं द्वारा संपादित किया गया। मैंने विम संदर्भ, एसओ टिप्पणियों और कुछ अन्य स्रोतों से अधिक जानकारी शामिल की है। वी और विम के लिए मतभेद भी परिलक्षित होते हैं।


140
2018-06-08 13:34





चित्र एक हजार यूनिक्स कमांड और विकल्पों के लायक हैं:

Enter image description here

मैं इसे प्रत्येक सेमेस्टर में अपने छात्रों के लिए आकर्षित करता हूं और वे बाद में वी को समझते हैं।

वी एक है परिमित अवस्था मशीन केवल तीन राज्यों के साथ।

प्रारंभ करने पर, vi COMMAND मोड में जाता है, जहां आप छोटे, कुछ वर्ण कमांड टाइप कर सकते हैं, आंखों पर पट्टी से। आप जानते हैं कि आप क्या कर रहे हैं; यह शौकियों के लिए नहीं है।

जब आप वास्तव में टेक्स्ट संपादित करना चाहते हैं, तो आपको कुछ एक-वर्ण कमांड के साथ INSERT मोड में जाना चाहिए:

  • i: कर्सर की जगह INSERT पर जाएं
  • I: लाइन की शुरुआत में INSERT मोड पर जाएं
  • ए: संलग्न करें बाद कर्सर
  • ए: लाइन के अंत में संलग्न करें
  • o: खुला वर्तमान लाइन के नीचे एक नई लाइन
  • हे: खुला वर्तमान लाइन की जगह में एक नई लाइन

अब, सवाल का जवाब: बाहर निकलना।

आप EX मोड से vi से बाहर निकल सकते हैं:

  • q: अगर आपने कोई संशोधन नहीं किया है, या पहले से ही उन्हें बचाया है
  • q !: किसी भी संशोधन को अनदेखा करता है और छोड़ना
  • wq: सहेजें और छोड़ दें
  • एक्स: यह wq के बराबर है

w तथा x फ़ाइल नाम पैरामीटर स्वीकार करें। यदि आपने फ़ाइल नाम के साथ vi शुरू किया है, तो आपको इसे फिर से देने की आवश्यकता नहीं है।

अंत में, सबसे महत्वपूर्ण: आप EX मोड तक कैसे पहुंच सकते हैं?

EX मोड लंबे आदेशों के लिए है जो आप स्क्रीन की निचली पंक्ति पर टाइपिंग देख सकते हैं। कमांड मोड से, आप कोलन धक्का देते हैं, :, और एक कोलन नीचे की रेखा पर दिखाई देगा, जहां आप उपरोक्त आदेश टाइप कर सकते हैं।

आईएनएसईआरटी मोड से, आपको ईएससी को धक्का देना होगा, यानी एस्केप बटन, COMMAND मोड पर जाकर, और फिर: EX मोड पर जाने के लिए।

यदि आप अनिश्चित हैं, तो ईएससी दबाएं और यह आपको कमांड मोड में लाएगा।

तो, मजबूत विधि ईएससी है: - - एक्स-एंटर जो आपकी फ़ाइल और छोड़ देता है।


71
2018-05-26 12:24



धन्यवाद, छवि बहुत उपयोगी है। हालांकि, मेरे लिए w पूर्व से कमांड मोड में नहीं बदलता है, लेकिन Esc कर देता है। मैं क्या गलत कर रहा हूं? - Nick Volynkin
यदि आप w-Enter लिखते हैं जो आपकी फ़ाइल को सहेजता है और COMMAND मोड पर वापस जाता है। मैंने इसे सहेजने और आदेशों को छोड़ने की पूरी तस्वीर रखने के लिए लिखा था। - Gergely
ओह, तो तुम्हारा मतलब है :w। फिर यह सही समझ में आता है। वैसे, क्या डिस्क से पुनः लोड करने के लिए कोई आदेश है (यानी, परिवर्तनों को वापस करने के लिए, लेकिन फ़ाइल को बंद नहीं करें)? यदि ऐसा है, तो यह अगले के लिए हो सकता है w आरेख में - Nick Volynkin
@Gergely मैं सिर्फ भ्रम की कल्पना की! दस्तावेज़ों से, सामान्य मोड भी कहा जाता है कमांड मोड! तो, कमांड मोड! = कमांड लाइन मोड। वाह! - jpaugh
डिस्क से पुनः लोड करने के लिए @NickVolynkin कमांड है :e (या अधिक संभावना है :e! चूंकि यह आपको बिना सहेजे गए परिवर्तनों के बारे में चेतावनी देगा !) - JDS


यदि आप विम में सहेजे बिना छोड़ना चाहते हैं तथा विम एक गैर-शून्य निकास कोड लौटाएं, आप इसका उपयोग कर सकते हैं :cq

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


65
2018-01-28 10:59



मैं इसका उपयोग गिट प्रतिबद्धता, या विसुडो, या क्रोंटब, को रोकने के लिए भी करता हूं ... - Josh Lee


यह विम से बाहर निकलने के सबसे बुरे मामले के परिदृश्य के लिए है यदि आप बस चाहते हैं, तो आपको पता नहीं है कि आपने क्या किया है और आपको परवाह नहीं है कि आपके द्वारा खोले गए फाइलों के साथ क्या होगा।

Ctrl-सीदर्जदर्जviदर्जCtrl- \Ctrl-एन:qa!दर्ज

यह आपको अधिकतर समय से बाहर ले जाना चाहिए।

कुछ दिलचस्प मामले जहां आपको इस तरह कुछ चाहिए:

  • iCtrl-ओvg (आप सम्मिलित मोड दर्ज करते हैं, फिर दृश्य मोड और फिर ऑपरेटर लंबित मोड)

  • Qappendदर्ज

  • iCtrl-ओgQCtrl-आर=Ctrl-k (इस मामले के लिए porges के लिए धन्यवाद)

  • :set insertmode (यह एक मामला है जब Ctrl- \Ctrl-एन आपको सामान्य मोड में लौटाता है)


संपादित करें: उपरोक्त मामलों के कारण यह उत्तर सही किया गया था। यह हुआ करता था:

EscEscEsc:qa!दर्ज

हालांकि, यदि आप पूर्व मोड में प्रवेश कर चुके हैं तो यह काम नहीं करता है। उस स्थिति में आपको करना होगा:

viदर्ज:qa!दर्ज

तो एक पूर्ण आदेश "मैं नहीं जानना चाहता कि मैंने क्या किया है और मैं कुछ भी नहीं बचाना चाहता, मैं अभी बाहर निकलना चाहता हूं!" होने वाला

viदर्जEscEscEsc:qa!दर्ज


38
2018-06-24 13:38



आह क्या शानदार दक्षता है। मेरा मतलब है, यह अक्सर आवश्यक कार्रवाई करने के लिए केवल 7 कीस्ट्रोक है - cavalcade
@cavalcade यह सुनिश्चित करने का एक बेहद सामान्य तरीका है कि संपादक सामान्य मोड में है और सुरक्षित रूप से छोड़ रहा है। सामान्य उपयोग में आपको बस चाहिए :qया :wq - Dan Passaro
पर्याप्त सामान्य नहीं है! अगर मैं (एक नौसिखिया) टाइप किया गया तो क्या होगा i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>? - porges
यह सीखना आसान है कि इस अनुक्रम को याद रखने के लिए विम मोड कैसे काम करते हैं। - jwg
@jwg तब तक प्रतीक्षा करें जब तक आप सीखें कि इस कुंजी अनुक्रम को बफर में कैसे लिखना है, एक ला ^V, तथा yएक मैक्रो में यह एंक! ;-) - jpaugh


यदि आपको विम से बाहर निकलने की आवश्यकता है आसान मोड (प्रयोग करते समय -y विकल्प) आप मारकर सामान्य विम मोड दर्ज कर सकते हैं Ctrl + एल और फिर सामान्य आउटिंग विकल्पों में से कोई भी काम करेगा।


32
2017-07-18 13:48



फिर भी एक और विकल्प: आप उपयोग कर सकते हैं Ctrl+O अस्थायी रूप से INSERT मोड को छोड़ने के लिए दर्ज करें :q। इस संयोजन के साथ चाल सामान्य vim में उपयोगी है और साथ ही एकल कमांड निष्पादित करने और INSERT मोड पर वापस लौटने के लिए उपयोगी है। - Andrey Starodubtsev


मारने के बाद ESC (या cmd + सी मेरे कंप्यूटर पर) आपको हिट करना होगा : कमांड प्रॉम्प्ट प्रकट होने के लिए। फिर, आप दर्ज कर सकते हैं quit

आप पाते हैं कि मशीन आपको छोड़ने की अनुमति नहीं देगी क्योंकि आपकी जानकारी सहेजी नहीं गई है। अगर आप वैसे भी छोड़ना चाहते हैं, तो दर्ज करें ! छोड़ने के बाद सीधे (यानी। :quit!)।


23
2017-11-28 15:25





विम में ऑपरेशन के तीन तरीके हैं: इनपुट मोड, कमांड मोड और एक्स मोड।

इनपुट मोड - जो कुछ भी आप टाइप करते हैं, सभी कीस्ट्रोक स्क्रीन पर प्रतिबिंबित होते हैं।

कमांड मोड या एस्केप मोड - इस मोड में जो कुछ भी आप टाइप करते हैं उसे कमांड के रूप में व्याख्या किया जाता है।

पूर्व मोड - यह एक और संपादक है, पूर्व। यह एक रेखा संपादक है। यह प्रति पंक्ति या लाइनों की एक श्रृंखला के आधार पर काम करता है। इस मोड में, ए : स्क्रीन के नीचे दिखाई देता है। यह पूर्व संपादक है।

विम से बाहर निकलने के लिए, आप पूर्व मोड या कमांड मोड में रहते हुए बाहर निकल सकते हैं। जब आप इनपुट मोड में हों तो आप विम से बाहर नहीं जा सकते हैं।

पूर्व मोड से बाहर निकलना

  1. आपको यह सुनिश्चित करने की ज़रूरत है कि आप कमांड मोड में हैं। ऐसा करने के लिए, बस दबाएं Esc कुंजी।

  2. दबाकर पूर्व मोड पर जाएं : कुंजी

  3. बाहर निकलने के लिए पूर्व मोड में निम्न में से किसी भी संयोजन का उपयोग करें:

    :q - छोड़ो :q! - सहेजे बिना बाहर जाएं :wq - सहेजें और छोड़ें या लिखें और छोड़ें :wq! - wq के समान, लेकिन अगर फ़ाइल अनुमतियां पढ़ी जाती हैं तो बल लिखें :x लिखो और छोड़ो :qa - सब छोड़ दो। उपयोगी जब कई फाइलें खोले जाते हैं: vim abc.txt xyz.txt

कमांड मोड से बाहर निकलना

  1. एस्केप कुंजी दबाएं। यदि आप कमांड मोड में हैं तो आपने शायद यह पहले से ही किया है।

  2. प्रेस पूंजी जेडजेड (shift zz) - बचा कर बाहर आ जाओ

  3. प्रेस पूंजी जेड्यू (shift zq) - बिना सुरक्षित किये बाहर निकले।


22
2018-05-24 02:46



जिसे आप "पूर्व मोड" कह रहे हैं उसे वास्तव में बुलाया जाता है कमांड लाइन मोड। यह आपको पूर्व आदेश दर्ज करने की अनुमति देता है, लेकिन कुछ के साथ महत्वपूर्ण मतभेद। - jpaugh
धन्यवाद @ jpaugh। हालांकि वे लिंक वर्तमान में नीचे हैं। लेकिन मुझे आपकी बात समझ आ गयी है। - tovishalck


मुझे विंडोज पर एक गिट क्लाइंट स्थापित करके विम मिला। :q मेरे लिए विम से बाहर नहीं निकलेगा। :exit हालांकि किया था ...


14
2018-02-05 11:30



इसी प्रकार एक मैकिंटोश पर गिट करने के लिए यह काम किया। - Joel
@ जोएल ने बस मेरे मैक पर यह जांच की, दोनों आदेश वैध हैं (vim -version 7.3)। - Nick Volynkin
के लिये Git Bash खिड़कियों पर, में Vim कभी कभी ESC काम नहीं कर रहा। उपयोग CTRL + [ बजाय। - Val


मैं अपना जोड़ना चाहता हूं दो सेंट इस पर। सवाल पूछा गया है यहाँ

q संख्या के साथ आदेश उस स्थिति में दिए गए विभाजन को बंद कर देता है।

:q<split position>या :<split position>q उस स्थिति में विभाजन बंद कर देंगे।

मान लीजिए कि आपका विम विंडो लेआउट निम्नानुसार है:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

यदि आप चलाते हैं q1 कमांड, यह पहला विभाजन बंद कर देगा। q2 दूसरा विभाजन और इसके विपरीत बंद कर देगा।

छोड़ने के आदेश में विभाजित स्थिति का आदेश कोई फर्क नहीं पड़ता। :2qया :q2 दूसरा विभाजन बंद कर देगा।

यदि आप कमांड को पास करते हुए विभाजित स्थिति वर्तमान विभाजन की संख्या से अधिक है, तो यह केवल अंतिम विभाजन को बंद कर देगा।

उदाहरण के लिए, यदि आप चलाते हैं q100 उपरोक्त विंडो सेटअप पर जहां केवल तीन विभाजन हैं, यह अंतिम विभाजन (स्प्लिट 3) को बंद कर देगा।


2
2018-02-12 23:41





यहां बताया गया है कि आप विम से कैसे बाहर निकल सकते हैं। Ctrl और 'Z' दबाएं, फिर 'एक्स' और 'सी' दबाएं।

Ctrl -> +Z -> +X -> +C

0
2018-05-31 06:46