Tutorial 8: Schneller programmieren durch Add-Ins und Makros in MS Visual
C++ 6
Wie fessle ich die Hände an die Tastatur?
Einleitung
Denkt einmal darüber nach. Ihr sitzt vor eurem Computer und programmiert vor
euch hin. Wie oft wechselt eure rechte Hand von der Tastatur zur Maus und wieder
zurück? Sehr oft, oder?!? Störend kann die Benutzung der Maus vor allem auf
einem Notebook sein, wo man ein Touchpad hat um den Mauszeiger zu bewegen.
Das artet dann in Geduldsübungen aus, obwohl man ja eh nur eine Datei öffnen
will, oder das Kompilieren starten möchte. Also warum lässt man die Hände nicht
gleich (fast) die ganze Zeit auf der Tastatur und spart gleich noch Unmengen
an Zeit? Es geht nicht ohne Maus? Aber na sicher.
Mit Hilfe von Shortcuts, Makros und Add-Ins kann man seine
IDE (Entwicklungsumgebung) so verändern, dass man die Maus fast überhaupt
nicht mehr verwenden muss. Dieser Artikel ist also vor allem für die geschrieben,
die immer noch sehr viel die Maus benutzen. Ich hoffe aber das der Artikel auch
für andere lehrreich ist.
Shortcuts
Also ich glaub jeder von euch verwendet Shortcuts in VC++. Also zum Beispiel
F7 (und Strg+F7) um das Programm zu kompilieren oder Alt+F
und F3 um in der gerade geöffneten Datei zu suchen. Aber das meistgenützte
Shortcut wird wohl Strg+S. Also wer das nicht verwendet, ist nicht von
dem Planeten.
Um Shortcuts zu ändern gehe man unter Extras->Anpassen... Im Reiter
Tastatur kann man jeden Befehl der IDE mit einem Shortcut verbinden.
Ich habe als Beispiel auf F6 und Shift+F6 den Befehl WindowNext/WindowPrevious
gelegt (Kategorie Fenster). Damit wechsle ich zwischen den geöffneten
Fenstern einfach herum ohne die Maus benutzen zu müssen. Sehr hilfreich wenn
man im Vollbildschirmmodus (Menü: Ansicht->Ganzer Bildschirm Shortcut:
Alt+A+G) ist.
Wichtigste Shortcuts
Strg+S |
- Speichern |
Strg+F |
- Suchen |
F3 |
- Weitersuchen |
Strg+H |
- Ersetzen |
Alt+A+G |
- Ganzer Bildschirm |
Strg+F7 |
- Datei kompilieren |
F7 |
- Programm erstellen |
F6 |
- Nächstes Fenster (Befehl: WindowPrev) |
Shift+F6 |
- Voriges Fenster (Befehl: Window Previous) |
Alt+F7 |
- Projekteinstellungen |
F5 |
- Programm kompilieren und ausführen |
F9 |
- Breakpoint setzen/löschen |
F12 |
- Gehe zu Definition |
F10 |
- Aufruf als ein Schritt |
Strg+F10 |
- Ausführen bis Cursor |
F11 |
- In Aufruf springen |
Shift+F11 |
- Ausführen bis Rücksprung |
|
|
Makros
Die Makros von VC++ sind sogenannte VBScript-Makros. Dabei handelt es
sich um Prozeduren die in einer Textdatei geschrieben und einfach in VC++ integriert
werden können. Makros sind nur für kleine Arbeiten gedacht, um zum Beispiel
eine bestimmte Datei zu öffnen, einen Text zu suchen, Formatierungen in der
gerade geöffnenten Datei durchzuführen usw... Mehr Informationen über
die Sprache VBScript findest du in der MSDN-Help unter Visual C++-Dokumentation
-> Arbeiten mit Visual C++ -> Visual C++-Benutzerhandbuch -> Automatisierung
von Aufgaben in Visual C++ -> Makros.
Die Makrodateien findest du unter Visual Studio 6 im Verzeichnis
VisualStudio\Common\MSDev98\Macros. VC++ liefert auch gleich Beispielmakros
mit (Datei: sample.dsm). Hier nun ein Beispielmakro:
Sub OpenHeaderSource ()
ext = ActiveDocument.FullName
pos = Instr(ext, ".")
pos2 = 0
if pos > 0 then
Do While pos <> 1
ext = Mid(ext, pos, Len(ext) - pos + 1)
pos2 = pos
pos = Instr(ext, ".")
Loop
ext = LCase(ext)
end if
docname = ActiveDocument.FullName
newdoc = Mid(docname, 1, pos2-1)
if ext = ".cpp" then
newdoc = newdoc + ".h"
ElseIf ext = ".h" then
newdoc = newdoc + ".cpp"
End If
Documents.Open(newdoc)
End Sub
Diese Makro öffnet von einer Datei die zugehörige Header oder Quelldatei. Ist
as aktive Dokument also zum Beispiel kernel.cpp öffnet dieser Makro die
Datei kernel.h. Diesen Code in eine Markodatei einfügen, mit einem Shortcut
verbinden und schon wechselt man blitzschnell zwischen den Dateien herum.
Um ein Makro mit einem Shortcut zu verbinden, muss man als erstes die Makrodatei
laden. Dies geschieht unter Extras->Anpassen... -> Add-Ins und Makrodateien.
Hier listet VC++ alle Add-Ins und Makrodateien auf, die in den zugehörigen Ordnern
zu finden sind. Einfach vor die Datei mit dem Marko das Häkchen setzen und schon
lädt VC++ dieses Add-In/Makro. Dann kann man unter dem Reiter Tastatur
in der Kategorie Makros das Makro auswählen und mit einem Shortcut verbinden.
Ein anderes Makro, das ich auch verwende, macht aus einer Funktionsdeklaration
die zugehörige Beschreibung. (Makro von Doxygen: AddHead4Doxygen)
Vor der Deklaration
bool engConsoleRegisterCommand(engString sCmd, engString sParam, engString sHelp)
Fügt diese Makro folgenden Text ein:
/*!
* @brief
*
*
* @param sCmd :
* @param sParam :
* @param sHelp :
*
* @return bool :
*/
Und markiert auch noch den Text "brief", wo ich dann sofort die Beschreibung
der Funktion hinschreiben kann. Man sieht, Makros können einiges an Schreibarbeit
einsparen.
Add-Ins
Add-Ins sind prozessintegrierte ActiveX-Komponenten (DLLs), die in VC++ oder
VB geschrieben sind. Makros sind zwar einfach zu programmieren aber nicht so
vielseitig wie Add-Ins. Mit Makros kann man nur auf wenige Ressourcen des Programms
zugreifen, wobei man mit Add-Ins eigentlich ein ganzes Programm schreiben kann,
dass auf den Computer zugreifen kann.
VBScript-Makros |
Developer Studio Add-Ins |
Werden interpretiert. |
Werden kompiliert. |
Sind leicht zu erstellen. |
Sind schwieriger zu erstellen. |
Können nur in VBScript geschrieben werden. |
Können in verschiedenen Sprachen geschrieben
werden. |
Können nur Dialogfelder verwenden, die
mit den VBScript-Befehlen InputBox und MsgBox erstellt wurden. |
Können beliebige modale Dialogfelder verwenden. |
Können nicht auf die Win32-Api zugreifen. |
Können auf die Win32-Api zugreifen. |
Können nicht direkt Dateien auf der Festplatte
lesen oder in diese schreiben. |
Können über die Win32-Api direkt Dateien
auf der Festplatte lesen und diese schreiben. |
Können keine anderen Anwendungen steuern. |
Können eine andere Anwendung steuern. |
aus der MSDN Library "Unterschiede zwischen VBScript-Makros
und Developer Studio-Add-Ins
Add-Ins für den Programmierer
Hier nun eine Beschreibung der Add-Ins die ich selbst verwende.
LibraryBrowser von David Fergusson - Freeware
Ein Browser mit Suchfunktionen. Man kann Packages anlegen aus denen der Library
Browser die Funktions- und Klassendeklarationen herausfiltert und anzeigt. Dient
dazu schnell zu einer Funktion von einer Klasse zu wechseln oder einfach nur
um alle Klassen, Typen, Funktionen, Variablen,.. aufzulisten.
SmartReplace AddIn - Freeware mit Quellcode
Ein Ersatz für den Ersetzen-Dialog von VC++. Damit kann man nicht nur in der
gerade geöffneten Datei Wörter ersetzen, sondern auch in den gesamten Projektdateien,
Arbeitsbereichdateien oder Dateien in einem bestimmten Verzeichnis.
Visual Assist 6.0 von
www.wholetomato.com
Mein Geheimtipp unter den Add-Ins. Mit diesem Tool, erspart man sich viel unnötigen
Ärger und Arbeit (mit der Maus). Diese Add-In führt ein zusätzliches Syntax-Highlighting
ein. Dadurch kann man Klassen, Variablen, Makros, Methoden mit eigenen Farben
belegen. Weiters überprüft es die Groß/Kleinschreibung und bessert Fehler automatisch
aus. Bessere Textvervollständigung als VC++. Es versteht sogar den Unterschiede
zwischen Klassenzeiger und Klassenvariable. Schreibt man zB. PointeraufKlasse.Funktion();
so bessert das Add-In den Punkt automatisch in den C++ Pfeil ->
aus. Es besitzt auch noch Suchfunktionen um den Text der gerade beim Cursor steht
zu Suchen.
Verbindet man dies alles mit Shortcuts, braucht man wirklich keine Maus mehr.
Ich arbeite fast nur mehr im Vollbildschirmmodus (also nur die Dateisicht) und
mache alles mit Shortcuts. Ich verliere dadurch keine Funktionalität, die ich
im normalen Modus hätte. Möchte ich zum Beispiel irgendeine Datei des Projekts
öffnen (während ich im Vollbildschirmmodus bin), drücke ich nur Strg+F6
und schon kommt ein Dialog des Visual Assist Add-In indem alle Dateien
aufgelistet sind und ich kann bequem per Tastatur die Datei auswählen.
Total Commander
Dies ist kein Add-In sondern ein Dateibrowser wie der Explorer. Jedoch ist
es auch ein Tool, das man am besten nur mit der Tastatur bedient. Sehr geeignet
für Notebooks um die Verwendung des Touchpad so klein wie möglich zu halten.
Aber auch für daheim das ideale Tool. Man ist einfach mit Shortcuts schneller
als mit der Maus. Zusätzlich zu den Browserfunktionen, kann der Total Commander
ganze Verzeichnisse abgleichen, FTP, Packen, ... Also einfach ein Tool das sich
für Shortcutler wirklich eignet.
Falls ihr auch Makros oder Add-Ins verwendet, die ich hier auch unterbringen
sollte, schreibt mir. Ich freue mich auf jedes Makro das mir die Arbeit erleichtert.
Copyright (c) by KongoBei Fragen, Beschwerden, Wünschen
schreib an kongo@gmx.at