यह कैसे पता करें कि वर्तमान में कौन सी फ़ाइल विम में खोली गई है?


61

यह तुच्छ लग सकता है लेकिन, एक से अधिक मौकों पर, मैंने खुद को पाया है कि vimमैं किस फ़ाइल को खोल रहा हूँ (उदाहरण के लिए जब मैं अलग लॉग फाइल के माध्यम से देख रहा हूँ और ऐसी) और एकमात्र तरीका मुझे पता था कि कैसे पता करना है। फ़ाइल और सबसे हाल के कमांड के लिए कमांड इतिहास में देखें।

क्या आपके पास यह बताने के लिए विम के भीतर एक कमांड है कि आपने वर्तमान में प्रोग्राम को बाहर किए बिना या आपके द्वारा खोली गई फ़ाइल (उदाहरण के लिए :<which_file_cmd>) किस फाइल को खोला है ?


5
यदि आप vimइतने सारे आर्ग के साथ फोन नहीं करते हैं, तो उपयोग करें :args

जवाबों:


76

इसके अलावा करने के लिए uprego का जवाब है, तो आप भी दबा सकते हैं Ctrl+ G(सामान्य मोड में) वर्तमान बफर के नाम के साथ-साथ उस में लाइनों की कुल संख्या और यह के भीतर आपकी वर्तमान स्थिति प्राप्त करने के लिए।

अपडेट करें

Rxdazn की टिप्पणी के अनुसार , आप पूर्ण फ़ाइल पथ प्राप्त करने के लिए + से 1पहले दबा सकते हैं । यदि आप दबाते हैं , तो आपको पूर्ण फ़ाइल पथ मिलता है और वर्तमान में आपके द्वारा खुले बफर नंबर (उपयोगी है जब आपने कई फाइलें खोली हैं )।CtrlG2vim


बहुत सारी vim कमांड की तरह यह भी उस lessकमांड पर लागू होता है, जिसका उपयोग मैं फाइलों को देखने के दौरान एडिटिंग के विपरीत करता हूं।
जम्मूतवी

18
इसके अलावा, Ctrl + G से पहले 1 दबाने से आपको फ़ाइल का पूरा रास्ता मिल जाता है
rxdazn

23

जब vimमैं हमेशा :lsकमांड का उपयोग करता हूं ।

उदाहरण

:ls
  1 %a   "blah.txt"                         line 1

blah.txtफाइल का नाम कहां है।


20
:f

वर्तमान में खुली हुई फ़ाइल का नाम देता है।


1
शानदार और बहुत कम से कम
उभयलिंगी

7

जब कई आर्गों के vimसाथ नहीं बुलाया जाता है , तो सहायक होता है।:args


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

4

यदि आपके पास डिफ़ॉल्ट विम कॉन्फ़िगरेशन फ़ाइल हो सकती है, तो आप statuslineहमेशा फ़ाइल विवरण उपलब्ध होने के लिए एक जोड़ सकते हैं । मैं समझता हूं कि अगर आप लगातार अलग-अलग सर्वरों में रीमोट कर रहे हैं तो इससे बहुत मदद नहीं मिलेगी। यहाँ मेरा थोड़ा जटिल है जो मेरे .vimrc से खींचा गया है।

" %F(Full file path)
" %m(Shows + if modified - if not modifiable)
" %r(Shows RO if readonly)
" %<(Truncate here if necessary)
" \ (Separator)
" %=(Right align)
" %l(Line number)
" %v(Column number)
" %L(Total number of lines)
" %p(How far in file we are percentage wise)
" %%(Percent sign)
set statusline=%F%m%r%<\ %=%l,%v\ [%L]\ %p%%

" Change the highlighting so it stands out
hi statusline ctermbg=white ctermfg=black

" Make sure it always shows
set laststatus=2

और यह मैकविम में ऐसा दिखता है (लेकिन टर्मिनलों में भी काम करता है)। यहाँ छवि विवरण दर्ज करें

हमेशा की तरह आप :help statuslineकुछ और विकल्प और विवरण प्राप्त कर सकते हैं । और स्थिति की अच्छी व्याख्या के लिए चेकआउट लर्निंग विम द हार्ड वे च 17


मैं हमेशा स्टेटसलाइन का भी उपयोग करता हूं। +1
रोब

1

वहाँ भी है :echo @%, जो आपको वर्तमान निर्देशिका के सापेक्ष फ़ाइल का नाम देता है।


1

इस तरह की जानकारी प्राप्त करने के लिए अनगिनत तरीके हैं, लेकिन अगर आप कुछ चाहते हैं ताकि आपको केवल एक कुंजी दबानी पड़े और फ़ाइल नाम प्रदर्शित हो जाए, तो अपने में निम्नलिखित डालें ~/.vimrc:

map <F4> <ESC>:file<CR>

यह कहता है,

bind the `F4' key to the following sequence: Escape-key, :file, Carriage-Return (enter-key)

और fileकमांड, जैसा कि संभवतः स्पष्ट है, अन्य जानकारी के साथ वर्तमान फ़ाइल का नाम देता है।

आप एक स्थिति-पंक्ति भी सेट कर सकते हैं ताकि आपको कुछ भी करने की ज़रूरत न पड़े लेकिन देखो।

स्टेटस-लाइन को हमेशा अपने में सम्मिलित रखने के लिए ~/.vimrc:

set laststatus=2

यह वीआईएम को हमेशा एक स्थिति-रेखा प्रदर्शित करने के लिए कहता है, अन्य विकल्प हैं 0, कभी नहीं, और 1केवल तब के लिए जब आपके पास वीआईएम में दो या अधिक खिड़कियां खुली हों।


1

मैं आमतौर पर सिर्फ टाइप करता हूं :e और यह मुझे पूर्ण फ़ाइल पथ और लाइनों और वर्णों की संख्या भी दिखाता है।

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

:help :e कहते हैं:

                          *:e* *:edit*
Edit the current file.  This is useful to re-edit the
current file, when it has been changed outside of Vim.
This fails when changes have been made to the current
buffer and 'autowriteall' isn't set or the file can't
be written.

1

मुझे मेरी vimrc मैं इस मानचित्रण है

nnoremap <leader>pfn :echo expand('%:p')<CR>

इसलिए यदि मैं टाइप करता हूं ,pfn, या "फाइल का नाम प्रिंट करता हूं ", तो यह पूरे फाइल पथ को ईकोस करता है।

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