Як перейти безпосередньо до номера стовпця у Vim


234

Іноді для цілей налагодження мені доводиться виконувати захоплюючу роботу з проникненням через мінімізований код JavaScript. Лінії до 600 стовпчиків завширшки. Бібліотека звітування про винятки достатньо люб'язна, щоб надати мені точні координати збоїв у вигляді номера рядка та номера стовпця. Однак я не можу знайти спосіб безпосередньо перейти до номера стовпця, хоча я так легко переходжу до рядка.

Як я можу це зробити?


Це звучить як інструмент, який потрібно винайти. "Демініфікуйте мій js, і поки ви на ньому, перескочіть на місце, визначене цим номером стовпця."
dnellis74

2
@ dnellis74 Цей інструмент існує. Це називається "sourcemaps";)
Бургі

//, @Бургі, може небезпечний підсумок та посилання на 3 слова?
Натан Басанес

Відповіді:


333

|Команда робить те , що ви хочете, як 30|буде вважати вас до колонку 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
Будьте в курсі для загального використання, що це екранна колонка, а не реальна . Це означає, що <Tab>персонажі отримають різні результати. Якщо ці символи будуть там, ви замість цього хочете |30lhабо |29lабо 029lабо що - щось подібне.
Кріс Морган

25
Ви також можете пройти номер перед різними командами руху, наприклад 50h, перемістіть 50 символів вліво.
AB

7
:set nowrapможе також допомогти зменшити плутанину між рядками екрана та рядками файлів.
Девід Папа

4
@DavidPope: зауважте, що в цьому випадку "екранні стовпці" означають, що це все ще відносно початку рядка. g0досягає "початку поточної лінії екрана".
Кріс Морган

10
Документація vim весела: "Ceci n'est pas une pipe" :-)
Avinash Meetoo

45

Ви можете використовувати cursorфункцію. Наприклад, для переходу до стовпця 25 рядка 15 ви можете використовувати :call cursor(15,25).


2
Це дає відповідь на питання, і зручно мати команду Ex альтернативу для сценаріїв. Зауважте, що якщо номер рядка дорівнює нулю, курсор залишиться у поточному рядку.
Giles Gardam

Це особливо приємно для відкриття Vim з інших інструментів, оскільки цей виклик можна зробити в командному рядку:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves

5

Альтернативна відповідь, яка працює для мене в Mac OS, - це використовувати команду, яка переміщує курсор праворуч (тобто l). Отже, якщо ваш курсор знаходиться в першому стовпці, і ви хочете поставити курсор у стовпчик 50 вашого поточного рядка, скористайтеся командою:

49l
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.