कई फ़ाइलों को नेविगेट करना


11

यदि मैं कमांड लाइन पर कई फाइलों के साथ विम खोलता हूं, उदाहरण के लिए vim debug.log*जो लोड करता है debug.log, debug.log.1और debug.log.2क्या मैं उनके बीच नेविगेट कर सकता हूं, उन्हें कई विंडोज़ ( :split/ :vsplit) या ऐसे में असाइन कर सकता हूं ?

इस मोड के संचालन के लिए एकमात्र शॉर्टकट मैं जानता हूं :n, जो सूची पर अगली फ़ाइल लोड करता है। मैं इस मल्टी-फाइल ऑपरेशन मोड में और क्या कर सकता हूं? (या जो विषय को कवर करने में मदद करता है?)


3
:previous(या :prev) का उलटा है :n, और एक फाइल वापस जाती है।
रिच

जवाबों:


13

सबसे अधिक प्रासंगिक मदद विषय है :lsके रूप में भी जाना जाता है, :filesया :buffers

अपने vim debug.log*उदाहरण में, यदि आपने :lsआज्ञा दी है, तो आप देखेंगे:

:ls
  1 %a   "debug.log"                    line 1
  2      "debug.log.1"                  line 0
  3      "debug.log.2"                  line 0
Press ENTER or type command to continue

… यह दर्शाता है कि पहला सक्रिय बफर है।

debug.log.2वर्तमान विंडो में खोलने के लिए, बफर 3 को दिखाने के लिए :b 3या :b debug.log.2कमांड दें।

विंडो को विभाजित करने और इसमें बफर 2 खोलने के लिए, :sb 2कमांड दें। उस का वर्टिकल-स्प्लिट संस्करण है :vert sb 2

:bकमांड के कई संस्करण हैं ; उनके लिए एक अनुभव पाने के लिए यहां दिए गए सहायता विषयों को ब्राउज़ करें।


इसके अलावा, आप vim -o debug.log*सभी फ़ाइलों को खोलने के लिए, प्रत्येक अपने स्वयं के विभाजन में या vim -O debug.log*प्रत्येक को एक ऊर्ध्वाधर विभाजन में खोलने के लिए आमंत्रित कर सकते हैं ।


6

200_success द्वारा उल्लिखित कच्चे विम कार्यक्षमता के अलावा, विम का पारिस्थितिकी तंत्र अतिरिक्त कार्यक्षमता प्रदान करने के लिए प्लग इन से भरा है, जैसे:

हालाँकि, इससे पहले कि आप जाएं और प्लगइन्स का उपयोग शुरू करें, यह पूरी तरह से बफ़र्स और विंडोज़ को पूरी तरह से समझने के लिए सबसे अच्छा है।


1
कृपया प्लगइन-अनुशंसा उत्तरों पर हमारी नीति को पढ़ें और इस बारे में कुछ विवरण जोड़ें कि ये प्लग इन उपयोगकर्ता को कैसे लाभान्वित कर सकते हैं।
२००/२ 22:

6

आप विभिन्न मापदंडों के साथ विम भी खोल सकते हैं।

टैब में फ़ाइलें खोलता है:

vim -p debug.log*

ऊर्ध्वाधर विभाजन में फाइलें खोलता है:

vim -o debug.log*

Ctrlस्पेस नामक एक अच्छा और काफी शक्तिशाली प्लगइन है:

https://github.com/szw/vim-ctrlspace

यदि आप कई फाइलों के साथ काम करना चाहते हैं तो यह बहुत आसान है। बस आप हर टैब के लिए बफर लिस्ट के रूप में ctrl-space की कल्पना कर सकते हैं। यह फाइलों के बीच नेविगेट करने का बहुत आसान तरीका प्रदान करता है, जैसा कि लेखक बताता है:

Vim-CtrlSpace, Vim में आपके कार्य स्थान को नियंत्रित और व्यवस्थित करने के लिए एक Vim प्लगइन है। जिसमें बफ़र, फ़ाइल, टैब, सत्र और अंत में प्रोजेक्ट्स को प्रबंधित करना शामिल है। इसका दृष्टिकोण कुछ अनूठा है, लेकिन निश्चित रूप से आप घर पर महसूस करेंगे, खासकर यदि आप पहले से ही विभाजित खिड़कियों, टैब, बफ़र्स आदि का उपयोग करते हैं।


Vi / Vim में आपका स्वागत है! कृपया प्लगइन-अनुशंसा उत्तरों पर हमारी नीति पढ़ें और इस बारे में कुछ विवरण जोड़ें कि प्लगइन प्रश्न को कैसे संबोधित करता है।
२००/२।


4

यदि आप किसी विशेष फ़ाइल को खोलने की आवश्यकता के बिना जाना चाहते हैं :ls, तो आप निम्न में से किसी का उपयोग कर सकते हैं:

  • :vs filename एक ऊर्ध्वाधर विभाजन में फ़ाइल खोलता है
  • :sp filename वही करता है, लेकिन एक क्षैतिज विभाजन में
  • :tabe filename एक नए टैब में खुलता है

यह जानने लायक भी है, कि यदि आप फ़ाइल नाम निर्दिष्ट नहीं करते हैं, तो आप वर्तमान फ़ाइल का एक नया विभाजन / टैब खोलेंगे, जो लंबी फ़ाइलों के लिए उपयोगी हो सकता है।


2
:tकॉपी कमांड है। आपके लिए :tabeditकम से कम चाहिए :tabe
tommcdo

ओह, तुम पूरी तरह से सही हो। धन्यवाद, मैं संपादित करूँगा!
टॉम

0

कई फ़ाइलों को नेविगेट करने के लिए कुछ उपयोगी शॉर्टकट हैं:

  • CTRL-^(जहाँ Nबफर संख्या है) पहले से संपादित फ़ाइल में कूदने के लिए।
  • N CTRL-^(जहां Nबफर नंबर है) विशिष्ट बफर में कूदने के लिए।

    उदाहरण के लिए:

    • 1Control+^ - 1 बफर पर जाएं
    • 2Control+^ - 2nd बफर पर जाएं
    • आदि।

    इसके बराबर है :buffer N

  • वर्तमान निर्देशिका को नेविगेट करने के लिए :Ex/ :Sex/ :Vexका उपयोग करें ।

  • :tabsइसके बजाय vim -pकुछ कस्टम शॉर्टकट के साथ ( ) का उपयोग करें .vimrc:

    " TABS
    " To create a new tab (Control-T)
    nnoremap <C-t> :tabnew<CR>
    inoremap <C-t> <Esc>:tabnew<CR>
    " Tab Navigation (Control+Left <-> Control-Right, Shift+H <-> Shift+L).
    nnoremap <S-h> gT
    nnoremap <S-l> gt
    nnoremap <A-Left> gT
    nnoremap <A-Right> gt
    nnoremap <C-S-Tab> gT
    nnoremap <C-Tab> gt
    " Tab Close (Control-W)
    nnoremap <C-BS> :tabclose<CR>
    inoremap <C-BS> <Esc>:tabclose<CR>
    " Close All (Control-Q)
    nnoremap <C-q> :qa<CR>
    inoremap <C-q> <Esc>:qa<CR>
    
  • का प्रयोग करें :ba/ :vert baविभाजित करने के लिए, के माध्यम से चयनित बफर में कूद Control+w, w/ W, फिर इसे वर्तमान विंडो ( :on) करें।

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