आप विम में 'gf' से कैसे लौटेंगे


187

मैं यूनिक्स मोड में स्थापित खिड़कियों के लिए विम का उपयोग कर रहा हूं। इस साइट के लिए धन्यवाद मैं अब gfकर्सर के नीचे एक फ़ाइल पर जाने के लिए कमांड का उपयोग करता हूं ।

मैं या तो एक आदेश के लिए देख रहा हूँ:

  1. पिछली फ़ाइल पर लौटें ( ctags के लिए Ctrl+ के समान T), या
  2. gf नई फ़ाइल को नई विंडो में स्वचालित रूप से लॉन्च करने के लिए रीमैप ।

जवाबों:


294

मैं उपयोग करता हूं Ctrl-O


43
CTRL-O जंप सूची में एक पुराने स्थान पर जाने के लिए, <Tab> या CTRL-I नए स्थान पर जाने के लिए।
सेबास्टियन रोकासेरा

4
@ g33kz0r mnemonic होगा O = OUT, I = IN => Ctrl - O आपको बाहर लाता है, Ctrl आपको अंदर लाता है। अगर हर कूद एक दरवाजे से गुजरने जैसा है, तो यह है।
क्रोन

CTRL-O अंतिम विज़िट की गई स्थिति में कूद जाएगा, यह तब कष्टप्रद है जब नई फ़ाइल को खोजा गया है। मैं Shift-Ctrl-6 (मेरे मामले में Ctrl-6 काम नहीं करता) पसंद करता हूं
Adriano

71

मैं अक्सर उपयोग Ctrl- 6इस बात के लिए।

यह आसान है क्योंकि यह मुझे जल्दी से दो फाइलों के बीच आगे और पीछे कूदने की अनुमति देता है।


47

आप CTRL-W gfफ़ाइल को नए टैब में खोलने के लिए उपयोग करना चाह सकते हैं ।

आप हमेशा की तरह :bd, या CTRL-6बफ़र्स बदलने के अन्य सामान्य तरीकों के साथ नई खुली हुई फ़ाइल को बंद कर सकते हैं ।


7
टैब मेरे लिए बफर की तुलना में अधिक सुविधाजनक है, और nnoremap gf <C-W>gfनए टैब में खोलने के लिए उपयोग करना बेहतर हो सकता है।
Searene

13

एक फ़ाइल में उतरने के लिए gf का उपयोग करें और वापस जाने के लिए bf का उपयोग करें


1
मेरे पास एक टैब में दो खिड़कियां खुली थीं और यह सिर्फ पिछली बफर में वापस कूदने के बजाय पहले में दूसरी खिड़की खोलती थी।
केनी एविट

12

बस :e#इसके बाद उपयोग करें Enter- जो मूल रूप से अंतिम (सबसे हाल की) फ़ाइल को संपादित करने के लिए कहता है।


9

Ctrl-Shift-6 एक है।

:e#↲ दूसरा है।


8
शिफ्ट जरूरी नहीं है। अपनी उंगलियों को गाली देना बंद करो।
ज़थ्रस

6
उम। मैं एक पुराने टाइमर की तरह हूँ। Ctrl-6 वायस टर्मिनल पर vi के साथ काम नहीं करेगा जिसका उपयोग मैंने सालों पहले किया था। देखिए, कुछ चीजें खोदकर रह जाती हैं। और इस कॉम्बो में Shift का उपयोग नहीं करने से शायद ही मेरी कुल उंगली के दुरुपयोग पर कोई फर्क पड़ेगा। अरे, कम से कम आपने पूरी कोशिश की। HTH। हाथ।
tzot

यह वैकल्पिक फ़ाइल कहलाने वाली चीज़ों पर स्विच करता है ।
१३:०४ पर जुल्फ

5

मुझे काम करने के लिए CTRL-W f मिला।
यह काफी निराशाजनक है कि मैंने इन कमांडों के लिए इतने लंबे समय तक नक्शों को पूरा करने के लिए केवल यह पता लगाया है कि अंतर्निहित संस्करण हैं।


5

मुझे आपके प्रश्न के भाग 2 का उत्तर नहीं पता है, लेकिन मैं भाग 1 के साथ मदद कर सकता हूं

:e#

विम फ़ाइलों (बफ़र्स) की एक सूची रखता है जिसे वह संपादित कर रहा है। अगर आप टाइप करते है

:buffers

यह उन सभी फाइलों को सूचीबद्ध करेगा जिन्हें आप वर्तमान में संपादित कर रहे हैं। उस सूची में फ़ाइल जिसके पास% है वह वर्तमान फ़ाइल है। इसके बगल में # एक वैकल्पिक फ़ाइल है। : e # चालू और वैकल्पिक फ़ाइल के बीच स्विच करेगा। इतना अधिक टाइप करने के बजाय, मैं F2 को: # # मैप करता हूं, इसलिए मैं वर्तमान और वैकल्पिक फ़ाइलों के बीच आसानी से फ्लिप कर सकता हूं। मैं इसे .vimrc में जोड़कर F2 की कमांड को मैप करता हूं

nmap `<F2> :e#<CR>`

2
मुझे नहीं लगता कि आप उपयोग करना चाहते हैं: e # क्योंकि वह संभवतः फ़ाइल को पुनः लोड कर सकता है। : b # बिना इस समस्या के समतुल्य है।
लाम्बाक

अच्छी बात। इसे फिर से लोड किए बिना दूसरे बफर पर स्विच करता है।
कोडबुननी


2

जब आप एक नई फ़ाइल खोलते हैं ( gf या : n या अन्य कमांड के साथ) तो पुरानी फाइल बफर लिस्ट में रहती है। आप के साथ खुली फ़ाइलों को सूचीबद्ध कर सकते हैं : ls

यदि आप बफ़र्स के बीच आसानी से नेविगेट करना चाहते हैं, तो आप इस तरह से एक मैपिंग बना सकते हैं:

nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>

अब आप Alt + बाएँ तीर या Alt + दाएँ तीर के साथ बफ़र्स के बीच स्विच कर सकते हैं।

मैपिंग पर पूरा प्रलेखन यहाँ है:

:help map.txt

0

मैंने आपकी gf कमांड को नहीं देखा है, लेकिन मुझे लगता है कि इसका उपयोग करता है : e या : find कमांड।
यह मानते हुए कि यह सही है, बस : e या : को खोजें: के साथ : नया (या : एक ऊर्ध्वाधर विभाजन के लिए vnew ) और फ़ाइल उसी के बजाय एक नई विंडो में खुलेगी।

जैसे

"हेडर और सीपीपी के बीच स्विच करें
nmap, s: find%: t: ​​r.cpp <CR>
nmap, S: नया%: t: ​​r.cpp <CR>
nmap, h: find%: t: ​​rh <CR>
nmap, H: नया%: t: ​​rh <CR>
नैम्प, एफ: नया = विस्तार ("<cfile>: t") <CR> <CR>
nmap, d: new = विस्तारित ("<cfile>") <CR> <CR> 


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