*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 --init --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 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 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 ============================================================================== *cscope_macros* Folgende Mappings sind definiert: s symbol: find all references to the token under cursor g global: find global definition(s) of the token under cursor c calls: find all calls to the function name under cursor t text: find all instances of the text under cursor e egrep: egrep search for the word under cursor f file: open the filename under cursor i includes: find files that include the current file 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]