मैं VIM में कई फाइलें कैसे संपादित कर सकता हूं?


166

मुझे पता है कि मैं vimकुछ ऐसा करके कई फाइलें खोल vim 2011-12*.logसकता हूं, लेकिन मैं फाइलों के बीच कैसे स्विच कर सकता हूं और एक बार में फाइलें बंद कर सकता हूं? इसके अलावा, मैं वर्तमान फ़ाइल का फ़ाइल नाम कैसे बता सकता हूं जिसे मैं संपादित कर रहा हूं?


जवाबों:


169

सबसे पहले, vim में आप प्रवेश कर सकते हैं :(कोलन) और फिर मदद help, आला :helpएक संक्षिप्त ट्यूटोरियल सहित स्वयं सहायता विषयों, की सूची के लिए। विषयों की सूची के भीतर अपने कर्सर को रुचि के विषय पर ले जाएं और फिर दबाएं ctrl]और उस विषय को खोला जाएगा।

आपके लिए एक अच्छी जगह का विषय होगा

|usr_07.txt|  Editing more than one file

ठीक है, आपके उत्तर पर।

फ़ाइलों की सूची के साथ vim शुरू करने के बाद, आप दर्ज करके :nextया :nसंक्षिप्त रूप से अगली फ़ाइल पर जा सकते हैं । :wnextवर्तमान परिवर्तनों को लिखने के लिए कम है और फिर अगली फ़ाइल पर जाएं।

वहाँ भी एक अनुरूप है :previous, :wpreviousऔर :Next। (ध्यान दें कि के :pलिए आशुलिपि है :print। के लिए आशुलिपि :previousहै :prevया :N)

यह देखने के लिए कि आप फ़ाइल सूची में कहाँ हैं :argsऔर वर्तमान में संपादित की जा रही फ़ाइल [](कोष्ठक) में दिखाई देगी ।

उदाहरण:

vim foo.txt bar.txt
:args

नतीजा:

[foo.txt] bar.txt

24
: wn की कमी है: wnext।
कोव

आप यह भी कर सकते हैं: पहली फ़ाइल पर वापस जाने के लिए रीव। : 2 फाइलों के बीच ई # स्वैप। : n! बिना लिखे ही अगली फाइल पर जाता है। इसे भी देखें: सेट ऑटोवाइट।
सासक्विहा


1
मुझे अध्याय 22 "बहुत उपयोगी के रूप में संपादित करने के लिए फ़ाइल ढूँढना" मिला। यह निर्देशिका एक्सप्लोरर का उपयोग करके आपके द्वारा वांछित फ़ाइलों को संपादित करने के लिए जाता है।
हैरी मोरेनो

: बहुत बढ़िया।
रामायण

54

आप एक और फाइल खोल सकते हैं, जबकि vim के साथ खुला है :tabe filenameऔर आपके द्वारा टाइप की जाने वाली दूसरी फ़ाइल पर स्विच करने के लिए :tabnया :tabpउसके अनुसार और पिछले।

कीबोर्ड शॉर्टकट जी.टी. और जीटी भी टैब स्विच करने के लिए जब आप संपादन मोड में नहीं हैं (यानी न डालने में, आदि मोड की जगह) का इस्तेमाल किया जा सकता है। कुछ प्रणालियों पर Ctrl+ Alt+ Page Upऔर Ctrl+ Alt+ Page Downभी टैब-स्विचिंग की अनुमति देते हैं, लेकिन यह हमेशा काम नहीं करता है (उदाहरण के लिए, यह ओएस एक्स टर्मिनल 'बॉक्स से बाहर' में काम नहीं करेगा)।

और आप फ़ाइल नाम को vim ऐप में सबसे ऊपर देख सकते हैं।


16
इस। इसके साथ टैब में फाइलें भी खोलें:vim -p file1 file2
नहीं

विस्मित! मैं इस से पहले कभी नहीं आया था, वर्षों के लिए इस्तेमाल होने के बावजूद। इससे सब कुछ बदल जाता है
me_and

ध्यान दें कि टैब कई फ़ाइलों के साथ काम करने के लिए अभिप्रेत नहीं हैं। वे कई लेआउट के साथ काम करना चाहते हैंलेख देखें ।
patryk.beza

