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


231

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

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

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


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

хорошая книга для vim: практика в vim. ^ 0
陈思秀

Ответы:


428

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

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

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


5
Также Shift + A и Shift + I переходят в конец и начало строки соответственно, а также переключаются на Вставить модель
bibstha

7
Для меня, прижимая ^, как правило , не так просто , как нажать 0и wпоследовательно.
DXDXY



12

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


Вы отвечаете в основном правильно, но есть небольшая оговорка. 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


6

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

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

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

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

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

5

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


5
shift+0это )следующее предложение
mihai

Shift+0лучше, ^показывает характер и это раздражает. Спасибо
Calbertts

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