2010-11-29 8 views
9
है

यह सेटअप विम करना संभव है इतना है कि यह केवल दिखाएगा:विम: केवल दिखाने के "फ़ाइल बदल दिया गया है" चेतावनी यदि सामग्री विभिन्न

WARNING: The file has been changed since reading it!!! 

तो फ़ाइल वास्तव में अलग बस नहीं जब है, टाइमस्टैम्प बदलता है?

उदाहरण के लिए, मैं अक्सर एक फ़ाइल के पुराने संस्करण (उदाहरण के लिए, इसके खिलाफ परीक्षण सूट चलाने के लिए) वापस रोल करता हूं, वर्तमान संस्करण पर वापस लौटाता हूं और fg फिर से विम ... लेकिन मुझे अभी भी "फ़ाइल बदल गई है" चेतावनी मिलती है क्योंकि, सामग्री समान है, फिर भी टाइमस्टैम्प बदल गया है।

+3

क्या आपके पास 'autoread' विकल्प सेट है? –

+2

नहीं ... मुझे उन विकल्पों को पसंद नहीं है क्योंकि इसका मतलब है कि मैंने चेतावनी दिए बिना अपना पूर्ववत इतिहास खोला: http://stackoverflow.com/questions/2003020/vim-maintain-the-history-of-a-file-after- यह बदल गया है और पुनः लोड किया गया है (हालांकि ... ओह ... ऐसा लगता है कि यह 7.3 में तय किया गया था: डी) –

उत्तर

5

आप vim पर कोशिश करते हैं 7,3

:help timestamp

यह कहा जाता है
When Vim notices the timestamp of a file has changed, and the file is being edited in a buffer but has not changed, Vim checks if the contents of the file is equal. This is done by reading the file again (into a hidden buffer, which is immediately deleted again) and comparing the text. If the text is equal, you will get no warning.

तो मुझे लगता है कि यह है कि आपके मामले में, कुछ फ़ाइल टाइमस्टैम्प के अलावा अन्य बदल गया है (या नहीं है विम में एक बग)।

मेरे मामले में, जब मैं फाइलों की जांच करता हूं तो मुझे अक्सर यह संदेश मिलता है: वे "केवल पढ़ने के लिए" से "पढ़ने के लिए" में बदल जाते हैं, भले ही उनकी सामग्री बदली न हो।

तो मुझे लगता है कि यदि फ़ाइल के गुण प्रभावित होते हैं, तो सामग्री को समान होने पर भी "बदला" माना जाता है।

+0

कूल, धन्यवाद। मुझे लगता है कि यह Vim73 को अपडेट करने का समय है ... –

संबंधित मुद्दे