Aus Linux-Magazin 05/2025

Chatbot-Plugin Copilot.vim für den Editor Vim

© Yuriy Nedopekin / 123RF.com

Immer mehr Anwendungen integrieren Schnittstellen zu KI-Chatbots. Die erweisen sich sogar in Programmierumgebungen als nützliche und praktische Hilfsmittel. Mit dem Copilot-Plugin profitieren Sie davon auch im Editor-Urgestein Vim.

Obwohl der Editor Vim möglicherweise seine besten Jahre mittlerweile bereits hinter sich hat, zählt er immer noch zu den leistungsfähigen und zuverlässigsten Vertretern der Gattung. Die hitzigen Flamewars zwischen Vim- und Emacs-Fans sind längst abgekühlt, das Urgestein Vim erfreut sich nach wie vor einer überaus großen Nutzerschar.

Viele Anwender setzen den Editor als digitales Schweizer Taschenmesser für jede nur vorstellbare Anwendung ein. Allerdings liefern nicht alle modernen Distributionen ihn standardmäßig aus, in den meisten Fällen müssen Sie Vim nach einer Neuinstallation manuell hinzufügen. Das gilt auch für das aktuelle Ubuntu 24.04 LTS, auf das sich dieser Beitrag bezieht.

Derzeit gibt es eine nur schwer überschaubare Vielzahl an Lösungen und Ansätzen, um Vim mit einer Schnittstelle zu populären KI-Chatbots auszustatten. Das macht die Auswahl nicht gerade leicht. Letztlich dürfte sich jeder Anwender wohl für eine Variante entscheiden, die seiner individuellen Arbeitsweise entgegenkommt und seinen Arbeitsbedingungen möglichst weitgehend entspricht.

Die derzeit für Vim zur Verfügung stehenden Plugins stellen die Verbindung zu einem KI-Chatbot in der Regel über den Zugriff auf dessen standardisierte API her. Dafür fallen in aller Regel Kosten von 10 Euro pro Monat oder mehr an. Der genaue Betrag hängt vom gewählten KI-Modell und der Leistungsfähigkeit der Schnittstelle ab. Die Eigenschaften und Möglichkeiten einer KI-Anbindung unterscheiden sich dabei im Detail deutlich. Der Kasten “Programmierhilfen durch künstliche Intelligenz” fasst die wichtigsten Anforderungen zusammen, die Entwickler an eine KI stellen.

Programmierhilfen durch künstliche Intelligenz

  • Unterstützung einer korrekten Sprachsyntax (“Coding and Editing”)
  • Generieren von Programm-Templates
  • Umstrukturierung (“Code Refactoring”)
  • Codevervollständigung
  • differenziertes Highlighting
  • automatisches Annotieren
  • Erstellen von Unit-Tests
  • Chats (klassisches Prompting)
  • fliegender Wechsel der Chatbots

Vorbereitung

Nicht zuletzt aus Platzgründen konzentriert sich dieser Artikel auf ein einzelnes Plugin unter den vielen verfügbaren Vertretern der Gattung. Für die Auswahl war entscheidend, dass das vorgestellte Exemplar nur geringe Anforderungen stellt und darüber hinaus für sehr viele Benutzer kostenlos zugänglich ist. Die im Folgenden verwendete Bezeichnung Copilot für das hier vorgestellte Plugin bezieht sich auf das gleichnamige Produkt von Microsoft, das dabei den KI-Chatbot stellt.

Allerdings greift das hier vorgestellte Plugin »copilot.vim« nicht direkt auf das API des Microsoft-Bots zu, sondern bedient sich vielmehr der Copilot-Integration der Plattform Github [1]. Um diese Möglichkeit zu nutzen, müssen Sie über ein Github-Konto verfügen, das sich kostenlos einrichten lässt. Zudem müssen Sie einer der Gruppen Schüler, Studenten, Lehrer oder Open-Source-Programmierer (letztere mit zumindest einem Repository auf Github) angehören. Es gilt, diese Zugehörigkeit gegenüber Github nachzuweisen, was via Github Education [2] in der Regel jedoch ohne Schwierigkeiten vonstattengeht. Danach begrüßt Github Sie per E-Mail als aktives Mitglied der Gruppe Github Education, und Sie können mit dem Einrichten des Plugins beginnen.