5
एक तरफ: यदि आप पहले से ही काम में हैं और एक और फाइल जोड़ना चाहते हैं, तो आप इसका उपयोग कर सकते हैं: :argadd filenameऔर उसके बाद :next। इसी तरह, आप :argdel filenameकिसी फाइल को एडिट में हटाने के लिए उपयोग कर सकते हैं ।
Luv2code

36

बफ़र्स के बीच स्विच करने के लिए आदेश:

:bf            # Go to first file.
:bl            # Go to last file
:bn            # Go to next file.
:bp            # Go to previous file.
:bw            # Close file.

:help buffer अधिक जानकारी पाने के लिए

फ़ाइल नाम उपयोग Ctrl+ G, :fileया जानने के लिए:f


1
:bwबंद फ़ाइल haha। मदद के लिए पढ़ना न भूलें :bwजहां यह कहता है कि आपको इसका उपयोग केवल तभी करना चाहिए जब आपको पता हो कि आप क्या कर रहे हैं। यह कोई बड़ी बात नहीं है, लेकिन जब तक आप सभी निशान और फ़ाइल, बेहतर उपयोग :bdया :qएक सामान्य व्यक्ति के बारे में जानकारी मिटा देना चाहते हैं
डायलन

1
:bwमामले में अधिक जानकारी के लिए आप जिज्ञासु हैं: vi.stackexchange.com/questions/2212/…
wisbucky

25

दिए गए उत्तरों के अलावा एक अन्य विकल्प यह है कि विंडो को इसके साथ विभाजित करें:

:sp
:vsp

:vspऊर्ध्वाधर विभाजन के लिए है। फिर Ctrl+W <ARROW_KEYS>पैन में स्थानांतरित करने के लिए उपयोग करें।


4
आप :vsइसके बजाय:vsp
खाजा मिनहाजुद्दीन

2
या यहां तक ​​कि Ctrl+W, vऊर्ध्वाधर विभाजन के लिए और Ctrl+W, sक्षैतिज विभाजन के लिए भी।
रुस्लान

1
मैं CTRL+Wवर्षों से उपयोग कर रहा हूं और हाल ही में मैं वेब पृष्ठों के अंदर बहुत सारे VI संपादन करता हूं। हर बार, मैं बिना सोचे-समझे भी कमांड टाइप करता हूं और ... whammmm ... ब्राउजर टैब हो गया है! मैं भूलता रहता हूं। मुझे वास्तव में एक नया शॉर्टकट सीखने की जरूरत है।
16


10

मैंने सुपरयुजर से एक समान प्रश्न पूछा,

"VI के साथ खोले गए विभिन्न बैश विंडो और फ़ाइलों के बीच कॉपी और पेस्ट कैसे करें?"

मेरे प्रश्न का उत्तर आप नहीं थे, लेकिन आप VIM के :splitआदेश का उपयोग करके एक bash विंडो में दो फाइलें खोल सकते हैं :

  1. एक फ़ाइल खोलें $ vim file1, :split file2कमांड का उपयोग करके VIM के भीतर एक दूसरी फ़ाइल खोलें ।
  2. या, $ vim -o file1 file2बैश से उपयोग करें ।
  3. फ़ाइलों के बीच स्विच करें - सक्रिय फ़ाइल - VIM के साथ ctrl- w ctrl- w
  4. एक उदाहरण ऑपरेशन तब फ़ाइल 1 में कॉपी (या यैंक) है yy, स्विच (3), फिर pफाइल 2 में सामग्री पेस्ट (या डाल) ।
  5. खिड़की के सक्रिय होने पर बाकी सब सामान्य होता है, इस प्रकार :qक्विट और :q!फोर्स क्विट होता है।

मेरा बैश काला और सफेद है, इसलिए प्रत्येक स्क्रीन का फ़ाइल नाम एक उलट 'चयनित' लाइन के रूप में स्टाइल किया गया है, जिसमें फ़ाइल नाम दर्ज है।

यहाँ प्रारंभ करें


6

मुझे लगता है कि टैब का उपयोग करके कई फ़ाइलों को संपादित करने का सबसे सुविधाजनक तरीका है। आप कमांड लाइन के माध्यम से अलग-अलग टैब में कई फाइलें खोल सकते हैं जैसे:

vim -p file1.txt file2.txt

या यदि आपके पास पहले से ही खुला है, तो आप एक नई फ़ाइल को एक नए टैब में खोल सकते हैं जैसे:

:tabe file2.txt

