Frage Wie füge ich einen Befehl in vim editor hinzu?


Angenommen, der Dateiname meiner Quellcodedatei lautet "foo.c". Beim Editieren und Debuggen führe ich diesen Befehl immer aus:

:! gcc-g foo.c -o foo; gdb foo

Kann ich Vim einen benutzerdefinierten Befehl hinzufügen, so dass, wenn ich ": debug" eintippe, der obige Befehl ausgeführt wird? Wie erreiche ich das?


69
2018-01-09 13:26


Ursprung




Antworten:


Ja. Vim Dokumentation, Abschnitt 40.2, Befehlszeilenzuordnungen:

Mit dem Vim-Editor können Sie definieren   deine eigenen Befehle. Sie führen diese aus   Befehle wie jeder andere auch   Befehlszeilenmodusbefehl Zu   Definieren Sie einen Befehl mit dem Befehl ":"   Befehl, wie folgt:

: Befehl DeleteFirst 1 löschen

Jetzt, wenn Sie den Befehl ausführen   ": DeleteFirst" Vim wird ausgeführt   ": 1delete", löscht den ersten   Linie.

Hinweis: Benutzerdefinierte Befehle müssen   Beginnen Sie mit einem Großbuchstaben. Sie   kann nicht ": X", ": Next" und   ":Drucken". Der Unterstrich kann nicht sein   benutzt! Sie können Ziffern verwenden, aber dies   ist entmutigt.

Setzen Sie diese Zeile in Ihre ~/.vimrc (abzüglich des Anfangs : natürlich) und es wird bei jedem Start von vim definiert. Auch verwenden %:t Bezug auf die zu bearbeitende Datei nehmen (schreiben ! gcc %:t wird ersetzt durch ! gcc foo.c).

Wenn Sie möchten, dass es nur für die eine Datei oder für bestimmte Dateien definiert wird, möchten Sie eine Autocommand.


83
2018-01-09 13:56



Wenn Sie einen vorhandenen Befehl ersetzen, müssen Sie ihn verwenden command!. - phyatt


Vim hat bereits Unterstützung für Makefiles (:machen). Wenn Sie eine für Ihre Quelle erstellen, können Sie darin festlegen, was Sie tun möchten. Durch Ctags kann Vim alle während der Kompilierung gefundenen Fehler iterieren.


14
2018-01-09 13:48





Fügen Sie einen benutzerdefinierten vi Editor-Befehl hinzu:

Dies macht es so, wenn der Benutzer tippt :Legend Im normalen Modus wird ein Textblock unter dem Cursor hinzugefügt.

Schritt 1: Setzen Sie diese Zeile in eine Datei namens ~ / legend_header.txt`

this text will be added

Schritt 2: Setzen Sie diesen Befehl in Ihre ~ / .vimrc Datei (wenn die Datei nicht existiert, erstellen Sie sie):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

Schritt 3: Starten Sie vi neu, damit die Änderungen wirksam werden. Sie sind fertig.

Probier es aus

Schritt 1: Öffnen Sie eine neue Datei in vi. Sei im Standardmodus "Normal" in vi. Art :Legend

Schritt 2: Der Inhalt von ~/legend_header.txt sollte hinzugefügt werden, wo der Cursor ist.


4
2018-05-01 14:31





Ich verwende diesen Befehl in meinem .vimrc, um den c-Code zu kompilieren und auszuführen:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

, aber für Ihre Bedürfnisse könnten Sie setzen:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

Sie können sicher sein, dass der Name der Exec-Datei der Quellenname ohne die Erweiterung .c ist.


0
2017-11-13 20:48