Перейти к началу строки, не открывая новую строку в VI

231

Уже целую вечность я использовал SHIFTOи SHIFT$перейти к началу и концу строки в vi.

Тем не менее, SHIFTOэто больше для открытия новой строки над курсором.

Есть ли какая-нибудь команда, которая просто приводит вас к началу строки?

RIX
источник
9
В дополнение к ответам ниже, введите: help left-right-motions в Vim для большого количества информации.
НГМ
хорошая книга для vim: практика в vim. ^ 0
陈思秀

Ответы:

428

Вы можете использовать ^или 0(Ноль) в обычном режиме, чтобы перейти к началу строки.

^перемещает курсор к первому непустому символу строки
0всегда перемещает курсор к «первому столбцу»

Вы также можете использовать Shiftiдля перемещения и переключения в режим вставки.

Ксавье Т.
источник
5
Также Shift + A и Shift + I переходят в конец и начало строки соответственно, а также переключаются на Вставить модель
bibstha
7
Для меня, прижимая ^, как правило , не так просто , как нажать 0и wпоследовательно.
DXDXY
33

Простое 0приведет вас к началу строки.

:help 0 Чтобы получить больше информации

Фредрик Пихл
источник
25

Попробуйте этот чит-лист Vi / Vim для решения многих проблем.

Для нормального режима:
0- [ноль] до начала строки, первого столбца.
$- до конца строки

curiousMonkey
источник
12

Вы можете использовать 0или, ^чтобы перейти к началу строки.
И можете использовать Shift+, Iчтобы перейти к началу и переключиться в режим редактирования ( Вставить ).

a8m
источник
Вы отвечаете в основном правильно, но есть небольшая оговорка. Shift+Iили ^переместит курсор в начало текста в строке. Если nв начале строки есть вкладки, она переместит курсор в n*tabstop + 1столбец. Пока 0перемещает курсор в самый первый столбец строки.
Нарендра-Чоудхары
10

Есть еще один способ:

|

Это и есть «труба» - символ, найденный под пробелом в макете ANSI .

Vim quickref ( :help quickref) описывает это как:

N      |      to column N (default: 1)

А как насчет обведенных строк?

Если у вас включена функция переноса строк, 0и |она больше не приведет вас к началу строки экрана. В этом случае используйте:

g0

Опять же, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)
Андрей Дроздюк
источник
Теперь я понимаю, почему это работает. Спасибо. Я размышлял. Я думаю, что это лучше, чем 0потому, что |и $на том же ключе.
WesternGun
7

Введите «^». И получить хороший учебник "Ви" :)

Скиппи Фастол
источник
6

Переместить курсор в начало или завершить режимом вставки

  • I - Перемещает курсор на первый непустой символ в текущей строке и включает режим вставки.
  • A - Перемещает курсор к последнему символу в текущей строке и включает режим вставки.

Здесь Iэквивалентно ^+ i. Аналогично Aэквивалентно $+ a.

Просто переместите курсор в начало или конец

  • ^ - Перемещает курсор на первый непустой символ в текущей строке
  • 0 - перемещает курсор на первый символ в текущей строке
  • $ - перемещает курсор к последнему символу в текущей строке
rashok
источник
5

Я только что нашел 0 (ноль) и Shift + 0 работает на VIM.

brian_wang
источник
5
shift+0это )следующее предложение
mihai
Shift+0лучше, ^показывает характер и это раздражает. Спасибо
Calbertts
1

0 Приводит вас к началу строки

Shift 0 Приводит вас к концу линии

Сагар Джайн
источник
Shift-0 (')') не приводит вас к началу строки
Борис Чурзин
@Devenv: это правда! 0 будет
Сагар Джейн
1
Shift-0 («)» - это «предложение вперед», а не «конец строки» (это я и имел в виду)
Борис Чурзин