एक बार आपके पास टैब खुले होने के बाद, gtअगले टैब gTको देखने के लिए और पिछले टैब को देखने के लिए उपयोग करें ।

आप पहले टैब पर भी जा सकते हैं 1gt, दूसरे टैब के साथ 2gt, आदि।

आप टैब का उपयोग करके बंद कर सकते हैं :tabc

अंत में आप करंट टैब को nवें स्थान पर ले जा सकते हैं :ntabmजहाँ nकोई भी संख्या इससे अधिक या उसके बराबर है 0


6
argadd a/b c/d e/f

argadd ...सभी फाइलों को आर्ग में जोड़ देगा, और :ls/ :buffersऔर आपको उन्हें संपादित करने की अनुमति देगा।


देखें :h arglsitऔर :h argedit&:h argsd


इसके अलावा, आप केवल args पर कुछ कार्य कर सकते हैं :argdo ..., और आप अपने args के साथ नए सिरे से शुरुआत कर सकते हैं :argsd*


0

ऐसा करने के लिए बहुत सारे तरीके हैं। पहला, शायद कम सुविधाजनक, vimउन फ़ाइलों के साथ कॉल करना है जिन्हें आप संपादित करना चाहते हैं - बनाएं:

vim first_file second_file ...

यह दो फाइलों को दो बफ़र्स में कहता है। एक फ़ाइल से दूसरे में स्विच करने के लिए, कृपया उपयोग करें :nऔर :N। जिन फ़ाइलों को आप संपादित कर रहे हैं, :argsउन्हें सूचीबद्ध करने के लिए काम करेंगे। :help bufferइस पर आपकी और मदद करेगा।


यह आपके प्रश्न का उत्तर देना चाहिए। लेकिन यहाँ अधिक जानकारी है:

विम का उपयोग करके अपनी कंसोल स्क्रीन को विभाजित करके अपनी फ़ाइलों को अधिक सुविधाजनक तरीके से संपादित करने का एक तरीका है । ऐसा करने के लिए, विम का उपयोग करते हुए :split( :sp) या :vsplit( :vs) के साथ दो फ्रेम खोलें । फिर संयोजन + > + का उपयोग करके इन फ़्रेमों में नेविगेट करें । तुम भी उपयोग कर सकते हैं + + तीर या कुंजी ( , , या ) अगले फ्रेम करने के लिए इसी। जब यह हो जाता है, तो उस फ़ाइल को संपादित करें जिसे आप चाहते हैं । इस पर आपकी और मदद करेगा।CtrlWCtrlWCtrlWHJKL:e file_name:help opening-window

अब, यदि आप फ़ाइलों के बीच अंतर देखना चाहते हैं, तो -dतर्क का उपयोग करें या संबंधित फ़ाइलों के साथ vimdiff प्रोग्राम (यह समान है) का उपयोग करें। :help diffइस पर आपकी और मदद करेगा।

vim -d first_file second_file ...

यदि आपके पास कुछ मुद्दा है तो कृपया मुझे बताएं।


0

मुझे कई फ़ाइलों को संपादित करने के लिए विभाजित खिड़कियों - दोनों क्षैतिज और ऊर्ध्वाधर का उपयोग करना पसंद है।

मैं उन विंडो को अधिक आसानी से प्रबंधित करने के लिए tmux का उपयोग करता हूं

https://tmux.github.io/ "एक टर्मिनल मल्टीप्लेक्सर क्या है? यह आपको एक टर्मिनल में कई कार्यक्रमों के बीच आसानी से स्विच करने देता है, उन्हें अलग कर देता है (वे पृष्ठभूमि में चलते रहते हैं) और उन्हें अलग टर्मिनल पर फिर से सेट करें। और करते हैं। बहुत अधिक। मैनुअल देखें। "

उदाहरण: दाईं ओर फ़ाइलों या चल रहे परीक्षणों को देखते हुए, बाईं ओर परीक्षण और स्रोत फ़ाइलों को संपादित करना: यहां छवि विवरण दर्ज करें


0

:e #(filename) दो खोली गई फ़ाइलों के बीच टॉगल करने के लिए

:p पिछले फ़ाइल के लिए

:n अगली फ़ाइल के लिए


U & L के लिए Welcomme, यह शायद ही कुछ साल पहले पोस्ट किए गए अन्य उत्तर के लिए जोड़ दे।
अर्चनाकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.