Перейти к n-му символу в строке


85

Как переместить курсор на n-й символ слева в Vim?

Одно из решений, которое я вижу, - нажать 0n<right-arrow>, он переместится в позицию n + 1. Есть ли более естественный способ сделать это?


1
Решение со стрелкой вправо сработало для моей проблемы ...
— thnx

Кто нибудь использует <right arrow>вместо lvim?
— LRDPRDX

Ответы:


129

Труба '|' персонаж может быть тем, что вы хотите:

Для перехода к 25-му столбцу в строке в обычном режиме нажмите 25|

Для перехода к 37-му столбцу в строке в обычном режиме нажмите 37|

и так далее. . .


Отлично, это было то, что я искал
— Nutel

4
@CamilB Попробуйте что-нибудь вроде $3h, которое переместит вас в конец строки, а затем на 3 символа влево.
— Джефф Кляйн,

Подробнее об этом см. На справке vim :help bar. Когда я узнал об этом, комментирование и раскомментирование стало намного проще. XD После того, как я обнаружил это, я не полагаюсь на внешние плагины для комментариев / раскомментирования, жизнь редактирования кода теперь намного лучше :)
— Ави Мехенвал

40

РЕДАКТИРОВАТЬ: неправильно прочитайте свой вопрос.

вы можете перейти к определенному символу, набрав, fа затем следующий символ:

если вы хотите перейти к третьему $, введите:

3f$

чтобы вернуться назад, используйте заглавную букву "F".

F$

чтобы сначала добраться до конца строки, используйте "$"

поэтому ваши нажатия клавиш для поиска третьего $ от конца строки:

$3F$

мне нравится держать что-то подобное при использовании Vim:
http://www.lagmonster.org/docs/vi.html


1
Это был первый результат в Google, и это было то, что я искал, спасибо
— kgwong

это движение можно добавить и к другим командам, например: изменение с текущей позиции на второе появление символа «e» - c2te :)
— Vũ Tô

8

Я не уверен, имеете ли вы в виду n-й символ или n-е вхождение символа; на второй был дан ответ, поэтому я отвечу на первый.

^переместит вас в начало строки, исключая пробелы (так, чтобы первый столбец, отличный от белого), а |(вертикальная черта ) или 0(ноль) переместит вас к первому символу. Затем l(строчная L) переместит вас вправо; и 7lпереместит вас на семь символов вправо. Итак, все вместе, чтобы перейти к (n + 1) -му символу в строке, для n = 7 07l,.


Я вижу, вы отредактировали вопрос сейчас; lвместо стрелки вправо - лучшее, что вы получите. (вы знакомы с hjkl navigation?)
— Крис Морган

Я знаю, что настоящий vimmer не должен использовать стрелки, но я использую некоторые другие приложения, которые не поддерживают привязку клавиш низкого уровня, и единственный способ навигации - это стрелки, поэтому, чтобы упростить переключение между ними, я использую стрелки
— Nutel

@Vetal: Иногда я расстраиваюсь, когда прокрутка просто не работает в других приложениях ... hjkl намного лучше, чем стрелки.
— Крис Морган

Как указывает ответ Герберта Зитца, |переходит только к первому символу, потому что по [count]умолчанию он равен 1 - он фактически переходит к [count]th символу в строке, так 8|что похоже, 07lза исключением того, что это одно движение вместо двух.
— hobbs

Думаю, мне стоит обратить внимание на то, что делают персонажи. Мне казалось невероятным, что есть два способа сделать одно и то же.
— Крис Морган
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.