Wie zeige ich die aktuelle Spalte in der Statusleiste in vim an?

128612
Jonas

Ich möchte die aktuelle Spalte in der Statusleiste anzeigen, wie es in vielen anderen Texteditoren üblich ist. ZB ist es gut zu wissen, ob Sie sich in der Spalte 80 oder darüber befinden.

Wie wird die aktuelle Spalte in der Statusleiste angezeigt?

160
Wenn Sie die aktuelle Spalte des Cursors anzeigen möchten, geben Sie Folgendes ein: echo col ('.'). SibiCoder vor 8 Jahren 0

6 Antworten auf die Frage

192
Birei

Versuchen Sie, wenn Sie die Option "Lineal" einstellen. Auf meinem Computer rechts unten wird die Zeile und Spalte angezeigt, in der sich der Cursor befindet.

:set ruler 

BEARBEITEN AN KOMMENTARE :

Aus der Hilfe von vim (Befehl :help ruler):

Wenn die Anzahl der angezeigten Zeichen von der Anzahl der Bytes im Text abweicht (z. B. für ein TAB oder ein Multibyte-Zeichen), werden sowohl die Textspalte (Bytes) als auch die Bildschirmspalte mit einem Bindestrich angezeigt.

Sie können es mit der rulerformatOption ändern, z:set rulerformat=%l,%v

Ja, irgendwie. Aber das zeigt einen seltsamen Wert, zum Beispiel "23,62-68". 23 scheint die Linie zu sein. Wie soll ich 62-68 für die Spalte interpretieren? Jonas vor 12 Jahren 0
62 zählt Registerkarten als ein Zeichen, 68 zählen erweiterte Registerkarten RedGrittyBrick vor 12 Jahren 7
Vom Befehl ': help ruler': "Wenn die Anzahl der angezeigten Zeichen von der Anzahl der Bytes im Text abweicht (z. B. für ein TAB oder ein Multibyte-Zeichen), sowohl die Textspalte (Byteanzahl) als auch der Bildschirm Spalte sind mit einem Bindestrich getrennt dargestellt. " Sie können versuchen, es mit der Option 'Linealformat' zu ändern, z. B. ': Set rulerformat =% l,% v' Birei vor 12 Jahren 1
`Herrscher` funktioniert nicht mit geteilten Fenstern in Vim. Mihai vor 8 Jahren 0
@Jonas Nicht nur Tabulatoren, wie RedGrittyBrick gesagt hat, sondern auch Zeichen und Bytes. Dies ist sehr deutlich in UTF-8-Dateien, in denen eine Glyphe mit einem Zeichen einen Multibyte-Codepunkt hat. Beispielsweise ist das lateinische eñe (n mit Tilde darüber, ausgesprochen EN-yea) eine Glyphe mit einem einzelnen Zeichen, aber es werden zwei Bytes benötigt, um den Codepunkt (\ xC3B1) darzustellen, und ein Drittel (1/3) ist eine Glyphe mit einem einzelnen Zeichen mit einem 3-Byte-Codepunkt (\ xE28593). Luv2code vor 6 Jahren 0
26
romainl

Sehen Sie :help statuslinefür die vielen verfügbaren Optionen.

Ich habe dies in ~/.vimrceiner Reihe von anderen Anweisungen:

set statusline+=col:\ %c, 

welche Ausgänge

col: 64 

in meiner Statuszeile.

Ich habe keine set ruler.

Das funktioniert bei mir nicht. Ich brauche wahrscheinlich noch mehr Einstellungen. Jonas vor 12 Jahren 1
Jonas, Sie müssen möglicherweise das `` set laststatus = 2`` in Ihrem `` .vimrc`` verwenden, um immer die Statuszeile anzuzeigen. (0 -> niemals die Statuszeile anzeigen, 1 -> nur wenn mindestens zwei Fenster vorhanden sind, 2 -> immer die Statuszeile anzeigen). pabuisson vor 10 Jahren 3
Ich habe Folgendes verwendet, um vor diesem und dem vorherigen Zeug in der Statuszeile Platz zu schaffen: set statusline + = \ col: \% c, David Baucum vor 9 Jahren 0
17
ma11hew28

Lassen Sie "Lineal" nicht gesetzt, eine Leistungssteigerung und drücken Sie STRG-G, wenn Sie die aktuelle Spalte sehen möchten.

Das Drücken von Strg-Anything klingt nicht nach einer Leistungssteigerung. Wir schreiben Zeichen. Kein Mensch hat Finger und Augen, die schnell genug fliegen, um diese Leistungsunterschiede zu erkennen. macetw vor 7 Jahren 2
17
Peter

Eine andere Möglichkeit ist, g 'Strg-G' auszuführen, wodurch die aktuelle Position des Cursors auf fünf Arten gedruckt wird: Spalte, Linie, Wort, Zeichen und Byte. (von http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )

Diese Lösung hat etwas Ordentliches, das Column und VisibleColumn unterscheidet. Nicht druckbare Zeichen werden 2 Spalten angezeigt, sollten jedoch als eine gezählt werden. Bei nicht druckbaren Zeichen sieht die Ausgabe folgendermaßen aus: `RealColumn-VisibleColumn, Line, Word, Character und Byte`. mxlian vor 8 Jahren 0
9
Giovanni Macciocu

Ich würde das Set-Lineal abwerten, weil ich glaube, dass es nicht mit den Statuszeilenoptionen kompatibel ist, z. B. wenn Sie die Statuszeile so einstellen, dass der vollständige Dateipfad in Kombination mit dem Set-Lineal angezeigt wird

set statusline+=%F

set ruler

Dann wird NICHT die Spaltennummer angezeigt, sondern nur der vollständige Dateipfad in der Statusleiste. Wenn Sie jedoch Folgendes in Ihre .vimrc einfügen

set statusline+=%F\ %l\:%c

Es wird alles korrekt angezeigt, nämlich die

[Dateipfad / Dateiname] [Leinennummer]: [Spaltennummer]

2
Jay

Für die anderen Personen, die nach dieser Antwort suchen und nicht an die Arbeit mit VIm gewöhnt sind, ist die einfachste Antwort, die ich gefunden habe, diese Zeile am Ende Ihrer .vimrc-Datei in Ihrem Home-Verzeichnis hinzuzufügen:

set ruler