TIPP

Eine recht gute Übersicht zu einigen weiteren Ansätzen, den Editor Vim mit den populären KI-Chatbots zu verbinden, finden Sie bei Interesse auf Github [4].

Installation

Sollten Sie Vim noch nicht installiert haben, ist nun der Zeitpunkt dafür gekommen. Die Vorgabe dabei lautet, den Editor in der Version 9.0.0185 oder neuer einzurichten; Ubuntu 24.04 liefert Vim in der Version 9.1 aus. Je nach Geschmack können Sie auch zur kompatiblen Alternative Neovim greifen. Falls Sie sich nicht entscheiden können, dürfen auch beide parallel im System landen. Dann müssen Sie das Plugin allerdings für beide getrennt einrichten. Im Folgenden gehe ich davon aus, dass Vim oder seine grafische Ausführung Gvim zum Einsatz kommt. Beide greifen auf dieselben Einstellungen und damit auch auf dasselbe Plugin zu.

Für eine frische Installation richten Sie erst einmal Curl, Git und Vim selbst ein (Listing 1, erste Zeile). Als Nächstes folgt die Javascript-Laufzeitumgebung Node.js. Dazu benötigen Sie zunächst den Node Version Manager Nvm (Zeile 2 und 3). Über ihn ziehen Sie dann die Javascript-Runtime nach (Zeile 4) und überprüfen anschließend die Installation (Zeile 5 bis 8). Schließlich fehlt noch das eigentliche Plugin, das sie von der Github-Seite beziehen (Zeile 9).

Listing 1

Vorarbeiten

$ sudo apt install curl git vim-gtk3
$ curl -o- https://raw.githubusercontent.com/nvm-sh/ nvm/v0.40.1/install.sh | bash
$ source ~/.bashrc
$ nvm install 22
$ node -v
v22.13.0
$ nvm current
v22.13.0
$ git clone https://github.com/github/copilot.vim.git ~/.vim/pack/github/start/copilot.vim

Der erste Start

Damit stehen sämtliche benötigten Komponenten bereit. Beim ersten Start gilt es, das Plugin mit dem Github-Konto zu verknüpfen. Sie sollten an dieser Stelle also über einen aktiven Github-Account verfügen und Mitglied von Github Education sein.

Starten Sie den Editor Vim beziehungsweise Gvim und rufen Sie das Plugin für das Einrichten über das Kommando »:Copilot setup« auf. Anschließend wird Ihnen ein einmaliger gerätespezifischer Code angezeigt, den Sie für die Verbindung mit Github benötigen. Die Syntax entspricht dem Schema XXXXYYYY, lautet also beispielsweise »8834-2A3F«. Notieren Sie den Code für die weiteren Schritte.

Mit der Eingabetaste öffnen Sie über den gewählten Standard-Browser des Systems die entsprechende Github-Seite und geben dort diesen achtstelligen Code ein. Hat alles geklappt, erscheint die Anzeige, dass Ihr Gerät mit dem Account verknüpft ist: “Congratulations, you’re all set!”

Mit dem Plugin arbeiten

Wollen Sie Copilot zu einem Code-Beispiel befragen oder via Prompt chatten, markieren Sie den entsprechenden Codeabschnitt im Editor oder schreiben Ihren Prompt und markieren ihn. Rufen Sie anschließend »:Copilot panel« auf. Damit übergeben Sie den markierten Abschnitt dem KI-Chatbot. Daraufhin teilt sich das Anzeigefenster des Editors, und die Ausgabe des Bots erscheint.

Abbildung 1 zeigt sehr allgemein gehaltene Anfragen an Copilot. Zuerst wollte ich den Unterschied zwischen den Begriffen Ruhe und Stille wissen. Der Chatbot lieferte dafür mehrere Antwortmöglichkeiten. Die für mich passende habe ich durch einen Druck auf die Eingabetaste in das Anfragefenster übernommen. Auf die zweite Frage “Was ist der Unterschied zwischen den Begriffen Wörter und Worte?” lieferte Copilot zehn mögliche Antworten. Eine davon könnte man nun wieder mit der Eingabetaste aus dem Panel in das aktive Fenster übernehmen.

