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?


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


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).


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
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.