मैं विम में वर्तमान फ़ाइल का पथ स्थायी रूप से कैसे प्रदर्शित कर सकता हूं?


91

मुझे पता CTRLgहै कि आप जिस वर्तमान फ़ाइल पर काम कर रहे हैं उसे प्रदर्शित करता है। क्या मेरा .vimrcऐसा संशोधन करने का कोई तरीका है जो फ़ाइल नाम / पथ हमेशा प्रदर्शित होता है?

जवाबों:


129

अपनी स्थिति में, %Fपूर्ण पथ प्रदर्शित करने के लिए एक जोड़ें :

:help statusline

" Add full file path to your existing statusline
set statusline+=%F

ध्यान दें, %Fपूरा रास्ता होगा। कार्यशील निर्देशिका के सापेक्ष एक पथ प्राप्त करने के लिए, का उपयोग करें %f

यदि आपकी स्थिति पहले से ही दिखाई नहीं दे रही है, तो आपको सबसे पहले इसे हमेशा, दृश्यमान होने के लिए कॉन्फ़िगर करने की आवश्यकता हो सकती है laststatus=2

set laststatus=2

देखें :help laststatusकि विकल्पों का क्या मतलब है। आम तौर पर, जब तक कि कई बफ़र्स खुले नहीं होते, तब तक की स्थिति छिपी या छिपी हो सकती है, लेकिन मुझे इस तरह के अनुकूलन के साथ हर समय ऐसा करना बहुत उपयोगी लगता है, साथ ही इसके लिए एक स्क्रीन लाइन रिजर्व देने के लायक है।


1
मैं निश्चित रूप से आपके उत्तर को पसंद करता set statusline+=%Fहूं , लेकिन मेरा कहना ~/.vimrcयह नहीं है कि आपका क्या कहना है। हालाँकि डॉक्स निश्चित रूप से आपसे सहमत हैं ...
टिम पोटे

1
इसका कोई असर नहीं हुआ। माफी अगर Im कुछ सरल याद आ रही है, तो क्या आपके पास उस पर कोई विचार है?
झल्लारक

1
@TimPote संस्करण क्या है? मेरे लिये कार्य करता है। हो सकता है कि आपकी स्थिति पहले से ही इसे बंद कर रही हो या चौड़ाई को सीमित कर रही हो। बस के :set statusline=%Fबिना प्रयास करें+
माइकल बेर्कोव्स्की

@zallarak टिम को मेरी टिप्पणी देखें यदि आप बस करते हैं तो क्या आपकी स्थिति बदल जाती है :set statusline=%F? देखने के लिए दाईं ओर या बाएं तरफ देखें कि क्या फ़ाइल का नाम वहां की स्थिति में छिपा हुआ है
माइकल बेर्कोव्स्की

2
@TimPote शायद set laststatus=2हर समय स्टेटसलाइन को दृश्यमान रखे। मैं भूल गया था कि मैं उस पर था।
माइकल बेर्कोव्स्की

20

सेट ls = 2

इसे vimrc में जोड़ें, और आपको हमेशा नीचे फ़ाइल नाम दिखाई देगा।


सेट मॉडलिन ने मेरे लिए कुछ नहीं किया, यह क्या करना है? (सेट ls = 2 ने हालांकि कुछ किया है)। अगली बार मैं इसे कैसे पता लगाऊंगा? धन्यवाद! :)
चार्ली पार्कर

