Как мне перейти к концу строки в Vim? - PullRequest
1081 голосов
/ 20 сентября 2008

Я знаю, как обычно перемещаться в командном режиме, в частности, переходить на строки и т. Д. Но что это за команда, чтобы перейти к концу строки, на которой я сейчас нахожусь?

Ответы [ 15 ]

1878 голосов
/ 20 сентября 2008

Только клавиша $ (знак доллара) . Вы можете использовать A , чтобы перейти к концу строки и переключиться в режим редактирования (Добавить). Чтобы перейти к последнему непустому символу, вы можете нажать g , а затем _ .

Противоположность A - это I (режим вставки в начале строки), в сторону. Нажатие только ^ поместит курсор в начало строки.

285 голосов
/ 20 сентября 2008

Как много людей сказали:

  • $ возвращает вас в конец строки

но также:

  • ^ или _ возвращает вас к первому непробельному символу в строке и
  • 0 (ноль) возвращает вас к началу строки, вкл. пробельные
129 голосов
/ 28 сентября 2010
  • $ перемещается к последнему символу в строке.
  • g _ переходит к последнему непробельному символу.

  • g $ идет до конца строки экрана (когда строка буфера переносится на несколько строк экрана)

53 голосов
/ 07 февраля 2015

Главный вопрос - конец строки

$ переходит в конец строки, остается в командном режиме

A идет до конца строки, переключается в режим вставки

И наоборот - начало строки (технически первый непробельный символ символ)

^ переходит в начало строки, остается в командном режиме

I (верхний регистр i) переходит в начало строки, переключается в режим вставки

Далее - начало строки (технически первый столбец независимо от пробел )

0 (ноль) переходит в начало строки, остается в командном режиме

0i (ноль и строчная i) идут в начало строки, переключаются в режим вставки

Для тех, кто начинает изучать vi, вот хорошее введение в vi путем перечисления бок о бок команд vi с типичными движениями курсора в Windows GUI Editor и сочетаниями клавиш.

vi редактор для пользователей Windows

39 голосов
/ 20 сентября 2008

Если ваша текущая строка оборачивается вокруг видимого экрана на следующую строку, вы можете использовать g $ , чтобы добраться до конца строки screen .

12 голосов
/ 27 ноября 2010

Во многих случаях, когда мы находимся внутри строки, мы заключены в двойные кавычки или при написании оператора мы не хотим нажимать escape и идти до конца этой строки клавишей со стрелкой и нажимать точку с запятой (;) просто до конца строки. Напишите следующую строку в вашем vimrc файле:

imap <C-l> <Esc>$a

Что говорит линия? Он отображает Ctrl + l в серию команд. Это эквивалентно тому, что вы нажимаете Esc (командный режим), $ (конец строки), a (добавление) сразу.

12 голосов
/ 20 сентября 2008

Преимущество клавиши 'End' в том, что она работает как в обычном, так и в режиме вставки.

'$' работает только в обычном / командном режиме, но также работает в классическом редакторе vi (полезно знать, когда vim недоступен).

12 голосов
/ 20 сентября 2008

Знак доллара: $

10 голосов
/ 17 декабря 2010

Также обратите внимание на различие между строкой (или, возможно, физической строкой) и строкой экрана . Строка заканчивается символом конца строки ("\ n"). Строка экрана - это то, что происходит в виде одной строки символов в вашем терминале или на экране. Эти два варианта расходятся, если у вас физические строки длиннее ширины экрана, что очень часто встречается при написании электронных писем и т. П.

Различие проявляется и в командах конца строки.

  • $ и 0 переходят в конец или начало физической строки или абзаца соответственно:
  • г $ и г 0 перейти к концу или началу строки экрана или абзаца соответственно.

Если вы всегда предпочитаете последнее поведение, вы можете переназначить ключи следующим образом:

:noremap 0 g0
:noremap $ g$
9 голосов
/ 20 сентября 2008

Или есть очевидный ответ: используйте клавишу End , чтобы перейти к концу строки.

...