Abbildung 1: Die erste Anfrage an Copilot mittels Prompt im Editor Gvim.

Abbildung 1: Die erste Anfrage an Copilot mittels Prompt im Editor Gvim.

Copilot.vim kennt im Gegensatz zu anderen Plugins keine eigene Chat-Zeile. Vielmehr gibt es das Anfragefenster sowie die Antwort in der geteilten Anzeige, dem Panel. Diese ein wenig unpraktische Einschränkung können Sie aber einfach dadurch umgehen, dass Sie ein weiteres Fenster innerhalb der Editoranzeige öffnen. Damit steht Ihnen ein Fenster für den Code oder Text zur Verfügung, an dem Sie gerade arbeiten, ein zweites für die Anfragen und die roh übernommenen Antworten und ein drittes für das Panel, das die jeweilige Ausgabe des Bots anzeigt. Aber Achtung: Jeder neue Panel-Aufruf öffnet ein weiteres Fenster, das Sie nach erfolgter Auswertung wieder schließen sollten.

In Abbildung 2 liefert Copilot die passende Antwort auf die Nachfrage, wie man in der Programmiersprache Perl eine Datei öffnet. Während im vorigen Beispiel die Anfrage in Gvim gestellt wurde, erfolgte sie hier in Vim, der in einem Standard-Terminal geöffnet wurde.

Abbildung 2: Das Copilot-Plugin liefert die Ausgabe des Chatbots auch im Editor Vim im Terminal.

Abbildung 2: Das Copilot-Plugin liefert die Ausgabe des Chatbots auch im Editor Vim im Terminal.

Neben den bereits verwendeten Kommandos »:Copilot setup« und »:Copilot panel« hat sich »:Copilot disable« als hilfreich und vor allem als notwendig herausgestellt. Ist nämlich die Verbindung zu Github gestört, moniert das Plugin diese Tatsache in sehr kurzen Abständen, was ein sinnvolles Weiterarbeiten im Editor praktisch unmöglich macht. In einem solchen Fall deaktivieren Sie die Connection am besten vorübergehend und nehmen Sie nach dem Wegfall der Verbindungsprobleme mit »:Copilot enable« wieder in Betrieb.

Abbildung 3 zeigt als weiteres Beispiel die von Copilot vorgeschlagene Umkodierung eines Perl-Skripts in die Programmiersprache C. Der Prompt dazu lautete: “Please write the following Perl code in C.” Auf weitere Nachfrage gibt das Panel des Plugins nicht nur den passenden Quellcode heraus, sondern liefert als Zugabe gleich noch den Befehl, mit dem Sie dieses Programm im GNU C Compiler kompilieren.

Abbildung 3: Hier erledigt Copilot das Umwandeln eines Perl-Skripts in ein kompilierbares C-Programm.

Abbildung 3: Hier erledigt Copilot das Umwandeln eines Perl-Skripts in ein kompilierbares C-Programm.

Zusatzfunktionen

Unit-Tests gehören in der Programmierung zu den üblichen Methoden, um die Qualität von Programmcode zu heben und abzusichern. Während andere Plugins eigene Befehle kennen, um den Quellcode an den Chatbot zu übergeben und schnell passende Unit-Tests zu erstellen, müssen Sie bei Copilot.vim dazu das allgemeine Chat-Panel heranziehen. Der Aufwand dafür bleibt allerdings überschaubar: Das Plugin hilft dabei, einen für eine solche Anwendung sinnvollen Prompt zu formulieren.

Abbildung 4: Copilot.vim hilft beim Erstellen von Unit-Tests für die eigene Software.

Abbildung 4: Copilot.vim hilft beim Erstellen von Unit-Tests für die eigene Software.

Bei aktiviertem Copilot-Panel ist die Codevervollständigung für die allermeisten Programmiersprachen automatisch aktiviert. Sie funktioniert auch bei Textauszeichnungssprachen wie HTML, XML und diversen Wiki-Dialekten sowie beim Codieren von LaTeX-Dokumenten. Die vorgeschlagenen Ergänzungen übernehmen Sie durch einen Druck auf die Tabulatortaste.