1
set modelineथोड़ा खतरनाक है और सवाल से कोई लेना-देना नहीं है। यह फ़ाइल के 5 आरंभ / समाप्ति लाइनों में Vim कमांड के निष्पादन की अनुमति देता है। इसे केवल उन लोगों द्वारा चालू किया जाना चाहिए जो जानते हैं कि क्यों और वास्तव में यह चाहते हैं। (Thats
Why

16

मुझे विम के साथ फ़ाइल संपादित करते समय गनोम-टर्मिनल के शीर्षक बार में फ़ाइल पथ प्रदर्शित करने के 2 तरीके मिले।

सरल (और बेहतर) तरीका: निम्न पंक्ति को अपने में जोड़ें ~/.vimrc:

set title

जो आपको सबसे ऊपर दिखाएगा:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

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


"सेट शीर्षक" टर्मिनल टैब पर फ़ाइल नाम दिखाएगा। दिलचस्प विशेषता।
दुलेसी

दिलचस्प यह है कि यह पूछे गए सवाल का जवाब नहीं देता है। इसके अलावा, आप कहते हैं कि यह बेहतर है - लेकिन यह नहीं हो सकता है। उदाहरण के लिए यदि आप टर्मिनल में खुले हैं जो पूर्ण स्क्रीन मोड में है, तो शीर्षक दिखाई नहीं दे रहा है। इस प्रकार नीचे की ओर।
अपरेंटिसडेव

8

एक ही रास्ता मैं फ़ाइल मैं में काम कर रहा हूँ का पूरा पथ पाने के लिए मिल गया है: :echo expand('%:p')। आप चाहें तो ctrl + g को दोबारा मैप कर सकते हैं, लेकिन मैं व्यक्तिगत रूप से मानकों से बहुत ज्यादा दूर हटना पसंद नहीं करता। मैंने F7 की तरह मैप किया है:

map  <F7> <Esc>:echo expand('%:p')<Return>

4
:help CTRL-G, और CTRL-Gगिनती के लिए नीचे दो पैराग्राफ देखें ।
स्टीफन माज्यूस्की

1
धन्यवाद, @StefanMajewsky 1 CTRL-Gपूरा फ़ाइल नाम दिखाता है। मैं इस विकल्प को खोज रहा था।
एंटोन केसेलेव

मैं यू टिम से प्यार करता हूं, यह पूरी तरह से निरपेक्ष मार्ग दिखाने का एकमात्र तरीका है, यहां तक ​​कि बिना ~
रिंचुंग

7

यदि आप विम-एयरलाइन का उपयोग कर रहे हैं , तो इसमें डालें .vimrc:

let g:airline_section_c = '%<%F%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#'

यह एयरलाइन डिफ़ॉल्ट का एक संशोधन है, जिससे बदल रहा %fहै %F


6

मैं हमेशा इस्तेमाल किया है :f, लेकिन @MichaelBerkowski से जवाब और लिंक अद्भुत हैं!

:f पथ, लाइन गणना, संशोधित स्थिति, वर्तमान कर्सर स्थिति, और बहुत कुछ दिखाता है ...

मैं इसके बारे में नहीं जानता था CTRLGलेकिन यह उसी के बारे में प्रतीत होता है।


5

मुझे लगता है कि स्टेटसलाइन बहुत शक्तिशाली और आसान है। बॉक्स के बाहर स्ट्रेट यह फ़ाइल नाम, कर्सर की स्थिति और कुछ झंडे प्रदर्शित करेगा। लेकिन आप मेरे जैसा ही करना चाहते हैं और फ़ाइल के लिए फ़ाइल का नाम पूर्ण पथ के साथ बदलें ।

इसलिए .vimrcमेरे स्टेटस को संपादित करते समय कुछ इस तरह से डिफ़ॉल्ट रूप में देख सकते हैं:

.vimrc                                                        26,16           7%

आप के साथ स्थिती की अपनी सेटिंग देख सकते हैं:

:set statusline?

लेकिन अगर आपने कोई परिवर्तन नहीं किया है और कोई मॉड्यूल नहीं बदला है तो यह खाली होगा। लेकिन मदद-अनुभाग ( :help statusline) में उदाहरणों से आप पा सकते हैं कि डिफ़ॉल्ट है:

:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

इसलिए इसे अपने में शामिल करें .vimrcऔर इसमें बदलाव %fकरें %F। मैंने %yअपनी स्टेटसलाइन में फ़िलाटाइप फ़्लैग ( ) भी जोड़ा क्योंकि मुझे यह सुविधाजनक लगता है। तो मेरा परिणामी विन्यास इस तरह दिखता है:

:set statusline=%<%F\ %h%m%r%y%=%-14.(%l,%c%V%)\ %P

और परिणाम कुछ इस तरह दिखाई देगा:

~/.vimrc [vim]                                                26,16           7%

अच्छा पठन:

पुनश्च। मैं 7.3.३ चलाती हूं


4

यदि आप चाहते हैं कि हल किए गए सीमलिंक शामिल हों, तो निम्न का उपयोग करें:

set statusline +=%{resolve(expand('%:p'))}\ %*

अपने घर निर्देशिका के लिए '~' संक्षिप्त नाम रखने के लिए, शामिल करें fnamemodify

set statusline +=%{fnamemodify(resolve(expand('%:p')),':~')}\ %*

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