هل يمكنني الحصول على VIM كتلة ترخيص في الجزء العلوي من الملف؟
-
20-09-2019 - |
سؤال
هل هناك طريقة لاستخدام طيات أو بعض السحر الأسود VIM-Script غيرها لإخفاء كتل الترخيص في الجزء العلوي من الملفات؟ لا أحب أن يأخذون هذا القسم الكبير من جزء التحرير؛ أحب أن أحصل على معنى ما يفعله الملف عندما أقوم به أولا، بدلا من وجه مليء بالتراجع.
المحلول
جرب هذا في أوتوكلاند.
function! FoldCopyright
if !exists( "b:foldedCopyright" )
let b:foldedCopyright = 1
1,15fold
endif
endfunction
اضبط النطاق على السطر 4 بشكل مناسب. في أسوأ الحالات حيث تبدأ حقوق الطبع والنشر في أماكن مختلفة وهي بطول متغير يجب أن يفعله هذا النمط:
1,/Beginning of copyright/;/End of copyright/
نصائح أخرى
يعتمد ذلك على ما إذا كان هناك نموذج متسق في كتلة الترخيص وما هي اللغة التي تبرمها. على سبيل المثال، يميل بيثون إلى استخدام "foldexpr" لتحديد قابلة للطي، لذلك لإضافة هذا الذي يجب أن تحل محل الوظيفة الموجودة به جديد واحد (أو التخلص من الطي الحالي). أعتقد أن الافتراضي في C هو استخدام قابلة للطي اليدوي (على الرغم من أنه من الممكن تكوينه بهذه الطريقة بنفس الطريقة: لا أستطيع أن أتذكر)، لذلك هذا أسهل بكثير لإضافة قابلة للطي.
مع رسالة حقوق النشر GPL بسيطة مثل واحد في نهاية هذا المنشور، يمكنك تعيين 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...
قمت بإنشاء البرنامج المساعد VIM صغير لهذا. إنه يهيمن عند طي التعليق الأول من الصفحة. عملت في حالات الاختبار الخاصة بي، ولكن، بالطبع، أي تحسين هو موضع ترحيب. يجب أن يكون من السهل إضافة معرفات خطية أخرى أو متعددة.
احصل عليه هنا. وبعد لتثبيت، مثل أي مساعد آخر، فقط إسقاطها في ~ / .vim / البرنامج المساعد الخاص بك.
تحرير: تغيير الرابط إلى VIM.org وتنظيف الجواب
ماذا عن حذفها؟ بجدية.
تعد شفرة المصدر محمية من خلال ملكية الحقوق والترخيص، وليس الغليان. لا يحتاج إلى أن تكون هناك - على الأقل في معظم الحالات.
في حالة GPL وغيرها من المخططات المماثلة التي تتطلب بفعالية النص موجود، يمكن نقله إلى أسفل الملف أو أيا كان.