213 lines
10 KiB
Plaintext
213 lines
10 KiB
Plaintext
*vimsuite.txt* Eine Sammlung von vimscripts für Software Entwickler
|
|
|
|
|
|
|vimsuite.1| Bestandteile
|
|
|vimsuite.2| Installation
|
|
|vimsuite.3| Einstellungen
|
|
|vimsuite.4| Projekte
|
|
|vimsuite.5| VimSuiteTools
|
|
|
|
==============================================================================
|
|
*vimsuite.1* Bestandteile der VimSuite *VimSuite* *vimsuite* *Bestandteile*
|
|
|
|
Die VimSuite besteht aus vimscripts von http://www.vim.org und eigenen
|
|
Scripten von Stefan Liebl. Folgende wichtige Scripts sind enthalten:
|
|
|
|
|VimSuiteTools|Tools zum Programmieren von Stefan Liebl
|
|
|BMSK| Makros zum Arbeiten mit BMS-K/BMS-KP Quellcode
|
|
|LaTeX| Suite Tools zum bearbeiten von LaTeX Quelltexten
|
|
|crefvim| Referenz zur Programmiersprache C (Anleitung in|crefvimdoc|)
|
|
|visincr| Inkrementieren von Nummern in Spalten
|
|
|cscope_macros|Anwenden der Datenbank für Label in C
|
|
|dirdiff| Vergleichen von kompletten Verzeichnissen
|
|
|tComment.txt| Erzeugen von Kommentaren in vielen Sprachen
|
|
|fugitive| Arbeiten mit Git
|
|
|gitv| Git browser wie Gitk oder TortoiseGit
|
|
|diffchar| Exakte diffs pro Zeile darstellen
|
|
|linediff| Differenz zweier beliebiger Textblöcke
|
|
|
|
==============================================================================
|
|
*vimsuite.2* Installation *VimSuiteInstallation*
|
|
|
|
Zunöchst muss die aktuelle Release 7.0 von Vim (http://www.vim.org) in einem
|
|
Pfad ohne Sonderzeichen (auch ohne Leerzeichen) installierts sein. Die
|
|
VimSuite kann in einem beliebigen Verzeichnis abgelegt werden.
|
|
|
|
Anschließend kann die Datei vimsuite/vimfiles.stefan/_vimrc.example nach
|
|
vim/_vimrc kopiert werden (unter Linux nach ~/.vimrc). In dieser Datei können
|
|
die persönlichen Einstellungen vorgenommen werden, z.B. in dem weitere
|
|
vimrc-files geladen werden. Falls die VimSuite nicht im Verzeichnis vim liegt,
|
|
muss natürlich noch der Pfad angepasst werden.
|
|
|
|
Bei einem Update der VimSuite sollte die alte VimSuite gelöscht (oder
|
|
verschoben) werden, da sich die Verzeichnis-Struktur ändern kann. Die
|
|
persönlichen Einstellungen in vim/_vimrc werden nicht überschrieben. Es ist
|
|
aber empfehlenswert, die Datei mit der neuen
|
|
vim/vimsuite/vimfiles.stefan/_vimrc.example zu vergleichen.
|
|
|
|
==============================================================================
|
|
*vimsuite.3* Einstellungen *VimSuiteEinstellungen*
|
|
|
|
Einstellungen für die VimSuite können direkt im File _vimrc (bzw. ~/.vimrc)
|
|
gemacht werden. Alternativ kann dort ein eigenes vimrc-File mit|source|geladen
|
|
werden.
|
|
|
|
*g:WA* *Workarea*
|
|
Die Variable g:WA sollte auf ein Verzeichnis zeigen, in dem die Projekte der
|
|
VimSuite liegen. Standard ist 'C:/wa'.
|
|
|
|
*b:GrepFiles* *g:GrepFiles* *GrepFiles*
|
|
Die Variable b:GrepFiles kann z.B. in einem|filetype-plugin|gesetzt werden.
|
|
g:GrepFiles ist normalerweise *. Für C-Projekte kann die Variable z.B. >
|
|
let b:GrepFiles='*.c *.h'
|
|
gesetzt werden.
|
|
|
|
*b:GrepDir* *g:GrepDir* *GrepDir*
|
|
Die Variable b:GrepDir kann z.B. in einem|filetype-plugin|gesetzt werden.
|
|
g:GrepDir ist normalerweise das Verzeichnis, in dem vim geöffnet wurde.
|
|
|
|
Die Funktion zur Suche mit einem externen|grepprg|wird zugunsten der internen
|
|
Variante|:vimgrep|nicht unterstützt.
|
|
|
|
*b:commentstring*
|
|
Diese Variable wird verwendet, um Code auszukommentieren. Sie sollte in einem
|
|
|filetype-plugin|gesetzt werden.
|
|
|
|
==============================================================================
|
|
*vimsuite.4* Projekte *Projekt* *Project* *VimSuiteProjekt* *VimSuiteProject*
|
|
|
|
Ein Projekt bezieht sich nicht auf eine VIM-Session, sondern auf ein
|
|
Entwicklungsprojekt. Im Menü VimSuite->Project werden alle erkannten Projekte
|
|
aufgelistet. Das Projekt kann mit dem Menü oder folgendem Befehl geladen
|
|
werden:
|
|
|
|
*:SetProject*
|
|
:SetProject [file] (Tab-Erweiterung funktioniert) Laden eines Projekts.
|
|
|
|
Ein Projekt sollte die Datei project.vim enthalten. Nach dieser Datei sucht
|
|
die VimSuite für die Auswahl von Projekten in allen Unterverzeichnissen von
|
|
|g:WA|. Eine Beispiel für Projekte, die ihre eigene Konfiguration verändern
|
|
können ist in project_example.vim und settings_example.vim zu sehen. Die
|
|
zweite Datei wird über den Make-Befehl 'Make vim-config' erzeugt und von der
|
|
ersten geladen. Die Datei project.vim kann aber auch beliebig anders aussehen.
|
|
Sie wird lediglich bei|SetProject| geladen.
|
|
|
|
==============================================================================
|
|
*vimsuite.5* VimSuiteTools *VimSuiteTools*
|
|
|
|
Um die Arbeit auf Windows-Systemen zu erleichtern, sind im Ordner tools ein
|
|
paar Programme, die auf diesem System üblicherweise nicht vorhanden sind:
|
|
- ctags.exe: http://ctags.sourceforge.net
|
|
- cscope.exe: http://cscope.sourceforge.net
|
|
- pythonXX.dll: http://www.python.org
|
|
- patch.exe, tee.exe: http://www.mingw.org
|
|
- DirDiff.bat: Diese Datei kann in's 'SendTo' Verzeichnis kopiert werden.
|
|
Anschließend können im Explorer zwei Verzeichnisse markiert und mit
|
|
|DirDiff|verglichen werden.
|
|
|
|
*:SessionLoad*
|
|
:SessionLoad [Name] Laden der Session mit dem Namen Name.
|
|
|
|
Ruft|:source|Name auf. Falls kein Name angegeben wird, öffnet sich ein
|
|
File-Browse Dialog.
|
|
|
|
*:SessionSave*
|
|
:SessionSave [Name] Speichern der Session unter dem Namen Name.
|
|
|
|
Ruft|:mksession|auf. Falls kein Name angegeben wird, öffnet sich ein
|
|
File-Browse Dialog.
|
|
|
|
*:Grep*
|
|
:Grep [pattern] Suchen nach pattern in mehreren Files
|
|
|
|
Unterstützt Regular expressions und findet mehrere Treffer in einer Zeile, die
|
|
mit <CTRL-n> durchlaufen werden können. Gesucht wird in allen|b:GrepFiles|bzw.
|
|
falls nicht vorhanden in|g:GrepFiles|, die unterhalb von|b:GrepDir|bzw. falls
|
|
nicht vorhanden|g:GrepDir|liegen.
|
|
|
|
*CTRL-n* *CTRL-N*
|
|
Mit <CTRL-n> wird das Command|:cn|ausgeführt. Es ist darauf zu achten, dass
|
|
der nächste eintrag in der|Quickfix|Liste angezeigt wird. Steht die Liste
|
|
also auf dem ersten Eintrag, dieser wurde aber nicht angezeigt (make!,
|
|
vimgrep!) dann wird zum zweiten Eintrag gesprungen.
|
|
|
|
*Reformat*
|
|
:Reformat Formatieren eines Quelltextes
|
|
|
|
Dieser Befehl funktioniert für die meisten Programmiersprachen. In C werden
|
|
hauptsächlich alle Einrückungen korrigiert und alle Tabs zu Spaces
|
|
konvertiert. Der Befehl funktioniert aber auch einigermaßen für kgs-Files.
|
|
Es kann auch eine|range|angebeben werden (auch|visual|).
|
|
|
|
*CommentInOut* *Comment* *CTRL-k* *CTRL-K*
|
|
:CommentInOut Aus- bzw. Ein-Kommentieren von Quellcode
|
|
|
|
Die Funktion wird üblicherweise über die Tastenkombination <CTRL-K>
|
|
aufgerufen. Falls der Code auf der aktuellen Zeile nicht auskommentiert wird,
|
|
so wird er auskommentiert. Falls er schon auskommentiert ist, so wird der
|
|
Kommentar entfernt. Anschließend springt der Cursor in die nächste Zeile, so
|
|
dass große Bereiche sehr einfach aus- oder einkommentiert werden können. Als
|
|
Kommentarzeichen wird|b:commentstring|verwendet. Um eine Zeile als
|
|
auskommentiert zu erkennen muss der Kommentar in der ersten Spalte stehen.
|
|
Echte Kommentare können in einer andreren Spalte stehen und werden dann
|
|
doppelt auskommentiert.
|
|
|
|
*:MarkLongLines*
|
|
:MarkLongLines Hebt zu lange Zeilen hervor
|
|
Alle Zeilen, die länger als|textwidth|sind, werden rot markiert.
|
|
|
|
*:MarkLongLinesOff*
|
|
:MarkLongLinesOff Schaltet die Markierung wieder aus
|
|
|
|
*:SyntaxShowGroup*
|
|
:SyntaxShowGroup Zeigt die Syntax|highlight-groups|an
|
|
|
|
*:DiffOff*
|
|
:DiffOff Schaltet die Diff-Anzeige aus
|
|
|
|
*:DiffClose*
|
|
:DiffClose Schließt das aktuelle Fenster und schaltet die Diff-Anzeige aus
|
|
|
|
*DelAllTrailingWhitespace*
|
|
:DelAllTrailingWhitespace Löscht alle Leerzeichen an allen Zeilenenden
|
|
|
|
*DelAllMultipleEmptyLines*
|
|
:DelAllMultipleEmptyLines Löscht alle mehrfachen leeren Zeilen
|
|
|
|
*DelAllMultipleSameLines*
|
|
:DelAllMultipleSameLines
|
|
Löscht alle identischen Zeilen, die direkt hinterenander stehen
|
|
|
|
*:InsertCHeader*
|
|
:InsertCHeader Fügt das Template ... ein
|
|
|
|
*GVimMerge* *Merge*
|
|
gvimmerge Tool zur Unterstützung beim mergen
|
|
|
|
Um GVim als Tool zum Mergen für eine Versionsverwaltung zu verwenden kann
|
|
dieser dort als Merge-Tool eingetragen werden. Der Eintrag sollte
|
|
folgendermaßen ausshen:
|
|
.../vimsuite/vimfiles.stefan/tools/gvimmerge.bat <base> <mine> <theirs> <merged>
|
|
|
|
==============================================================================
|
|
*cscope_macros*
|
|
|
|
Folgende Mappings sind definiert:
|
|
<C-CR>s symbol: find all references to the token under cursor
|
|
<C-CR>g global: find global definition(s) of the token under cursor
|
|
<C-CR>c calls: find all calls to the function name under cursor
|
|
<C-CR>t text: find all instances of the text under cursor
|
|
<C-CR>e egrep: egrep search for the word under cursor
|
|
<C-CR>f file: open the filename under cursor
|
|
<C-CR>i includes: find files that include the current file
|
|
<C-CR>d called: find functions that function under cursor calls
|
|
|
|
==============================================================================
|
|
*diffchar*
|
|
|
|
Highlight the exact differences, based on characters and words
|
|
|
|
:[range]SDChar - Highlight difference units for [range]
|
|
:[range]RDChar - Reset the highlight of difference units for [range]
|
|
|