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ć?


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


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.