Как перейти непосредственно к номеру столбца в Vim


234

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

Как мне это сделать?


Похоже, это инструмент, который должен быть изобретен. «Обесценивай мой js, и пока ты на нем, прыгай на место, обозначенное номером этого столбца».
dnellis74

2
@ dnellis74 Этот инструмент существует. Это называется "sourcemaps";)
Burgi

//, @Burgi, может ли 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 символов влево.
АВ

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 для сценариев. Обратите внимание, что если номер строки равен нулю, курсор останется в текущей строке.
Джайлс Гардам,

Это особенно удобно для открытия Vim из других инструментов, так как этот вызов можно выполнить из командной строки:"+call cursor($LINE,$COLUMN)"
Лоуренс Гонсалвес

5

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

49l
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.