GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ctags und Taglist:Konvertieren Sie den Vim-Editor in einen schönen Quellcode-Browser für jede Programmiersprache


Foto mit freundlicher Genehmigung:mint imperial

Dieser Artikel ist Teil der fortlaufenden Reihe Vi / Vim Tipps und Tricks. Als Programmierer oder Systemadministrator durchsuchen Sie ständig Quellcodes und Shell-Skripte.

Im Folgenden finden Sie einige typische Aktivitäten, die Sie beim Durchsuchen einer Quellcodedatei ausführen können:

  1. Navigieren zur Funktionsdefinition durch Angabe des Funktionsnamens.
  2. Navigieren zur Funktionsdefinition von „Funktionsaufruf“.
  3. Von der Definition wieder zurück zum Funktionsaufruf.
  4. Anzeigen des Prototyps/der Signatur von Funktionen oder Variablen.
  5. Anzeigen der Anzahl von Funktionen in einer Datei usw.


Lassen Sie uns in diesem Artikel überprüfen, wie Sie die oben genannten Aktivitäten im Vim-Editor effizient ausführen können Verwendung von Ctags und Taglist-Plugin.

Die in diesem Artikel erwähnten Techniken mit dem Vim-Editor können für jede Programmiersprache verwendet werden.

Ich. Ctags-Paket installieren und konfigurieren

Schritt 1:ctags-Paket installieren

# apt-get install exuberant-ctags

(or)

# rpm -ivh ctags-5.5.4-1.i386.rpm
warning: ctags-5.5.4-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...          ########################################### [100%]
   1:ctags            ########################################### [100%]

Schritt 2:Generieren von ctags in Ihrem Quellcode

Wechseln Sie in das Verzeichnis, in dem sich Ihr Quellcode befindet. Im folgenden Beispiel habe ich meinen gesamten Quellcode für die C-Programmierung im Verzeichnis ~/src abgelegt.

# cd ~/src

# ctags *.c

Der Befehl ctags erstellt einen Dateinamen tags, der alle erforderlichen Informationen (Tags) über die *.c-Programmdateien enthält. Es folgt eine teilweise Ausgabe der Tags-Einträge in der ctags-Datei.

# cat tags
AddAcl  dumputils.c     /^AddAcl(PQExpBuffer aclbuf, const char *keyword)$/;"   f       file:
ArchiveEntry    pg_backup_archiver.c    /^ArchiveEntry(Archive *AHX,$/;"        f
AssignDumpId    common.c        /^AssignDumpId(DumpableObject *dobj)$/;"        f

II. 4 leistungsstarke Ctags-Nutzung innerhalb des Vim-Editors

1. Navigieren Sie zur Funktionsdefinition, indem Sie den Funktionsnamen mit :ta

angeben

Im folgenden Beispiel bringt Sie :ta main zur Hauptfunktionsdefinition in mycprogram.c

# vim mycprogram.c
:ta main

Mit dieser Funktion können Sie zu jeder Funktionsdefinition navigieren, indem Sie den Funktionsnamen angeben.

2. Navigieren zur Funktionsdefinition von „Funktionsaufruf“ mit Strg + ]

Wenn sich der Cursor unter dem Funktionsaufruf befindet, drücken Sie STRG + ], um zur Funktionsdefinition zu gelangen. Wenn sich der Cursor im folgenden Beispiel im Funktionsaufruf ssh_xcalloc befindet, gelangen Sie durch Drücken von Strg + ] zur Funktionsdefinition ssh_xcalloc.

# vim mycprogram.c
            av = ssh_xcalloc(argc, sizeof(char *));

Hinweis: Wenn die ctags diese Funktion nicht finden konnten, erhalten Sie die folgende Meldung in der vim-Statusleiste unten:E426-Tag nicht gefunden ssh_xcalloc

3. Zurück zum Funktionsaufruf aus der Definition mit Strg + t

Drücken Sie STRG + t, um wieder zum Funktionsaufruf zurückzukehren.

4. Navigieren durch eine Liste von Funktionsnamen mit ähnlichen Namen

In diesem Beispiel geht :ta zu der Funktionsdefinition, deren Name mit get beginnt, und erstellt auch eine Liste zum Navigieren mit den relevanten Funktionen.

# vim mycprogram.c

:ta /^get

