Hinzufügen von Text am linken Rand

7

Gibt es eine einfache Möglichkeit, Text am linken Rand eines VIM-Dokuments (links von den Zeilennummern) hinzuzufügen?

Ich weiß, dass dies möglich ist, weil Plugins wie vim-Signatur dies tun, aber ich bin gespannt, wie dies gemacht wird und wie dies am einfachsten wäre.

Steven Hall
quelle

Antworten:

10

Ich denke, was Sie meinen, wird von vim als Zeichen bezeichnet.

Das Hinzufügen eines Zeichens scheint ein zweistufiger Prozess zu sein. Zuerst definieren Sie, wie es aussieht, und platzieren es dann an der gewünschten Stelle.

Die grundlegende Syntax zum Definieren eines Zeichens lautet:

:sign define {name} {argument}...

Wo {argument}...ist eine Reihe von Argumenten, die Sie wählen können:

  • icon= vollständiger Pfad zu einem Symbol
  • linehl= Markierungsgruppe für die gesamte Zeile, auf der Sie das Zeichen platzieren
  • text= Text, der angezeigt werden soll, wenn kein Symbol vorhanden ist oder Sie vim in einem Terminal ausführen
  • texthl= Markierungsgruppe für text

So platzieren Sie Ihr Zeichen, sobald Sie es definiert haben:

:sign place {id} line={lnum} name={name} file={fname}
  • {id} ist eine beliebige Zahl, mit der Sie das Zeichen später bearbeiten können
  • {lnum}und {fname}sind jeweils die Zeilennummer und die Datei, in der Sie Ihr Zeichen platzieren möchten
  • {name} ist der Name Ihres Zeichens

So listen Sie Ihre Zeichen auf und sehen ihre Attribute:

:sign list

So entfernen Sie ein Zeichen:

:sign unplace {id} file={fname}

Anwendungsbeispiel

:sign define mysign text=>> texthl=Search

... definiert das Zeichen mysign, das den Text >>mit den Farben aus der Hervorhebungsgruppe anzeigt Search.

Angenommen, Sie bearbeiten die Datei /tmp/foo, können Sie Ihr Zeichen in der 10. Zeile platzieren mit:

:sign place 9999 line=10 name=mysign file=/tmp/foo

Hier wurde die ID 9999 gewählt.

Um das soeben platzierte Schild zu entfernen:

:sign unplace 9999 file=/tmp/foo

Es gibt viele andere Möglichkeiten, ein Zeichen zu definieren, zu platzieren und zu entfernen.
Weitere Informationen finden Sie unter:

:help sign-commands
:help :sign-define
:help :sign-undefine
:help :sign-list
:help :sign-place
:help :sign-unplace
:help :sign-place-list
:help :sign-jump
saginaw
quelle
1
Genau das habe ich gesucht :) ... Ich wollte es ursprünglich aus Neugier wissen und auch, weil ich vim-Signatur und gitgutter für vim verwende, aber beide verwenden die Zeichenspalte. Ich wollte sehen, ob ich eine zusätzliche Zeichenspalte hinzufügen kann, damit ich die Informationen von beiden Plugins gleichzeitig verwenden kann, aber es scheint, dass dies nicht möglich ist. Ich habe festgestellt, dass die vim-Signatur ein Flag hat, das Sie setzen können und das dabei hilft. Sehen Sie sich das Problem an, das ich hier geöffnet habe und das auch meine Lösung und einen Link zu dem Commit enthält, das ich auf meinem vimrc vorgenommen habe, um es zu verwenden.
Steven Hall