Vim में डिस्क से बफर की सभी फाइलों को रिफ्रेश करें


124

डिस्क पर संस्करण से किसी फ़ाइल को ताज़ा करने की कमांड है :e!

मैं बफर में सभी फ़ाइलों के लिए समान कैसे कर सकता हूं?

पृष्ठभूमि: मुझे इसकी आवश्यकता है क्योंकि मैं एक शाखा के साथ कई शाखाओं के साथ git का उपयोग कर रहा हूं जिसमें एक बफर खुला है। जब मैं एक शाखा की जांच करता हूं, तो मैं विम रिफ्रेश होना चाहता हूं।

जवाबों:


87

के लिए प्रलेखन पढ़ें bufdo, यह वही करना चाहिए जो आप चाहते हैं।


33
ठीक है महान,: ई बफ़्डो! वह करेगा। लेकिन हर बार एक शीघ्र लोड (Y / N) होता है। मुझे इससे कैसे छुटकारा मिल सकता है?
ओडवैल

21
कमांड set noconfirmका उपयोग करने से पहले उपयोग करें bufdo( set confirmबाद में पुन: प्रयोज्य करने के लिए)।
पीएमएफ

22
bufdo eउत्सुकता से सभी बफ़र्स को अन-सिंटैक्स-हाइलाइट किया गया
स्टीवन लू

4
@StevenLu नीचे दिए गए पॉलफेनी के जवाब की जाँच करें।
DBedrenko

12
लोग इसे क्यों वोट कर रहे हैं? यह न केवल एक उत्तर है, लेकिन यह जिस दिशा की ओर जाता है, उसका मतलब है कि आपका सिंटैक्स हाइलाइटिंग पुनः लोड होने के बाद अक्षम हो जाता है।
दिमित्री मिंकोवस्की

120

:checkt[ime]आदेश यह बहुत ही उद्देश्य के लिए बनाया गया है।

यह आपको बदले हुए किसी भी बफ़र्स को फिर से लोड करने के लिए प्रेरित करेगा; यदि आप शीघ्र छोड़ना चाहते हैं, तो आप :set autoreadपहले से कर सकते हैं (आप अभी भी स्थानीय सहेजे गए परिवर्तनों के साथ बफ़र्स पर एक संकेत प्राप्त करेंगे)।

यह स्वीकृत उत्तर पर स्टीवन लू द्वारा उल्लिखित वाक्यविन्यास हाइलाइटिंग मुद्दे से भी बचता है; :bufdoडिजाइन द्वारा हाइलाइटिंग सिंटैक्स बंद करता है

के माध्यम से मिला: http://vim.1045645.n5.nabble.com/Bug-report-bufdo-e-breaking-syntax-highlighting-on-displayed-buffers-tn1209995p1209998.html


19

यहाँ मैंने अपने .vimrc में डाल दिया है:

fun! PullAndRefresh()
  set noconfirm
  !git pull
  bufdo e!
  set confirm
endfun

nmap <leader>gr call PullAndRefresh()

7

से :help autoread:

जब किसी फ़ाइल को विम के बाहर बदल दिया गया है और उसे विम के अंदर नहीं बदला गया है, तो स्वचालित रूप से उसे फिर से पढ़ें। जब फ़ाइल को हटा दिया गया है तो ऐसा नहीं किया जाता है।

अगर, मेरी तरह, आप हमेशा निष्क्रिय रहना चाहते हैं बासी-लेकिन-अनमॉडिफाइड बफ़र्स को फिर लोड , तो ऐसा लगता है कि इसे काम करना चाहिए।

हालांकि अंतिम विवरण है जब विम बासी बफर को नोटिस करता है। के साथ मजबूर किया जा सकता है checktime। यदि आपके पास फ़ोकस ईवेंट सेट अप हैं , तो हम checktimeजब भी फ़ोकस प्राप्त कर सकते हैं, तो हम चला सकते हैं :

set autoread
autocmd FocusGained * checktime

इस जवाब में कुछ दिलचस्प विवरण भी हैं।


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