Gibt es eine Möglichkeit, Falten oder eine andere schwarze Magie von Vim-Script zu verwenden, um Lizenzblöcke am Anfang von Dateien zu verbergen? Ich mag es nicht, dass sie einen so großen Ausschnitt meines Bearbeitungsfensters einnehmen; Ich möchte mir ein Gefühl dafür verschaffen, was eine Datei macht, wenn ich sie zum ersten Mal öffne, anstatt ein Gesicht voll mit Textplatten zu haben.Kann Vim einen Lizenzblock am Anfang einer Datei ignorieren?
Antwort
die Sie interessieren in einem automatischen Befehl.
Stellen Sie den Bereich in Zeile 4 entsprechend ein. Im schlimmsten Fall, in dem das Urheberrecht an verschiedenen Orten beginnt und ist ein variabler Länge sollte dieses Muster tun:
1,/Beginning of copyright/;/End of copyright/
Ich empfehle ''silent!' Vor dem Befehl falten, damit Vim nicht klagt, wenn der Lizenzblock nicht existiert. – ereOn
Wie wäre es, sie zu löschen? Ernst.
Der Quellcode ist durch Rechtebesitz und Lizenzierung geschützt, nicht durch das Muster. Es muss nicht dort sein - zumindest in den meisten Fällen.
Im Fall von GPL und anderen ähnlichen Schemata, die den Text tatsächlich benötigen, kann es an den unteren Rand der Datei oder was auch immer verschoben werden.
Und was, wenn man möchte, dass Leute die relevanten Lizenzinformationen ** zuerst ** lesen? Vim ist mächtig genug, um es automatisch und einfach zu falten, so dass es sowieso keine große Sache ist ... – ereOn
Es hängt davon ab, ob es eine konsistente Form für den Lizenzblock gibt und in welcher Sprache Sie programmieren. Zum Beispiel verwendet Python einen 'foldexpr', um die Faltung zu definieren, also müssen Sie diese ersetzen die bestehende Funktion mit einer neuen (oder die bestehende Faltung loswerden). Ich glaube, der Standard in C ist das manuelle Falten (obwohl es möglich ist, dass ich es selbst so konfiguriere: ich kann mich nicht erinnern), also ist es viel einfacher, zusätzliches Falten hinzuzufügen.
Mit einer einfachen GPL-Copyright-Nachricht wie der am Ende dieses Beitrags, könnten Sie foldmethod auf manuell einstellen und eine einfache Funktion haben, die eine Faltung erzeugt. Es hängt alles von der Form des Copyrights ab und wie wichtig es für Sie ist, die bestehende Faltung beizubehalten. Ich fürchte, ich brauche etwas mehr Details, um eine nützlichere Antwort zu geben. Wie auch immer, hier ist ein Beispiel-Skript, das verwendet werden könnte, den Copyright-Hinweis am Ende dieses Beitrags zu falten:
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()
einen Copyright-Hinweises wie diesen Angenommen:
# 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...
Ich habe ein kleines vim Plugin dafür. Es wird bestimmt, wenn der erste Kommentar der Seite gefaltet werden soll. Es hat bei meinen Testfällen funktioniert, aber natürlich ist jede Verbesserung willkommen. Es sollte einfach sein, andere einzelne oder mehrere Zeilenidentifikatoren hinzuzufügen.
Holen Sie es here. Um es wie jedes andere Plugin zu installieren, legen Sie es einfach in Ihr ~/.vim/plugin.
Edit: Changed den Link zu vim.org und aufgeräumt die Antwort
Warum reichen Sie diesen vim.org nicht als Skript ein? –
gute Frage. scheint nicht sehr nützlich. – fotanus
- 1. Microsofts Nachricht am Anfang einer Datei
- 2. Wie füge ich am Anfang einer vim-Datei mit der .vimrc-Datei Text ein?
- 3. Ignorieren der Leerzeichen am Ende einer Datei
- 4. write() am Anfang der Datei?
- 5. Unerwarteter Platz am Anfang der Datei
- 6. erfordern Knotenmodule am Anfang der Datei
- 7. seltsame Zeichen am Anfang der Datei
- 8. require_once() fügt Zeilenumbruch am Anfang der Datei
- 9. iPhone - stuff "Stille" am Anfang einer Audiodatei
- 10. Kopfzeile nur einmal am Anfang einer Rolling-Datei einschließen
- 11. Vim Show Newline am Ende der Datei
- 12. Knoten am Anfang einer verketteten Liste einfügen
- 13. Punkt am Anfang einer "Print" -Anweisung?
- 14. Hinzufügen von Zeichen am Anfang und Ende jeder Zeile in einer Datei
- 15. Vim: Ignorieren Sonderweg in Search
- 16. Nullen am Anfang einer Zahlenfolge entfernen VBA
- 17. vim inkrementelle Suche stoppen am Ende der Datei
- 18. Python: # Kommentarzeilen beim Einlesen einer Datei ignorieren
- 19. Lauf djangocms am Anfang
- 20. "von __future__ importieren müssen am Anfang der Datei auftreten": Was definiert den Anfang der Datei?
- 21. Wie verbieten Sie die automatische Vervollständigung am Anfang einer neuen Zeile in Vim?
- 22. Vim - Wie man einen Backslash am Anfang einer Zeile in einer neuen Datei mit Hilfe von autocmd und einer Vorlagendatei einfügt
- 23. ';' am Anfang von TSQL-Anweisungen
- 24. Ein Leerzeichen am Anfang einer Zeile mit pyparsing
- 25. Wie springt man am Anfang der Datei in PHPStorm?
- 26. emberjs "loading screen" am Anfang
- 27. Wie loswerden einer zufälligen "% 3" am Anfang einer Zeichenfolge
- 28. Müssen am Anfang der Datei mit PHP schreiben
- 29. eine Enum mit einer Nummer am Anfang Erstellen
- 30. fputcsv fügt unerwünschten Validierungskommentar am Anfang der Datei hinzu
Was ist das Format des Textes, den Sie ignorieren mögen? –