Jak przejść bezpośrednio do numeru kolumny w Vimie

234

Czasami do celów debugowania muszę wykonać ekscytującą robotę brodząc przez zminimalizowany kod javascript. Linie mają szerokość do 600 kolumn. Biblioteka raportowania wyjątków jest na tyle uprzejma, że ​​zapewnia mi dokładne współrzędne awarii w postaci numeru linii i numeru kolumny. Jednak nie mogę znaleźć sposobu, aby przejść bezpośrednio do numeru kolumny, nawet jeśli mogę łatwo przejść do linii.

Jak mogę to zrobić?

Jayesh
źródło
Brzmi jak to narzędzie, które należy wynaleźć. „Objaśnij moją wersję js, a gdy już będziesz na niej, przeskocz do miejsca oznaczonego numerem kolumny”.
dnellis74
2
@ dnellis74 To narzędzie istnieje. Nazywa się to „sourcemaps”;)
Burgi
//, @Burgi, czy Haz 3 słowa podsumowanie i link?
Nathan Basanese

Odpowiedzi:

333

|Komenda robi to, co chcesz, jak w 30|zabierze Cię do kolumny 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
źródło
41
Pamiętaj, że do ogólnego użytku jest to kolumna ekranowa , a nie rzeczywista . Oznacza to, że <Tab>postacie otrzymają różne wyniki. Jeśli te postacie będą istnieć, będzie zamiast chcą |30lhlub |29llub 029llub coś podobnego.
Chris Morgan
25
Możesz także przekazać liczbę przed różnymi poleceniami ruchu, np. 50hPrzeniesie 50 znaków w lewo.
AB
7
:set nowrapmoże również pomóc zmniejszyć zamieszanie między liniami ekranu i liniami plików.
David Pope
4
@DavidPope: zwróć uwagę, że w tym przypadku „kolumny ekranowe” oznaczają, że nadal odnosi się do początku linii. g0osiąga „początek bieżącej linii ekranu”.
Chris Morgan
10
Dokumentacja vima jest przezabawna: „Ceci n'est pas une pipe” :-)
Avinash Meetoo
45

Możesz użyć tej cursorfunkcji. Na przykład, aby przejść do kolumny 25 wiersza 15, możesz użyć :call cursor(15,25).

Ravikant Mane
źródło
2
To daje odpowiedź na pytanie i wygodnie jest mieć alternatywną komendę Ex dla skryptów. Zauważ, że jeśli numer linii wynosi zero, kursor pozostanie w bieżącej linii.
Giles Gardam
Jest to szczególnie miłe przy otwieraniu Vima z innych narzędzi, ponieważ to wywołanie można wykonać z wiersza poleceń:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves
5

Alternatywną odpowiedzią, która działa dla mnie w systemie Mac OS, jest użycie polecenia, które przesuwa kursor w prawo (tj l.). Jeśli więc kursor znajduje się w pierwszej kolumnie, a chcesz umieścić kursor w kolumnie 50 bieżącego wiersza, użyj polecenia:

49l
entpnerd
źródło