Wie bewege ich den Cursor auf eine bestimmte Zeile und Spalte?


77

:30 bewegt meinen Cursor an den Anfang von Zeile 30.

Wie kann ich Vim anweisen, den Cursor auf Zeile y, Spalte x zu setzen? Ist dies möglich , ohne mit den Pfeiltasten oder h, j,k , lTasten?

Ich verwende Vim Version 7.3.429.

Antworten:


122

Versuchen Sie eine Zahl gefolgt von einer Pipe, um zur angegebenen Spalte in dieser Zeile zu gelangen.

80| sollte Sie auf Position 80 in dieser Zeile bringen.

EDIT: Wenn Sie zu einer bestimmten x, y-Position gehen möchten, bin ich mir bei dieser nicht sicher.


Vielen Dank, ich habe vergessen, das auch hinzuzufügen, wenn ich Ihren Vorschlag verwende. Ich erhalte E16: Ungültiger Bereich> wc temp.txt 3 80 454 temp.txt
— pacv

60
Er meint 80|im normalen Modus nicht :80|. Wenn Sie also eine X-, Y-Koordinate (z. B. 42,80) erhalten möchten, können Sie dies tun 42G80|. Wenn Sie dies über den Befehlszeilenmodus tun möchten, können Sie dies tun :norm 42G80|.
— Conner

Danke, Conner. Ich war mir auch nicht sicher, wie ich genau X, Y machen sollte!
— WebDevNewbie

@Conner Ich mag Ihren Kommentar. Können Sie Ihren Kommentar in eine Antwort umwandeln, damit ich besser sichtbar bin?
— SebMa

84

Ich bin mir nicht sicher, ob es in irgendeiner Weise bequemer ist, aber Sie können die cursorFunktion direkt aufrufen :

:cal cursor(30, 5)

springt zu Zeile 30, Spalte 5.


4
mehr Tastenanschläge als: 30 <CR> 80 |, aber cool zu wissen, dass es eine Cursorfunktion gibt!
— Larry

2
Diese Lösung eignet sich besonders in Kombination mit der +...Befehlszeilenoption: Sie ermöglicht es einem Skript, das in vim aufruft, den Cursor präzise zu positionieren.
— cmaster - wieder einsetzen Monica

Dies ist besonders hilfreich beim Schreiben von Vim-Skripten.
— 11.

25

Im Befehlsmodus:

Geben Sie eine Zahl gefolgt von G (Großbuchstaben) ein, um zu dieser Zeilennummer zu gelangen.
Beispiel: 30G geht zu Zeile 30.
Beispiel: G geht zur letzten Zeile des Puffers.

Geben Sie eine Zahl gefolgt von | ein (Pipe), um zu dieser Spalte in der aktuellen Zeile zu gelangen.
Beispiel: 80 | geht zu Spalte 80.

Also: 30G80 | geht zu Zeile 30, Spalte 80.


1

Eine weitere Option mit execute <line_num>. Zum Beispiel,

function GotoLine(line)
     execute a:line
endfunction
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.