विन 7 के तहत विम मेरी शिफ्टविड्थ सेटिंग को उस चीज़ पर बदल देता है जिसे मैं केवल .sml फ़ाइलों के लिए नहीं चाहता हूं।विम .sml फ़ाइलों के लिए shiftwidth बदलता है
जो कुछ मैं चाहता हूं वह सब कुछ केवल रिक्त स्थान के साथ इंडेंट किया जाए, और सबकुछ हमेशा 4 रिक्त स्थान हो।
set nocompatible
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set guifont=Consolas:h9:cANSI
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
filetype plugin indent on
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
जब मैं पहली बार लोड नहीं फाइल के साथ विम शुरू, :set shiftwidth
रिटर्न shiftwidth=4
: हालांकि मैं कई रूपों की कोशिश की है यह, मेरे वर्तमान _vimrc फ़ाइल की सामग्री है। जब मैं एक .py या .php फ़ाइल खोलता हूं, तो यह अभी भी shiftwidth=4
देता है। लेकिन जब मैं एक .sml फ़ाइल खोलता हूं या बस .sml एक्सटेंशन के साथ रिक्त फ़ाइल को सहेजता हूं, तो यह shiftwidth=2
में बदल जाता है। उस सत्र के लिए :set shiftwidth=2
मैन्युअल रूप से सेट करना, लेकिन जब भी मैं एक .sml फ़ाइल खोलता हूं तो मुझे इसे करना होगा।
यह केवल खुली .sml फ़ाइल वाले बफर को प्रभावित करता है। बिना सहेजे गए बफर या किसी अन्य फ़ाइल प्रकार वाले एक ही समय में shiftwidth = 4 दिखाएं।
मैं पहले फ़ाइल टाइप प्लगइन इंडेंट चीज़ का उपयोग नहीं कर रहा था, लेकिन कुछ खोज के बाद ऐसा लगता था कि समस्या हो सकती है। मेरी ftplugin फ़ोल्डर में कोई फ़ाइल नहीं थी, इसलिए मैं अपने _vimrc, बनाया sml.vim को filetype plugin indent on
जोड़ा गया है और (फिर ftplugin फ़ोल्डर में रख दें, कई रूपों कोशिश कर:
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
मैं जानता हूँ कि sml.vim किया जा रहा है पढ़ा क्योंकि मैं पहली बार में यह में त्रुटियों रखा, और वे पकड़े गए थे।
अगर यह प्रासंगिक है, लेकिन मेरी indent.vim में .sml के बारे में कुछ भी नहीं है, और मेरे मांगपत्र फ़ोल्डर रिक्त है सुनिश्चित नहीं हैं।
फिर भी जब भी मैं एक .sml फ़ाइल लोड करता हूं तो विम अभी भी shiftwidth = 2 सेट करता है। मैं जानना चाहता हूं कि क्यों।
अपडेट: इंडेंट फ़ोल्डर जो मैंने कहा था खाली था vim \ vimfiles \ indent था। उत्तर और टिप्पणियों के बाद मैंने sml.vim की खोज की और एक और इंडेंट फ़ोल्डर, vim \ vim73 \ indent मिला। मैंने sml.vim संपादित किया और shiftwidth = 2 को shiftwidth = 4 में बदल दिया और समस्या हल हो गई।
एक .sml फ़ाइल और रन 'लोड: क्रिया सेट sw' - यह आपको बता जाएगा जहां यह पिछले था सेट। – sidyll