So springen Sie direkt zu einer Spaltennummer in Vim

234

Manchmal muss ich zum Debuggen den aufregenden Job machen, durch minimierten Javascript-Code zu waten. Die Zeilen sind bis zu 600 Spalten breit. Die Ausnahmemeldungsbibliothek ist so freundlich, mir die genauen Absturzkoordinaten in Form von Zeilennummer und Spaltennummer bereitzustellen. Ich kann jedoch keinen Weg finden, direkt zur Spaltennummer zu springen, obwohl ich so einfach zur Zeile springen kann.

Wie kann ich es tun?

Jayesh
quelle
Es klingt so, als ob ein Werkzeug erfunden werden muss. "Deminifiziere mein js und springe, während du dabei bist, zu der Stelle, die durch diese Spaltennummer identifiziert wird."
dnellis74
2
@ dnellis74 Dieses Tool existiert. Es heißt "Sourcemaps";)
Burgi
//, @Burgi, kann Haz 3 Wort Zusammenfassung & Link?
Nathan Basanese

Antworten:

333

Der |Befehl macht, was Sie wollen, und 30|bringt Sie zu Spalte 30.

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar

AB
quelle
41
Beachten Sie für den allgemeinen Gebrauch, dass dies eine Bildschirmspalte und keine echte Spalte ist. Dies bedeutet, dass <Tab>Zeichen unterschiedliche Ergebnisse erhalten. Wenn diese Zeichen dort sein werden, werden Sie stattdessen |30lhoder |29loder 029loder so etwas wollen .
Chris Morgan
25
Sie können auch eine Zahl übergeben, bevor verschiedene Bewegungsbefehle, z. B. 50h50 Zeichen nach links verschoben werden.
AB
7
:set nowrapkann auch dazu beitragen, die Verwirrung zwischen Bildschirmzeilen und Dateizeilen zu verringern.
David Pope
4
@DavidPope: Beachten Sie, dass in diesem Fall "Bildschirmspalten" bedeuten, dass es sich immer noch um den Zeilenanfang handelt. g0erreicht "Start der aktuellen Bildschirmzeile".
Chris Morgan
10
Die Vim-Dokumentation ist urkomisch: "Ceci n'est pas une pipe" :-)
Avinash Meetoo
45

Sie können die cursorFunktion verwenden. Um beispielsweise zu Spalte 25 in Zeile 15 zu springen, können Sie verwenden :call cursor(15,25).

Ravikant Mähne
quelle
2
Dies gibt eine Antwort auf die Frage und es ist praktisch, die Ex-Befehlsalternative für die Skripterstellung zu haben. Beachten Sie, dass der Cursor in der aktuellen Zeile bleibt, wenn die Zeilennummer Null ist.
Giles Gardam
Dies ist besonders gut zum Öffnen von Vim über andere Tools geeignet, da dieser Aufruf über die Befehlszeile erfolgen kann:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves
5

Eine alternative Antwort, die für mich unter Mac OS funktioniert, besteht darin, den Befehl zu verwenden, mit dem der Cursor nach rechts bewegt wird (dh l). Wenn sich Ihr Cursor also in der ersten Spalte befindet und Sie den Cursor in Spalte 50 Ihrer aktuellen Zeile platzieren möchten, verwenden Sie den folgenden Befehl:

49l
entpnerd
quelle