2009-02-23 18 views
13

मैं सोच रहा था कि पढ़ने के लिए विम प्राप्त करने का कोई तरीका है या नहीं। Gitignore फ़ाइलें और उन विकल्पों का निर्धारण करने के लिए उनका उपयोग करें जो स्वत: पूर्ण फ़ाइल नामों को प्रस्तुत नहीं करते हैं।क्या मैं अपने .gitignore फ़ाइलों का सम्मान कर सकता हूं?

उदाहरण के लिए, पायथन में काम करना, मैं संपादन के लिए पेशकश की गई .pyc फ़ाइलों को नहीं देखना चाहता। मुझे लगता है कि इसके लिए विम का अपना तंत्र है, मैं सोच रहा था कि इसमें .gitignore से जानकारी कैसे लोड करें।

उत्तर

21

@dwc द्वारा सुझाव दिया गया है, यहाँ एक vim स्क्रिप्ट है। यह आपकी .gitignore फ़ाइल को पढ़ेगा और इसे पार्स करेगा, इसके प्रारूप को wildignore के लिए उपयुक्त में परिवर्तित करेगा, और उसके बाद उस विकल्प को सेट करें।

सीमाएं:

  • इस निर्देशिका है जहाँ आप vim लांच से .gitignore फ़ाइल पढ़ा जाएगा। अन्य .gitignore फ़ाइलों को देखने और उन्हें पार्स करने के लिए कोई प्रयास नहीं किया गया है। वैकल्पिक रूप से, आप पहली पंक्ति पर फ़ाइल के लिए एक पूर्ण पथ निर्दिष्ट कर सकते हैं।
  • wildignore विम में विकल्प को अस्वीकार करने की धारणा का समर्थन नहीं करता है जैसे आप .gitignore फ़ाइल में देख सकते हैं। यही है, आप foo.html को छोड़कर सभी HTML फ़ाइलों को अनदेखा करने के लिए :set wildignore=*.html,!foo.html नहीं कह सकते हैं। इसलिए, .gitignore लाइनें जो शुरू होती हैं! बस अनदेखा कर रहे हैं।
+0

एफवाईआई, यहां vim.org पर कोड है: http: //www.vim।संगठन/स्क्रिप्ट/script.php? script_id = 2557 – Florian

+4

'wildignore =' सेट 'को सेट करें' wildignore + = 'सेट करें। इस तरह आपकी पिछली अनदेखी सेटिंग्स ओवरराइट नहीं होती है। – silvenon

+0

आप रूट पथ के लिए यह काम कैसे करते हैं? ("/ Blah") – silvenon

18

विम फ़ाइल पैटर्न विकल्प wildignore में निर्दिष्ट पर ध्यान नहीं देगा, ताकि आप उन्हें इतना की तरह सेट कर सकते हैं:

:set wildignore=*.o,*~,*.pyc 

या (बिना ":") एक ही पंक्ति जगह अपने ~/.vimrc फ़ाइल में। यदि आपको वर्तमान निर्देशिका में .gitignore में समायोजित करने की तरह कुछ और गतिशीलता की आवश्यकता है तो आपको कुछ स्क्रिप्टिंग करने की आवश्यकता होगी, लेकिन मैं इसे किसी और के लिए अभ्यास के रूप में छोड़ दूंगा।

let filename = '.gitignore' 
if filereadable(filename) 
    let igstring = '' 
    for oline in readfile(filename) 
     let line = substitute(oline, '\s|\n|\r', '', "g") 
     if line =~ '^#' | con | endif 
     if line == '' | con | endif 
     if line =~ '^!' | con | endif 
     if line =~ '/$' | let igstring .= "," . line . "*" | con | endif 
     let igstring .= "," . line 
    endfor 
    let execstring = "set wildignore=".substitute(igstring, '^,', '', "g") 
    execute execstring 
endif 

कि स्रोत ले लो और अपने प्लगइन निर्देशिका में एक फाइल में रख, ~/.vim/plugin/gitignore.vim रूप में इस तरह:

+2

महान जवाब। नोट: आपके पास \ *। O \ * ~ और \ *। Pyc के बीच रिक्त स्थान नहीं हो सकते हैं, इसलिए यह होना चाहिए: ': wildignore = *। O, * ~, *। Pyc' सेट करें। चीयर्स –

2

मैं इस के लिए एक प्लगइन लिखा है: https://github.com/octref/RootIgnore

यह स्वचालित रूप से अपने wildignore को .gitignore पैटर्न जोड़ सकते हैं।
कुछ आसान विशेषताएं:

  • जब आप इस तरह एक उप निर्देशिका में कर रहे हैं,:
my_proj/ 
    .gitignore 
    .git/ 
    sub/ 

आप उप में सीडी, और वहाँ खुला विम, प्लगइन हो जाता है .gitignore को खोजने के लिए बार-बार इसे wildignore पर जोड़ें।

  • आप आसानी से ~/.gitignore नियम let g:RootIgnoreUseHome = 1 द्वारा जोड़ सकते हैं।
संबंधित मुद्दे

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