Как перейти к концу строки в Vim?

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

+1075
источник поделиться
16 ответов

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

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

+1870
источник

Как говорили многие люди:

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

но также:

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

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

+129
источник

$

Оформить заказ этот обходной лист VIM

+55
источник

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

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

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

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

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

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

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

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

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

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

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

+53
источник

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

+39
источник

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

+12
источник

Преимущество клавиши "End" заключается в том, что он работает как в нормальном, так и вставном режимах.

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

+12
источник

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

imap <C-l> <Esc>$a

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

+12
источник

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

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

  • $ и 0 перемещаются в конец или начало физической линии или абзаца соответственно:
  • g $ и g 0 переместить в конец или начало строки или абзаца экрана соответственно.

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

:noremap 0 g0
:noremap $ g$
+10
источник

Нажмите A, чтобы войти в режим редактирования, начиная с конца строки.

+9
источник

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

+9
источник

Возможно, он не связан, но если вы хотите начать новую строку после текущей строки, вы можете использовать o в любом месте строки.

+6
источник

Самый простой вариант - войти в $. Если вы работаете с блоками текста, вы можете оценить команды { и }, чтобы переместить абзац назад и вперед соответственно.

+3
источник

Я привык к Home/End, чтобы получить начало и конец строк в режиме Вставки (от использования в Windows и, я думаю, Linux), который Mac не поддерживает. Это особенно раздражает, потому что, когда я использую vim в удаленной системе, я тоже не могу это сделать. После некоторых болезненных проб и ошибок я придумал эти строки .vimrc, которые делают то же самое, но привязаны к Ctrl-A для начала строки и Ctrl-D для конца строки. (По какой-то причине Ctrl-E, я думаю, зарезервирован или, по крайней мере, я не мог понять, как его связать.) Наслаждайтесь.

:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal $<Char-13>

Здесь хорошая диаграмма для кодов символов управления ASCII для других:

http://www.physics.udel.edu/~watson/scen103/ascii.html

Вы также можете сделать Ctrl-V + Ctrl-, но это также не подходит для таких мест.

+2
источник

Я не вижу горячей клавиши для MacBook для использования VIM в стандартном терминале. Надеюсь, это кому-нибудь поможет. Для пользователей macOS (протестировано на macbook pro 2018):

fn + - перейти к началу строки

fn + - перейти к конечной строке

fn + - переместить страницу вверх

fn + - переместить страницу вниз

fn + g - переместить курсор в начало документа

fn + shift + g - переместить курсор в конец документа

Для последних двух команд иногда нужно нажать дважды.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос