बड़ी निर्देशिका संरचनाओं में कुशलतापूर्वक कई फाइलों के बीच संपादन / स्विचिंग


11

मैं किसी भी तरह से एक विम पावर उपयोगकर्ता नहीं हूँ, मैं सिर्फ उन्नत गतियों और विम के साथ आदेशों को समझ रहा हूँ। लेकिन एक ऐसी खामी है जिसके बारे में मुझे कोई जानकारी नहीं है।

मैं कोड लिखने के लिए चित्रमय कार्यक्रमों के साथ बड़ा हुआ, लेकिन मैंने हाल ही में कई फ़ोल्डरों पर काफी बड़ी परियोजनाओं पर काम करने के लिए ssh और स्क्रीन पर vim का उपयोग करना शुरू कर दिया है।

मैं उत्सुक हूँ कि विम स्वामी कितनी जल्दी और आसानी से कई फाइलों के साथ काम करते हैं। एक उदाहरण के रूप में एक रेल एप्लिकेशन पर विचार करें। कहते हैं कि आप एक नियंत्रक को संपादित करना चाहते हैं ताकि आप चलाएं।

vim app/controllers/controller.rb

लेकिन फिर आप जल्दी से किसी दृश्य या डीबी माइग्रेशन के संपादन में बदलाव करना चाहते हैं, मेरी पहली वृत्ति है :wq, उस निर्देशिका में नेविगेट करने के लिए बैश में लौटें और एक नए बफर में फिर से शुरू करें।

यह स्पष्ट रूप से गलत है।

मैंने कई चीजों के बारे में सीखा है जैसे:

  • ग्राहक (लेकिन मैं ssh पर X का उपयोग नहीं करना चाहता और यह एकमात्र तरीका लगता है)
  • :eब्राउज़ करके दूसरी फ़ाइल खोलने के लिए, लेकिन मैं इसे बहुत जल्दी नहीं कर सकता। टैब पूरा सच में मुझे यात्राएं।
  • संपूर्ण निर्देशिका खोलना और बफ़र्स के माध्यम से खोजना।
  • NERDTree होनहार है, लेकिन मैं वास्तव में किसी भी चित्रमय प्रतिनिधित्व से दूर रहना चाहता हूं ताकि मुझे मजबूर कर दिया जा सके

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

आपके तरीके क्या हैं, और आप क्या सलाह देंगे?


विशेष रूप से पटरियों पर रूबी के लिए, मॉडल / विचार / नियंत्रक / माइग्रेशन / परीक्षण /… ( दस्तावेज़ीकरण में देखें , या जब आप देखें) के लिए फाइलें खोलने के लिए टिम पोप के रेल.विम प्लगइन में कुछ अच्छे कमांड (नए पदानुक्रम के साथ एक्स्टेंसिबल के साथ) हैं। इसे स्थापित किया है)। rails-type-navigation:help rails-type-navigation
क्रिस जॉन्सन

जवाबों:


7

यह कई फ़ाइलों को संपादित करने के लिए पूरी तरह से बाहर निकलने के बिना vim को सेट करना संभव है। आप कई बफ़र्स का उपयोग करते हैं और उनके बीच स्विच करते हैं। चूंकि आप स्क्रीन के अंदर विम का उपयोग कर रहे हैं, आप इसे सक्षम करने के लिए अपने ~ / .vimrc में निम्नलिखित डाल सकते हैं।

   set hidden
   syntax enable
   source $VIMRUNTIME/menu.vim
   set wildmenu
   set cpo-=<
   set wcm=<C-Z>
   map <F4> :emenu <C-Z>
   nmap <Esc>[5D :bp<CR>
   nmap <Esc>Od  :bp<CR>
   nmap <Esc>OD  :bp<CR>
   nmap <Esc>[5C :bn<CR>
   nmap <Esc>Oc  :bn<CR>
   nmap <Esc>OC  :bn<CR>
   nmap <Esc>[3~ :bd<CR>
   nmap ZZ :bd<CR>

वे मुख्य मैपिंग बफ़र्स के बीच स्विच करने के लिए Ctrl-Left और राइट एरो कीज़ पर मैप करते हैं। F4 कुंजी उसी मेनू को लागू करती है जो GUI दिखाएगा। प्रेस टैब भी अब आपके प्रेस टैब को पूरा करने के लिए थोड़ा मेनू प्रदर्शित करता है।


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

5

हा! तो मैं जानता हूँ कि मैं, वास्तव में आप की तरह हुआ करता था वास्तव में तुम कहाँ से आ रहे हैं। अब भी जब मुझे पता है कि मैं एक निश्चित सीमा तक कर रहा हूं (मैं कोई भगवान नहीं हूं, लेकिन मुझे उम्मीद है कि मैं वहां जाऊंगा) मैं अभी भी कभी-कभार: wq करूंगा और अपने खोल में वापस आ जाऊंगा।

इसे देखें - यह आपकी मदद कर सकता है। (यह मेरी भी मदद करेगा, क्योंकि मैं कभी भी इस बारे में नहीं जानता था। स्टैकएक्सचेंज साइटों के बारे में यह बहुत बढ़िया है - आप इसे सीखने में मदद करके सीखते हैं!)

यहाँ कुछ चीजें हैं जो मैं करता हूं।

  1. :eआदेश। अंदर vim से, किसी फ़ाइल को संपादित करते समय, आप कुछ ऐसा कर सकते हैं :e dir/subdir/otherfileऔर इसे एक नए बफ़र में खोल देगा, जिसका अर्थ है कि आपके पास एक बार में दो फाइलें होंगी।

  2. Ctrl-Shift-6(वास्तविक अस्की मूल्यों को नहीं जानते)। यदि आपके पास दो बफ़र खुले हैं, तो आप इस टॉगल के साथ एक फ्लैश में उनके बीच स्विच कर सकते हैं।

  3. bd- बफर हटाना। आपको एक बफर साफ़ करने देता है।

  4. यह वास्तव में बहुत आसान है - :sh। यदि आपको किसी भी कारण से किसी शेल में वापस जाना है (कहते हैं, एक डायरेक्टरी को देखने के लिए और किसी फाइल को चामॉड करने के लिए), तो आप वीम के शेल कमांड को बस कर सकते हैं। शेल से बाहर निकलना आपको ठीक उसी जगह पर ले जाता है जहां आप व्यर्थ थे।

  5. उपरोक्त श्रेणी में - टाइपिंग :!और एक यूनिक्स कमांड बाद में उस कमांड को निष्पादित करेगा। इसके साथ प्रयास करें ls। (मुझे लगता है कि यह शेल बिल्डरों के साथ भी काम करता है, लेकिन मुझे यकीन नहीं है।)

वे ही हैं जिनका मैं हर समय उपयोग करता हूं। भी नहीं है :nअगले के लिए, और :pपिछले फ़ाइल के लिए, जब से तुम दो से अधिक बफ़र्स (हालांकि, मैं आमतौर पर ऐसा नहीं करते हैं) एक ही बार में vim में खुला हो सकता है।


उन युक्तियों के लिए बहुत बहुत धन्यवाद। मुझे यह भी मिला: wincent.com/products/command-t । मैं इसका इस्तेमाल शुरू करने के लिए तैयार हूं। केवल नकारात्मक पक्ष यह है कि आपको माणिक (ssh सामान के साथ इतना अनुकूल नहीं) की आवश्यकता है, लेकिन यह वही है जो मैं देख रहा था। साथ कि संयुक्त :sh, :eऔर उचित बफर प्रबंधन, और चीजों को सेक्सी मिल
febs

अधिकांश गोले में (यानी नौकरी-नियंत्रण के साथ गोले) Ctrl+Zप्रक्रिया को स्थगित करना चाहिए ( fgशेल से इसे फिर से प्रदर्शित करने के लिए) - जो इसके विकल्प में है :sh
मैक्सक्लेपजिग

एक और शानदार टिप! अति उत्कृष्ट! मुझे इन्हें ब्लॉग पोस्ट या कुछ और में संकलित करना होगा।
febs

2

यहीं से आप प्लगइन्स का उपयोग करना शुरू करते हैं । फ़ाइल (या बफ़र) के लिए प्रबंधन NERD ट्री और MiniBufExplorer आम विकल्प हैं। आपके मामले में मैं " vim ruby ​​ide " को Google करूंगा और मुझे मिलने वाले कई ट्यूटोरियल में से एक का पालन करेगा। मैं पायथन का उपयोग करता हूं और इस ट्यूटोरियल में 3 कमांड सब कुछ कॉन्फ़िगर करता है जो मुझे विम से बाहर चाहिए।


2

मैं एक बार में कई फ़ाइलों को देखने के लिए स्प्लिट विंडो का उपयोग करने की भी सिफारिश करूंगा। VIM के भीतर बफ़र और विंडो प्रबंधन के साथ कुछ कौशल जोड़ें, और आप कुछ ही समय में VIM निंजा होंगे।

वास्तविक प्रलेखन के लिए, मैं आपको वीआईएम विंडोज डॉक्यूमेंटेशन का संदर्भ दूंगा , लेकिन मैं आपको यहां एक शुरुआत देने की कोशिश करूंगा।

VIM को 2 (या अधिक) क्षैतिज रूप से विभाजित खिड़कियों के साथ शुरू करें, शीर्ष विंडो में फ़ाइल 1 है, अगली विंडो नीचे फ़ाइल 2 है। आदि।

vim -o <file1> <file2> (file3 file4 ...)

VIM को 2 (या अधिक) ऊर्ध्वाधर रूप से विभाजित खिड़कियों के साथ शुरू करें, बाईं सबसे अधिक विंडो में file1 है, अगले विंडो पर file2 है। आदि।

vim -O <file1> <file2> (file3 file4 ...)

कर्सर को एक अलग विंडो में ले जाएं:

CTRL-W <vim direction key> (h=left, j=up, k=down, l=right)

पहले से ही एक फ़ाइल का संपादन, लेकिन खिड़की को विभाजित करना और एक अलग फ़ाइल को भी संपादित करना चाहते हैं:

:split <file2>
:vsplit <file2>

क्रमशः क्षैतिज और ऊर्ध्वाधर विभाजन के लिए।

खिड़कियों के चारों ओर घूमने, उनका आकार बदलने आदि के लिए भी कमांड हैं।


1

दूसरी संपादित विंडो खोलने के लिए vi: स्प्लिट कमांड का उपयोग करें। विभाजन दोनों क्षैतिज और ऊर्ध्वाधर विभाजन और एक समय में दो से अधिक कर सकते हैं। मेरे पास एक ही vi सत्र में 10 से अधिक फाइलें खुली हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.