Czy istnieje sposób użycia fałd lub jakiejś czarnej magii Vim-script do ukrycia bloków licencji na górze plików? Nie podoba mi się, że zajmują tak dużą część mojego okna edycyjnego; Lubię mieć poczucie, co robi plik, kiedy go po raz pierwszy otwieram, a nie twarz pełna tablicy.Czy mogę Vim zignorować blok licencji u góry pliku?
Odpowiedz
Spróbuj tego w autokomendę.
function! FoldCopyright
if !exists("b:foldedCopyright")
let b:foldedCopyright = 1
1,15fold
endif
endfunction
Dostosuj odpowiednio zakres na linii 4. W najgorszym przypadku, gdzie zaczyna się prawo autorskie w różnych miejscach i jest zmienna długość tego wzorca powinny zrobić:
1,/Beginning of copyright/;/End of copyright/
Polecam użycie 'cichy!' Przed komendą fold, więc jeśli blok licencji nie istnieje, Vim nie narzeka. – ereOn
Co powiesz na usunięcie? Poważnie.
Kod źródłowy jest chroniony prawem własności i licencjonowaniem, a nie podstawowym kodem. Nie musi tam być - przynajmniej w większości przypadków.
W przypadku GPL i innych podobnych programów, które skutecznie wymagają obecności tekstu, można go przenieść na dół pliku lub cokolwiek innego.
A co, jeśli ktoś chce, aby ludzie przeczytali odpowiednie informacje o licencji ** najpierw **? Vim jest wystarczająco potężny, by składać go automatycznie i łatwo, więc to i tak nic wielkiego ... – ereOn
To zależy od tego, czy istnieje spójny formularz do bloku licencji i jakiego języka programujesz. Na przykład, python ma tendencję do używania 'foldexpr' do definiowania składania, więc aby dodać to musisz zastąpić istniejąca funkcja z nową (lub pozbyć się istniejącego składania). Domyślam się, że w C używam ręcznego składania (chociaż możliwe, że skonfigurowałem to w ten sposób sam: nie pamiętam), więc znacznie łatwiej jest dodać dodatkowe składanie.
Dzięki prostemu komunikatowi o prawach autorskich GPL, takim jak ten na końcu tego posta, możesz ustawić foldmethod na manualny i mieć prostą funkcję, która tworzy zgięcie. Wszystko zależy od formy prawa autorskiego i od tego, jak ważne jest utrzymanie istniejącego składania. Obawiam się, że potrzebuję nieco więcej szczegółów, by dać bardziej przydatną odpowiedź. Tak czy inaczej, oto skrypt przykład, który może być stosowany do złożenia informacji o prawach autorskich na końcu tego postu:
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()
Zakładając o prawach autorskich jak ten:
# 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...
stworzyłem brakujące wtyczki vim do tego. Dewiuje, kiedy pierwszy komentarz strony powinien zostać złożony. To działało w moich testowych przypadkach, ale oczywiście każda poprawa jest mile widziana. Powinno być łatwo dodać inne pojedyncze lub wielokrotne identyfikatory linii.
Zdobądź here. Aby zainstalować, jak każda inna wtyczka, po prostu umieść ją w swojej ~/.vim/plugin.
Edytuj: Zmieniono link do strony vim.org i oczyściłem odpowiedź
Dlaczego nie przesłać tego vim.org jako skryptu? –
dobre pytanie. nie wydaje się bardzo przydatne. – fotanus
- 1. Pozycja MBProgressHUD u dołu/u góry ekranu
- 2. Pasek narzędzi UIPopoverController u góry
- 3. Gradle: "zastosuj wtyczkę" u góry lub u dołu
- 4. Używanie git hook do dodawania licencji i wersji aplikacji do komentowania u góry plików źródłowych
- 5. Zachowaj linię stdin u góry lub u dołu ekranu terminala.
- 6. Cień pudełka nie jest wyświetlany u góry ani u dołu
- 7. UITableView wstawianie sekcji u góry podczas przewijania
- 8. Pasek narzędzi u góry UIPIckerView w Xcode?
- 9. jak ustawić bieżącą linię pod edycją u góry ekranu w vim
- 10. jak sprawdzić, czy użytkownik znajduje się u góry strony html?
- 11. Czy mogę zignorować globalne .gitignore?
- 12. Pozbycie się gradientu u góry działania (Android)
- 13. Treści UIWebview nie są wyświetlane u góry
- 14. GIT - Nie mogę zignorować pliku .suo.
- 15. Jakie są zalety używania `require` w module zamiast u góry?
- 16. CSS: obracanie obrazu i wyrównanie u góry po lewej
- 17. Vim - Blok wizualny: Usuń zamiast wstawiania
- 18. Dodaj dodatkowy wiersz nagłówka u góry arkusza programu Excel [EPPlus]
- 19. Co należy umieścić w komentarzach nagłówka u góry plików źródłowych?
- 20. Jak mogę zignorować nadklasę?
- 21. Przekładka HTML div poziomy przewijania u góry div bez jquery
- 22. Szyny ActiveAdmin: umieszczanie filtrów u góry w akcji indeksu
- 23. Czy mogę vim zrobić edycję wielowierszową?
- 24. Efekt zanikania u góry iu dołu widoku NSTableView/NSOutlineView
- 25. Znikający pasek stanu u góry po zamknięciu MPMoviePlayerController
- 26. Co oznacza "#!/Bin/env" (u góry skryptu node.js)?
- 27. Rails/Ruby 1.9: Czy istnieje lepszy sposób na umieszczenie Unicode w plikach źródłowych niż przyklejenie kodowania u góry każdego pliku
- 28. iOS 10: Niestandardowy obraz tła UITabBar tworzy ramkę u góry obrazu. Jak mogę go usunąć?
- 29. Czy można zignorować wyjątek?
- 30. Czy mogę vim szanować moje pliki .gitignore?
Jaki jest format tekstu, który chcesz zignorować? –