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.