Allerdings beginnt die Vervollständigung erst zu arbeiten, wenn Sie das Programm oder den Text unter einem Namen mit der entsprechenden Endung speichern. Ein Perl-Skript muss also beispielsweise als »Skript.pl« vorliegen, ein C-Programm als »Programm.c« und ein LaTeX-Dokument als »Dokument.tex«. Das Einfügen eines Shebangs im Datei-Header (für Perl zum Beispiel »#!/usr/bin/perl«) allein genügt dafür nicht (siehe Abbildung 4).

Die Vervollständigung greift nicht nur beim Erstellen von Code, sondern auch beim Schreiben von Programmausgaben und Kommentaren. Dabei greift das Plugin auf häufig vorkommende Phrasen in der Programmkommentierung zurück, was recht zuverlässig funktioniert und ein wenig Tipparbeit erspart. In Abbildung 5 erscheint in Zeile 20 des Programms die vom Plugin vorgeschlagene Codevervollständigung noch ausgegraut. Durch einen Druck auf die Tabulatortaste übernehmen sie gegebenenfalls den Vorschlag.

Abbildung 5: Die Codevervollständigung in einem Perl-Skript greift auch bei Programmausgaben und Kommentaren.

Abbildung 5: Die Codevervollständigung in einem Perl-Skript greift auch bei Programmausgaben und Kommentaren.

Fazit

Der Einsatz künstlicher Intelligenz bringt für einen Programmierer durchaus gewisse Vorteile. Davon können Sie auch im Editor Vim profitieren, indem Sie das Copilot-Plugin installieren. Damit liefert der Chatbot rasch in der Regel verlässliche Codebeispiele und Snippets, die Sie ohne Umwege in das Eingabefenster des Editors übernehmen. Ganz nebenbei erklärt der Bot in den meisten Fällen zudem vorhandene oder neu generierte Befehlssequenzen mit gut verständlichen Kommentaren in natürlicher Sprache.

Die Schnittstelle zur AI, die das Copilot-Panel realisiert, unterstützt den Programmierer im besten Fall wie ein kreativer Partner, mit dem man sich natürlichsprachlich unterhält, der zeitsparend arbeitet und repetitive Aufgaben zuverlässig und selbstständig erledigt. Die Kunst des Programmierers liegt dann häufig darin, dem Chatbot durch einen passenden Prompt die zu erledigende Aufgabe möglichst genau zu beschreiben [3].

Ein Nachteil dieser Arbeitsweise liegt sicher darin, dass ein und dieselbe Anfrage stets zu zwar ähnlichen, aber letztlich unterschiedlichen Antworten führt. Das heißt aber auch, dass der Chatbot die einmal gefundene beste Antwort auf eine Fragestellung kein zweites Mal in derselben Form generiert. Daran zeigt sich ein drastischer Unterschied zur klassischen Recherche. Hinzu kommt, dass der Chatbot bei besonders aktuellem Code nicht weiterhelfen kann, da er nicht über Trainingsmaterial verfügt, das dafür aktuell genug wäre.

In der Regel liefert das Copilot-Plugin auf eine Anfrage zehn Antworten, aus denen Sie die am besten passende auswählen. Gelegentlich fällt die Anzahl der Antworten jedoch geringer aus, wobei nicht immer klar ist, woran das liegt. Beim produktiven Arbeiten mit Copilot.vim überraschte ein wenig, dass das Plugin über einige undokumentierte Funktionen verfügt. Letztlich offerierte der Chatbot sie jedoch stets an den richtigen Stellen, was die Stimmung jedes Mal deutlich hob. (jlu)

Der Autor

Dr. Harald Jele, Mitarbeiter an der Universität Klagenfurt, stieß 1993 durch einen glücklichen Zufall auf Linux. Er kann sich seitdem keine IT-Welt mehr ohne Server und Desktops mit dem freien Betriebssystem vorstellen.

Infos

  1. Github Copilot: https://github.com/features/copilot
  2. Github Education: https://github.com/education
  3. ChatGPT für Linux-Admins: Michael Kofler, “Helfende Hand”, LM 02/2025, S. 56, https://www.lm-online.de/51381
  4. “Awesome vim LLM plugins”: https://github.com/jkitching/awesome-vim-llm-plugins
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben