188 lines
8.9 KiB
Plaintext
188 lines
8.9 KiB
Plaintext
*vimsuite.txt* Eine Sammlung von vimscripts für Software Entwickler
|
|
|
|
|
|
|vimsuite.1| Bestandteile
|
|
|vimsuite.2| Installation
|
|
|vimsuite.3| Einstellungen
|
|
|vimsuite.4| Plugins
|
|
|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
|
|
|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.
|
|
|
|
*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* Plugins *VimSuitePlugins*
|
|
|
|
Alle Plugins sind als |packages| im Verzeichnis 'pack' installiert. Die
|
|
meisten sind als git-submodule integriert. Zum aktualisieren kann der Befehl
|
|
>
|
|
git submodule update --remote --recursive
|
|
git commit --all -m "update packages"
|
|
git submodule update --recursive
|
|
|
|
verwendet werden.
|
|
|
|
==============================================================================
|
|
*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|).
|
|
|
|
*: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]
|
|
|