2010-02-12 8 views
8

फाइलों के शीर्ष पर लाइसेंस ब्लॉक छुपाने के लिए फ़ोल्ड्स या कुछ अन्य विम-स्क्रिप्ट ब्लैक जादू का उपयोग करने का कोई तरीका है? मुझे यह पसंद नहीं है कि वे मेरे संपादन फलक का इतना बड़ा हिस्सा लेते हैं; बॉयलरप्लेट के चेहरे से भरे होने के बजाय, जब मैं इसे पहली बार खोलता हूं, तो मुझे यह समझना अच्छा लगता है कि फ़ाइल क्या कर रही है।क्या मेरे पास विम फ़ाइल के शीर्ष पर एक लाइसेंस ब्लॉक को अनदेखा कर सकता है?

+0

पाठ आप अनदेखा करना चाहते का स्वरूप क्या है साफ? –

उत्तर

4

एक autocommand में यह कोशिश करो।

function! FoldCopyright 
    if !exists("b:foldedCopyright") 
    let b:foldedCopyright = 1 
    1,15fold 
    endif 
endfunction 

लाइन 4 पर उचित रूप से समायोजित करें।

1,/Beginning of copyright/;/End of copyright/ 
+2

मैं गुना कमांड के सामने 'चुप!' का उपयोग करने की सिफारिश करता हूं ताकि अगर लाइसेंस ब्लॉक मौजूद न हो, तो विम शिकायत नहीं करता है। – ereOn

0

उन्हें हटाने के बारे में कैसे? गंभीरता से।

स्रोत कोड अधिकार स्वामित्व और लाइसेंसिंग द्वारा संरक्षित है, बॉयलरप्लेट नहीं। कम से कम ज्यादातर मामलों में यह होने की आवश्यकता नहीं है।

जीपीएल और अन्य समान योजनाओं के मामले में जो प्रभावी रूप से टेक्स्ट की आवश्यकता होती है, इसे फ़ाइल के नीचे या जो कुछ भी स्थानांतरित किया जा सकता है।

+0

और क्या होगा यदि कोई व्यक्ति प्रासंगिक लाइसेंस जानकारी ** पहले ** पढ़ना चाहता है? विम इसे स्वचालित रूप से और आसानी से फोल्ड करने के लिए पर्याप्त शक्तिशाली है, इसलिए यह कोई बड़ा सौदा नहीं है ... – ereOn

2

यह इस बात पर निर्भर करता है कि लाइसेंस ब्लॉक के लिए एक सतत रूप है या आप किस भाषा में प्रोग्रामिंग कर रहे हैं। उदाहरण के लिए, पायथन फोल्डिंग को परिभाषित करने के लिए 'foldexpr' का उपयोग करता है, इसलिए इसे जोड़ने के लिए आपको इसे बदलना होगा एक नया एक मौजूदा कार्य (या मौजूदा तह से छुटकारा पाएं)। मेरा मानना ​​है कि सी में डिफ़ॉल्ट मैन्युअल फोल्डिंग का उपयोग करना है (हालांकि यह संभव है कि मैंने इसे स्वयं इस तरह कॉन्फ़िगर किया: मुझे याद नहीं है), इसलिए अतिरिक्त फोल्डिंग जोड़ने के लिए यह बहुत आसान है।

इस पोस्ट के अंत में एक जैसे सामान्य जीपीएल कॉपीराइट संदेश के साथ, आप मैन्युअल रूप से foldmethod सेट कर सकते हैं और एक साधारण फ़ंक्शन है जो एक गुना बनाता है। यह सब कॉपीराइट के रूप पर निर्भर करता है और मौजूदा फोल्डिंग को बनाए रखने के लिए आपके लिए कितना महत्वपूर्ण है। मुझे डर है कि मुझे एक और उपयोगी उत्तर देने के लिए थोड़ा और विस्तार की आवश्यकता होगी। वैसे भी, यहाँ एक उदाहरण स्क्रिप्ट है कि इस पोस्ट के अंत में कॉपीराइट नोटिस गुना करने के लिए इस्तेमाल किया जा सकता है:

function! CreateCopyrightFold() 
    let InCopyright = 0 
    set foldmethod=manual 
    for Line in range(1,line('$')) 
     let LineContents = getline(Line) 
     if LineContents !~ "^#" 
      if InCopyright 
       let CopyrightEnd = Line - 1 
       exe CopyrightStart . ',' . CopyrightEnd . 'fold' 
      endif 
      break 
     elseif LineContents =~ "Copyright" 
      let InCopyright = 1 
      let CopyrightStart = Line 
     endif 
    endfor 
endfunction 
au BufRead *.py call CreateCopyrightFold() 

इस तरह एक कॉपीराइट नोटिस मान लिया जाये:

# Copyright (C) 2009 Some Company or Something 
# 
# This program is free software; you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published by 
# the Free Software Foundation; either version 2 of the License, or 
# (at your option) any later version. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with this program; if not, write to the Free Software 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 

import sys 
# Code continues... 
2

मैं इस के लिए एक छोटा सा vim प्लगइन बनाया: सबसे खराब स्थिति जहां कॉपीराइट विभिन्न स्थानों में शुरू होता है और एक चर लंबाई इस पैटर्न क्या करना चाहिए है। यह विभाजित करता है जब पृष्ठ की पहली टिप्पणी को फोल्ड किया जाना चाहिए। यह मेरे परीक्षण मामलों पर काम करता था, लेकिन, निश्चित रूप से, किसी भी सुधार का स्वागत है। अन्य एकल या एकाधिक लाइन पहचानकर्ताओं को जोड़ना आसान होना चाहिए।

इसे here प्राप्त करें। किसी भी अन्य प्लगइन की तरह स्थापित करने के लिए, बस इसे अपने ~/.vim/प्लगइन में छोड़ दें।

संपादित करें: vim.org के लिए लिंक बदल दिया और जवाब

+0

आप इस vim.org को एक स्क्रिप्ट के रूप में क्यों सबमिट नहीं करते? –

+0

अच्छा सवाल। बहुत उपयोगी नहीं लगता है। – fotanus

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