2013-10-15 2 views
7

के विंडोज संस्करण के लिए डिफ़ॉल्ट vimrc फ़ाइल का स्पष्टीकरण मैंने अभी विंडोज़ के लिए vim7.4 डाउनलोड किया है और मैं जानना चाहूंगा कि इसके साथ आने वाली डिफ़ॉल्ट vimrc फ़ाइल क्या कर रही है। प्रत्येक आइटम का बस एक संक्षिप्त स्पष्टीकरण जानना अच्छा लगेगा। यहां यह है।विम

set nocompatible 
source $VIMRUNTIME/vimrc_example.vim 
source $VIMRUNTIME/mswin.vim 
behave mswin 

set diffexpr=MyDiff() 
function MyDiff() 
    let opt = '-a --binary ' 
    if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif 
    if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif 
    let arg1 = v:fname_in 
    if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif 
    let arg2 = v:fname_new 
    if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif 
    let arg3 = v:fname_out 
    if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif 
    let eq = '' 
    if $VIMRUNTIME =~ ' ' 
    if &sh =~ '\<cmd' 
     let cmd = '""' . $VIMRUNTIME . '\diff"' 
     let eq = '"' 
    else 
     let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' 
    endif 
    else 
    let cmd = $VIMRUNTIME . '\diff' 
    endif 
    silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq 
endfunction 

उत्तर

15
set nocompatible 

डिफ़ॉल्ट रूप से, विम अपने पूर्वज vi तरह बर्ताव करता है। यह वास्तव में त्वरित संपादन के लिए कोई समस्या नहीं है लेकिन यदि आप इसे 10 मिनट से अधिक समय तक उपयोग करना चाहते हैं तो यह गंभीरता से बेकार हो जाता है। set nocompatible विम की तरह Vim की तरह अधिक Vim बनाता है।

:help nocompatible देखें।

source $VIMRUNTIME/vimrc_example.vim 
source $VIMRUNTIME/mswin.vim 

स्रोत उन दो फ़ाइलें। vimrc_example.vim में उदाहरण सेटिंग्स शामिल हैं। इसे देखने के लिए एक अच्छा विचार हो सकता है: इसमें आपके लिए उपयोगी चीजें हो सकती हैं।

behave mswin 

mswin.vim सेटिंग्स और विम काम और अधिक या कम करने के लिए एक खास तरह के विंडोज संपादक की तरह, <C-v> तरह चस्पा करने के लिए डिज़ाइन किया गया मैपिंग का एक समूह होता है। यह आदेश बेवकूफ व्यवहार "सक्रिय" करता है।

set diffexpr=MyDiff() 
function MyDiff() 
    let opt = '-a --binary ' 
    if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif 
    if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif 
    let arg1 = v:fname_in 
    if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif 
    let arg2 = v:fname_new 
    if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif 
    let arg3 = v:fname_out 
    if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif 
    let eq = '' 
    if $VIMRUNTIME =~ ' ' 
    if &sh =~ '\<cmd' 
     let cmd = '""' . $VIMRUNTIME . '\diff"' 
     let eq = '"' 
    else 
     let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' 
    endif 
    else 
    let cmd = $VIMRUNTIME . '\diff' 
    endif 
    silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq 
endfunction 

यह एक समारोह है कि विम के व्यवहार को परिभाषित करता है जब दो या अधिक बफ़र्स diffing के लिए इस्तेमाल किया है। यह मेरे लिए किसी और चीज़ की तुलना में हैक की तरह दिखता है। ऐसा लगता है कि आपका विंडोज वातावरण अलग-अलग करने में सक्षम है या नहीं, और यदि नहीं, तो बिल्टिन diff का उपयोग करें।

आप का उपयोग/विम गंभीरता से जानने के लिए करना चाहते हैं, इनमे से कोई भी अपने $HOME\_vimrc में जाना चाहिए। nocompatible के बाद से पहली पंक्ति भी आपके लिए सेट नहीं है यदि विम को $HOME\_vimrc मिलती है।

मैं विंडोज़ से वास्तव में परिचित नहीं हूं इसलिए diff भाग उपयोगी हो सकता है लेकिन आप बाकी को सुरक्षित रूप से छोड़ सकते हैं।

जब आप एक set something देखते हैं, :help 'something करना (एकल उद्धरण के साथ)।

+0

महान जवाब, धन्यवाद – Hoto

1

आपने इसे समझ लिया होगा, लेकिन अगर आप vimrc_example.vim स्रोत को हटाते हैं तो एक चीज आप जोड़ना चाह सकते हैं syntax on है। इसके बिना, colorscheme पर ध्यान दिए बिना पाठ gvim में रंगहीन होगा।