संपादन करते समय किए गए बाहरी परिवर्तनों में विलय करें


10

यदि विम में संपादित की जा रही फ़ाइल में बाहरी परिवर्तन किए गए हैं, तो मैं समझता हूं कि मैं फ़ाइल की सामग्री को फिर से लोड कर सकता हूं :edit। लेकिन, मान लें कि (आंतरिक रूप से) मैंने उस फ़ाइल में परिवर्तन किया है जिसे मैं संरक्षित करना चाहता हूं। क्या परिवर्तन (बाहरी और आंतरिक) के दो सेटों को एकीकृत करने का एक तरीका है? मैं जो समझ रहा हूं, उससे :editबस बाहरी बदलाव आता है।


3
पढ़ना है :h autoread? कि तुम क्या देख रहे हो?
statox

2
:autoreadबाहरी परिवर्तनों में पढ़ता है, लेकिन उस घटना में जो फ़ाइल में स्वचालित रूप से पढ़ी जा रही है, उसमें परिवर्तन किया जाता है, विम मुझे सूचित करेगा कि मैंने अपने आंतरिक संपादन किए जाने के बाद से फ़ाइल में बाहरी परिवर्तन किए हैं। मैं आंतरिक परिवर्तनों के साथ बाहरी परिवर्तनों को मर्ज करने का एक तरीका ढूंढ रहा हूं।
fuzzybear3965

5
क्या आप ढूंढ रहे हैं :h :DiffOrig?
क्रिश्चियन ब्रेबेंड

@ChristianBrabandt, यह कभी भी बहुत देर से सही नहीं है? यह बहुत अच्छा जवाब था। मुझे नहीं पता था कि यह अस्तित्व में है।
फजीबीयर3965

जवाबों:


3

क्रिश्चियन ब्रेबांट की टिप्पणी पर विस्तार से , यहाँ DiffOrigआदेश का अपघटन है :

पूर्ण आदेश:

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
    \ | wincmd p | diffthis

अपघटन:

command DiffOrig        " create a new command named DiffOrig
vert new                " open a new buffer splitted vertically
| set bt=nofile         " set buffer type to scratch 
| r #                   " read the alternate buffer (opened file to diff)
| 0d_                   " delete the first line
| diffthis              " diff the current buffer
| wincmd p              " move cursor to opened file 
| diffthis              " diff the current buffer

एक वैकल्पिक संस्करण ++editपढ़ने के लिए विकल्प का उपयोग करता है , यह विकल्प मानों को रखता है जैसे कि कोई फ़ाइल संपादित करना।

संदर्भ:

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