जवाबों:
आप दबा सकते हैं {count}Ctrl-G
:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
1इसके बाद दबाया Ctrl+ Gवर्तमान फ़ाइल का पूरा रास्ता दिखाता है। यदि {count}
1 से अधिक है, तो बफर नाम भी दिखाया जाएगा।
(केवल दबाने Ctrl+ GVim की वर्तमान कार्य निर्देशिका के सापेक्ष पथ दिखाता है, जैसा कि टिप्पणियों में जैस्पर ने बताया है।)
आप निम्न .vimrc
पंक्ति का उपयोग करके स्टेटस लाइन में पूरा रास्ता जोड़ सकते हैं , इसलिए यह हमेशा दिखाई देता है:
set statusline+=%F
C-g
कि इसके लिए डिफ़ॉल्ट है 0C-g
, और इसके अलावा बफर इंडेक्स नंबर (1 से शुरू) 2C-g
दिखाता है ।
1C-g
!
रजिस्टर %
में वर्तमान फ़ाइल का नाम है।
दिखाई गई जानकारी को प्रदर्शित करने के लिए निम्नलिखित आदेश दर्ज किए जा सकते हैं:
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
सभी चाहते थे जाता है कि वर्तमान फ़ाइल, प्रकार का नाम प्रदर्शित करने के लिए है, तो :f
/ :ls
या प्रेस Ctrl- g(पूर्ण पथ प्रेस के लिए 1तो Ctrl- g)।
इन्सर्ट मोड में, टाइप करें Ctrl- rफिर %करेंट फाइल का नाम डालने के लिए।
निम्न आदेशों में वर्तमान और वैकल्पिक फ़ाइलों के पूर्ण पथ से युक्त लाइनें बफर में सम्मिलित हैं:
:put =expand('%:p')
:put =expand('#:p')
स्रोत: vim विकिया में वर्तमान फ़ाइल का नाम प्राप्त करें
सम्बंधित:
=expand...
होने के बाद भी उन अभिव्यक्तियों का उपयोग कर सकते Ctrl-R
हैं।
आप :!ls %:p
वर्तमान फ़ाइल के लिए पूर्ण पथ प्राप्त करने के लिए उपयोग कर सकते हैं ।
पूर्व संदर्भ के आधार पर, %
या तो फ़ाइल या फ़ाइल नाम की सामग्री का मतलब होगा। बाहर खोलते समय, यह वर्तमान निर्देशिका के सापेक्ष फ़ाइल पथ का प्रतिनिधित्व करता है। कमांड ' %:p
' पूर्ण पथ फ़ाइल नाम संशोधक को जोड़ देगा %
।
कुछ अन्य दिलचस्प फ़ाइल नाम संशोधक हैं:
:~
: घर निर्देशिका के सापेक्ष फ़ाइल पथ प्राप्त करें (यह किसी कारण से मेरे लिए काम नहीं करता है):.
: वर्तमान निर्देशिका के सापेक्ष फ़ाइल पथ प्राप्त करें ( %
डिफ़ॉल्ट):r
: फ़ाइल का नाम रूट। एक्सटेंशन के बिना फ़ाइल का नाम।:e
: फ़ाइल का विस्तार।:h
: विभाजित करें /
और बाएं आधे को लौटाएं (यानी अगर मैं किसी पथ को फ़ाइल में संपादित कर रहा हूं /tmp/test.txt
और चलाऊंगा %:p:h
तो वापस आ जाएगा/tmp
:t
: विभाजन करें /
और दाएं आधे पर लौटें (यानी अगर मैं किसी पथ में फ़ाइल संपादित कर रहा हूं /tmp/test.txt
और चलाऊंगा %:p:t
तो वापस आ जाएगाtext.txt
एक के साथ वर्तमान कार्य निर्देशिका देख सकते हैं :pwd
। बेशक, यह केवल निर्देशिका है, और फ़ाइल नाम नहीं है। कार्य निर्देशिका और फ़ाइल नाम प्राप्त करने के लिए, हम विशेष रजिस्टर का उपयोग कर सकते हैं %
, जिसमें वर्तमान फ़ाइल के बारे में जानकारी है।
यदि आप उपयोग करते हैं :echo @%
, तो आपको वर्तमान फ़ाइल की निर्देशिका और फ़ाइल नाम मिलेगा।
यदि आप उपयोग करते हैं :echo expand('%:p')
, तो आपको वर्तमान फ़ाइल का पूर्ण पथ और फ़ाइल नाम मिलेगा। यह चार्ल्सएल के उत्तर के समान है ।
मैं इस एक याद है, हालांकि, क्योंकि अगर आप vim की मदद का उपयोग करें :h expand
, तो यह कहा गया है कि %
और %:p
और उनके रिश्तेदारों।
मैं उपयोग करता हूं:
:f[ile]
वह है :f
या :file
।
मुझे आश्चर्य है कि किसी ने जवाब में इसका उल्लेख नहीं किया, क्या मुझे कुछ याद आ रहा है?
सभी फ़ाइलों के लिए पूर्ण पथ दिखाने के लिए, जिसमें हल किए गए सिमलिंक भी शामिल हैं, निम्नलिखित का उपयोग करें।
:echo resolve(expand('%:p'))
बेहतर उत्तर हैं, लेकिन यदि (किसी कारण से) आप फ़ाइल का पूर्ण पथ प्राप्त करने के लिए शेल का उपयोग करना चाहते हैं (यह अधिक उपयोगी है यदि आप शेल के साथ फ़ाइल पर कुछ अन्य ऑपरेशन करने जा रहे हैं), यूनिक्स जैसी प्रणाली पर आप चला सकते हैं:
:!realpath %
या:
:'<,'>!realpath %
वर्तमान चयन पर दस्तावेज़ में पथ सम्मिलित करने के लिए।
रजिस्टर में %
हमेशा फ़ाइल का नाम होता है। एक realworld उदाहरण हो सकता है यदि आप एक कॉन्फ़िग फ़ाइल को संपादित कर रहे हैं, लेकिन आपके पास लिखने की अनुमति नहीं है (और रूट के रूप में ओटी रन नहीं चाहते हैं), तो आप फ़ाइल को संपादित कर सकते हैं, फिर चलाएं:
:w ! sudo tee %
फ़ाइल को बचाने के लिए (वहां एक छोटा सा ऑफटॉपिक, लेकिन यह %
रजिस्टर के साथ और क्या किया जा सकता है इसका एक अच्छा उदाहरण है )।
realpath
POSIX नहीं है, इसलिए ऐसा करना सरल हो सकता है:!echo "$PWD/%"
आपको देखने के लिए अपनी स्थिति रेखा सेट करने की आवश्यकता है और इसे पथ पर भी सेट करना है। मैंने स्थायी रूप से अपने ~ / .vimrc के नीचे दो पंक्तियों को जोड़कर किया
set laststatus=2
set statusline+=%F
अगर आप बस एक बार उसे चलाना चाहते हैं। फिर जब डॉक्यूमेंट टाइप करें
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
मैं उस और कुछ अच्छी सुविधाओं के लिए विम एयरलाइन का उपयोग करता हूं :
आप शीर्षक बार में आपके द्वारा संपादित की जा रही फ़ाइल का पूरा पथ दिखा सकते हैं, जो कि मेरी राय में फ़ाइल पथ दिखाने का एक सुविधाजनक तरीका है।
ऐसा करने के लिए है, तो आप स्थापित करने की आवश्यकता title
विकल्प और titlestring
। वर्तमान में मैं निम्नलिखित सेटिंग्स का उपयोग कर रहा हूं:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
यह विम का होस्टनाम दिखाएगा, फिर फ़ाइल का पूरा पथ और उसके बाद फ़ाइल का अंतिम संशोधित समय। डेमो के लिए नीचे दिया गया आंकड़ा देखें
Ctrl+G
'विम के सीडब्ल्यूडी के सापेक्ष पथ' अधिक पसंद नहीं है ?