Die folgenden vim-Befehle können verwendet werden, um durch relevante Funktionen zu navigieren

  • :ts – zeigt die Liste.
  • :tn – geht zum nächsten Tag in dieser Liste.
  • :tp – geht zum vorherigen Tag in dieser Liste.
  • :tf – geht zu der Funktion, die an erster Stelle der Liste steht.
  • :tl – geht zu der letzten Funktion in der Liste.

III. Taglist-Plugin:Vim-Editor als ultimativer Quellcode-Browser

Die obigen Ctags haben möglicherweise kein Gefühl beim Durchsuchen des Quellcodes vermittelt, da es von Befehlen gesteuert wird, anstatt den Code visuell zu durchsuchen. Wenn Sie also wie im Dateibrowser durch die Quelle navigieren möchten, müssen Sie das vim Taglist-Plugin verwenden, das vim als Quellcode-Browser macht.

Autor des Vim-Taglist-Plugins Yegappan Lakshmanan, sagt darüber als

Das „Tag List“-Plugin ist ein Quellcode-Browser-Plugin für Vim und bietet einen Überblick über die Struktur von Quellcode-Dateien und ermöglicht Ihnen ein effizientes Durchsuchen von Quellcode-Dateien für verschiedene Programmiersprachen.

Schritt 1:Laden Sie das Vim Taglist-Plugin herunter

Laden Sie es wie unten gezeigt von der Website vim.org herunter.

$ cd /usr/src

$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

Schritt 2:Installieren Sie das TagList-Vim-Plugin

$ mkdir ~/.vim # if the directory does not exist already

$ cd ~/.vim

$ unzip /usr/src/taglist.zip
Archive:  /usr/src/taglist.zip
  inflating: plugin/taglist.vim
  inflating: doc/taglist.txt

Schritt 3:Aktivieren Sie das Plugin in ~/.vimrc

Fügen Sie die folgende Zeile zu ~/.vimrc hinzu, um das Plugin für den Vim-Editor zu aktivieren.

$ vim ~/.vimrc
filetype plugin on

Voraussetzung: ctags sollte installiert sein, um das Taglist-Plugin zu verwenden. Aber es ist kein Muss, die Tag-Liste manuell mit dem ctags-Befehl zu generieren, um das Taglist-Plugin zu verwenden.

IV. 5 leistungsstarke Funktionen des Taglist-Vim-Plugins

1. Öffnen Sie das Tag-Listenfenster in Vim mit :TlistOpen

# vim mycprogram.c
:TlistOpen

Führen Sie im vim-Editor :TlistOpen wie oben gezeigt aus, wodurch das Tag-Listenfenster mit den Tags der aktuellen Datei geöffnet wird, wie in der Abbildung unten gezeigt.


Abb: Vim – Quellcode-Tag/Funktionsliste Windows

2. Zur Funktionsdefinition innerhalb eines Quellcodes springen

Durch Klicken auf den Funktionsnamen im linken Bereich können Sie zur Definition der Funktion gehen, wie in der Abbildung unten gezeigt.


Abb.: Schnell zu einer Funktionsdefinition springen

Neben dem schnellen Sprung zu den Funktionsnamen können Sie zu Klassen, Strukturen, Variablen etc. springen, indem Sie auf die entsprechenden Werte im Tag-Browser auf der linken Seite klicken.

3. Zur Funktionsdefinition springen, die sich in einer anderen Quelldatei befindet

Wenn Sie eine Funktion in einer Quelldatei durchlaufen und zu der Funktionsdefinition gehen möchten, die sich in einer anderen Datei befindet, können Sie dies auf zwei verschiedene Arten tun.

Methode 1:

Wenn Sie die ctags für diese Datei generiert haben, bringt Sie das Drücken von STRG + ] zur Funktionsdefinition, wenn sich der Cursor im Funktionsaufruf befindet. Und automatisch zeigt das Tag-Listenfenster die Tags für diese neu geöffnete Datei.

Methode 2:

Öffnen Sie auch eine andere Datei in derselben vim-Sitzung, wodurch das Tag-Listenfenster mit den Informationen über diese Datei aktualisiert wird. Suchen Sie nach diesem Funktionsnamen im Tag-Listenfenster und durch Drücken von auf diesen Funktionsnamen im Tag-Listenfenster können Sie zur Funktionsdefinition gehen.

