पहले से ही खुली खिड़की में कर्सर के नीचे एक फ़ाइल खोलने के लिए शॉर्टकट


12

Vim में आप कमांड का उपयोग करके कर्सर के नीचे एक फाइल खोल सकते हैंgf

कोई भी आसानी से उस फ़ाइल को एक नई स्प्लिट विंडो में हिट करके खोल सकता है <c-w> f। यह वास्तव में अच्छा और समय बचाने वाला फीचर है।

हालाँकि, मैं यह पता नहीं लगा सकता कि फ़ाइल को पहले से खुली हुई विभाजन विंडो में कैसे खोलें (बिना नया निर्माण किए)।


1
आप सुविधा को देखना चाहते previewहैं (देखें :h preview)।
स्टीफन चेज़लस

ठीक है, मैं पूर्वावलोकन का भी उपयोग करता हूं। हालाँकि मैं फ़ाइल को पूर्वावलोकन विंडो में नहीं खोलना चाहता था, लेकिन एक दूसरे में स्पष्ट रूप से।
साईबर

जवाबों:


10

चाल करने के लिए मुझे सारे टुकड़े एक साथ मिल गए। सभी कमांड के लिए कस्टम मैपिंग बनाने का सबसे अच्छा तरीका है:

 map <F8> :let mycurf=expand("<cfile>")<cr><c-w> w :execute("e ".mycurf)<cr><c-w>p

स्पष्टीकरण:

  • map <F8> "F8" आदेशों का पालन करने वाले नक्शे
  • let mycurf=expand("<cfile>") कर्सर के नीचे फ़ाइल नाम मिलता है और इसे इसमें सहेजता है mycurf
  • <c-w>w फोकस को अगली खुली विभाजन विंडो में बदल देता है
  • execute("e ".mycurf) में सहेजी गई फ़ाइल खोलता है mycurf
  • अंत <c-w>pमें फोकस को पिछली विंडो में बदल देता है (जहां हम वास्तव में आए थे)

1

यह आसानी से नहीं किया जा सकता है। एक [count]से पहले <C-w>fनिर्दिष्ट करता है जो फ़ाइल मैच पर 'path'खोला जाता है, यह करता है नहीं किसी मौजूदा विंडो का चयन करें। केवल <C-w>wकमांड के लिए, [count]"मौजूदा विंडो नंबर पर जाएं" का अर्थ है।

उस कार्यक्षमता को प्राप्त करने के लिए, आपको एक कस्टम मैपिंग लिखने की आवश्यकता है जो या तो

  • फ़ाइल को पकड़ लेता है, [count]खिड़की पर जाता है और gfकमांड का अनुकरण करता है , या
  • [count]विंडो को वर्तमान बफ़र क्लोन करता है, और gfवहां निष्पादित करता है

हां यह करने का एकमात्र तरीका कस्टम मानचित्रण लिखना है। मुझे बस कर्सर के नीचे फ़ाइल को हथियाने में थोड़ी परेशानी हो रही थी। लेकिन मुझे लगता है कि मैंने इसे समझ लिया है
psibar

1

मैंने उसी VIm के फंक्शन की खोज की और इस समाधान का पता लगाया जो आकर्षण की तरह काम करता है:

map <F8> :vertical wincmd f<CR>

स्रोत पेज


0

यह मेरे लिए काम किया:

function! OpenFileInPrevWindow()
    let cfile = expand("<cfile>")
    wincmd p
    execute "edit " . cfile
endfunction

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