Перейти к 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.