4. Anzeigen des Prototyps/der Signatur von Funktionen oder Variablen.

Drücken Sie die Leertaste im Funktionsnamen oder im Variablennamen im Tag-Listenfenster, um den Prototyp (Funktionssignatur) davon in der VIM-Statusleiste anzuzeigen, wie unten gezeigt. Klicken Sie im folgenden Beispiel auf die Funktion selectDumpableTable im Tag-Fenster und drücken Sie die Leertaste, wodurch die Funktionssignatur für die Funktion selectDumptableTable in der unteren Vim-Statusleiste angezeigt wird.


Abb.: Anzeige der Funktionssignatur in der Vim-Statusleiste

5. Anzeigen der Gesamtzahl von Funktionen oder Variablen in einer Quellcodedatei

Drücken Sie die Leertaste im Tag-Typ im Tag-Listenfenster, das die Anzahl davon anzeigt. Wenn sich der Cursor im Beispiel unten auf „Funktion“ befindet, drücken Sie die Leertaste, wodurch die Gesamtzahl der Funktionen im aktuellen Quellcode angezeigt wird.


Abb.: Zeigt die Gesamtzahl der im Quellcode verfügbaren Funktionen an

Informationen zum effektiven Schreiben neuer Quellcodedateien mit Vim finden Sie in unseren früheren Artikeln:

  • Machen Sie Vim als Ihre Perl-IDE mit dem Plugin perl-support.vim
  • Machen Sie Vim mit dem c.vim-Plugin zu Ihrer C/C++-IDE
  • Machen Sie Vim als Ihre Bash-IDE mit dem bash-support Plugin.

Empfohlene Lektüre

Vim 101 Hacks, von Ramesh Natarajan . Ich bin ein Kommandozeilen-Junkie. Also bin ich natürlich ein großer Fan von Vi- und Vim-Editoren. Vor einigen Jahren, als ich viel C-Code unter Linux geschrieben habe, habe ich alle verfügbaren Vim-Editor-Tipps und -Tricks gelesen. Basierend auf meiner Vim-Editor-Erfahrung habe ich das Vim 101 Hacks eBook geschrieben, das 101 praktische Beispiele zu verschiedenen erweiterten Vim-Funktionen enthält, die Sie im Vim-Editor schnell und produktiv machen werden. Auch wenn Sie Vi und Vim Editors seit mehreren Jahren verwenden und dieses Buch noch nicht gelesen haben, tun Sie sich bitte einen Gefallen und lesen Sie dieses Buch. Sie werden von den Möglichkeiten des Vim-Editors begeistert sein.

Tolle Vim-Editor-Artikel

Im Folgenden finden Sie einige großartige Vi/Vim-Editor-Tutorials die Sie vielleicht hilfreich finden.

  • 12 leistungsstarke Suchen- und Ersetzen-Beispiele für den Vim-Editor
  • Vi- und Vim-Makro-Tutorial:Aufnehmen und Abspielen
  • Turboladen Sie den Firefox-Browser mit der Vim-Editor-Funktionalität mit dem Vimperator-Add-on auf

Hinweis: Bitte abonnieren Sie The Geek Stuff und verpassen Sie keine zukünftigen Tipps und Tricks für Vi- und Vim-Editoren .


Linux
  1. MuditaOS:Ein schönes und minimalistisches mobiles Open-Source-Betriebssystem für Feature-Phones

  2. vifm:Ein Terminal-Dateibrowser für eingefleischte Vim-Liebhaber

  3. Pitivi – Ein kostenloser Open-Source-Videoeditor für Linux

  4. Holen Sie sich den Quellcode für jeden Linux-Befehl

  5. Wie finde ich die Aufrufer und Aufgerufenen einer Funktion im C-Code in vi/vim?

5 Open-Source-Renn- und Flugspiele für Linux

So speichern Sie eine Datei in Vim / Vi und beenden den Editor

Nützliche Vim-Editor-Plugins für Softwareentwickler - Teil 1

Visual Studio Code – Ein kostenloser und Open-Source-Code-Editor für Ubuntu

Was ist Python:Eine Einführung in eine plattformübergreifende Programmiersprache

Vi und Vim Editor:5 fantastische Beispiele für die automatische Wortvervollständigung mit Ctrl-X Magic