विम में, मुझे उसी लाइन नंबर पर खोलने के लिए एक फ़ाइल कैसे मिलती है जिसे मैंने पिछली बार बंद किया था?


141

मैं उसी जगह पर एक फ़ाइल खोलने के लिए vim को कॉन्फ़िगर करना चाहता हूं जिस पर मैंने छोड़ा था।

vim 

: '' अपोस्ट्रोही ने दोहरे उद्धरणों के बाद आपको अंतिम परिवर्तन रेखा पर पुनः निर्देशित किया
धीरेन हमाल

जवाबों:


195

उबंटू की /etc/vim/vimrcफ़ाइल से, इस उदाहरण पर टिप्पणी की गई है:

" Uncomment the following to have Vim jump to the last position when                                                       
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal! g'\"" | endif
endif

यदि यह काम नहीं करता है, तो एक आम समस्या आपकी ~/.viminfoफ़ाइल के स्वामित्व में नहीं है । अगर ऐसा है, तो दौड़ें:

sudo chown user:group ~/.viminfo

जहां उपयोगकर्ता आपका है usernameऔर groupअक्सर आपके उपयोगकर्ता नाम के समान है।


9
ऑटोकैम सीधे विम डॉक से बाहर आता है। देखें: अंतिम स्थिति-कूद में मदद करें
user55400

19
यदि एक पंक्ति में एक पंक्ति को एक बैकटिक में बदल दिया जाता है, तो यह वास्तविक कर्सर स्थिति में कूद जाएगा, न कि केवल उस पंक्ति की शुरुआत:\| exe "normal! g`\"" | endif
u2622

4
chownहिस्सा मेरे लिए समस्या तय। सलाम!
धीमी गति से

2
अंत में कोई इंगित करता है कि मेरे .viminfo किसी कारण से जड़ के स्वामित्व में है! यह मेरे द्वारा पढ़े जाने वाले अन्य 100 दस्तावेज़ों में होना चाहिए।
जैक

2
बस chown user ~/.viminfoइसके अलावा +1 करना चाहते हैं । मैं एक घंटे के लिए यह पता लगाने की कोशिश कर रहा हूं और आपने अभी-अभी अपना दिन बचाया है।
क्रिस्टोफर रीड

48

यदि आप सादगी के लिए ट्रेडिंग ऑटोमेशन का बुरा नहीं मानते हैं, तो बस '"एक फ़ाइल खोलने पर कीस्ट्रोक (एपोस्ट्रोफ़, उसके बाद डबल कोट्स) को दबाएं , आप जहाँ थे वहीं कूद जाएँगे। यह अनिवार्य रूप से @ marcog का जवाब क्या कर रहा है।


24
  :h views-sessions

आप इसे अपने .vimrc में रख सकते हैं :

  au BufWinLeave * mkview
  au BufWinEnter * silent loadview

विचारों को $ HOME / .vim / view में रखा जाएगा। आपको शायद इन निर्देशिकाओं को बनाने की आवश्यकता है।


मुझे यह उत्तर पसंद है क्योंकि अन्य ने एक / etc / vim / फ़ाइल का उल्लेख किया है जो मेरे मैक पर मौजूद नहीं था।
MarkHu

15

आप का उपयोग कर एक फ़ाइल नाम निर्दिष्ट किए बिना विम शुरू कर सकते हैं

vim 

आपके द्वारा काम की गई किसी भी फ़ाइल के अंतिम स्थान पर जाने के लिए अगली बार CTRL + O दबाएं।


यदि आपके पास NERDTree स्थापित है, तो सह को दो बार दबाने से NERDTree वर्तमान बफर में खुल सकता है। मेरे मामले में, मुझे कभी-कभी सह को पांच बार दबाने की आवश्यकता होती है, लेकिन अंततः मुझे @MatAff द्वारा वर्णित प्रभाव मिलता है।
आश्र्वासुन

Ctrl-cएक बार दबा देना मेरे लिए काफी है। इसके अलावा, Ctrl-cअधिक दबाने से मुझे कर्सर स्थिति हिस्ट्रो में वापस ले जाता है (यहां तक ​​कि प्रासंगिक अनोपेड फाइलें खोल रहा है)। मैं Neovim 0.4.2 का उपयोग करता हूं, लेकिन मेरी समझ यह है कि यह भी लागू होता है vim
T_T

7

यदि आपने viminfo को सक्षम किया है, तो `0अंतिम रूप से संपादित फ़ाइल स्थिति में जाना उतना ही सरल है । आप देखेंगे कि यह केवल एक 'मार्क टू मार्क' कमांड है;

वास्तव में, आप बाद में तीसरे पिछले संपादित स्थान (शायद किसी अन्य फ़ाइल में) में जाने के लिए 3 कर सकते हैं, और फिर पिछले एक के साथ `0फिर से वापस आ सकते हैं

अच्छी तरह से देखिए

 :marks

याद स्थानों को देखने के लिए। यह भी ध्यान दें कि viminfo सभी प्रकार के अन्य सामान (जैसे रजिस्टर की सामग्री, प्रति फ़ाइल निशान, कमांड और खोज इतिहास) को संग्रहीत करता है। अधिकांश लोगों ने इसे स्पष्ट कारणों के लिए सक्षम किया है


`0 मैक पर विम संस्करण 7.4.1689 पर मेरे लिए काम नहीं करता है। लेकिन '0 चाल है। क्या यह उत्तर में एक टाइपो है?
अलमूट

@alamoot नहीं यह नहीं है, vimdoc motion.txt देखें - चेक करें कि आपकी `कुंजी वास्तव में किस वर्ण से उत्पन्न होती है, या करें:verbose map `
sehe

तुम सही हो। विमडोक के अनुसार दोनों सही हैं!
अलमूट

6

Vim-lastplace (मैं लेखक हूँ) नामक एक प्लगइन है जो आपकी फ़ाइलों को खोलेगा जहाँ आपने छोड़ा था। यह उपर्युक्त सुझावों पर प्रतिबद्ध संदेशों की अनदेखी करके सुधार करता है क्योंकि आप आमतौर पर एक नया संदेश संपादित कर रहे हैं और प्रतिबद्ध संदेश फ़ाइल के शीर्ष पर शुरू करना चाहते हैं।


आप सभी प्लगइन्स के बिना कर सकते हैं सबसे अच्छा है। .vimrc के लिए लक्ष्य: छोटा कोड हल्का और तेज
nilon

1

कभी ~/.viminfo- कभी केवल-पढ़ने के लिए या आपके उपयोगकर्ता के पास फ़ाइल तक पहुंच नहीं होती है। यह भी एक कारण हो सकता है कि जब आप अपनी फ़ाइल बंद करते हैं तो विम आपकी कर्सर स्थिति को संग्रहीत नहीं करता है।

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