Редактирование Vi и положение курсора в конце строки?
Когда я использую vi (который, я думаю, по умолчанию вызывает elvis в Slackware 13.37), я могу вставлять текст, как и ожидалось, но когда я редактирую опечатки, используя ESC x
клавиша перемещения курсора l
так же как $
помещает курсор на последнюю букву, а не за ее пределами, поэтому вынуждает меня вставлять любой новый текст слева от последней буквы, по существу, приводя к опечатке, если я не удаляю обратно весь путь до пробела. Фактическая клавиша со стрелкой обычно позволяет мне выйти за пределы последней буквы, но не всегда.
Чтобы помочь объяснить, что я делаю:
This is text with a tttypog
Я чиню это с ESC x
This is text with a typog
но ESC l
или же ESC $
позволяет мне только переместить курсор на g, заставляя меня вставить любой новый текст только слева от g
This is text with a typoraphicalg
Я делаю что-то неправильно?
2 ответа
Редактировать: заменен "командный режим" на "нормальный режим" - @Jim Steward: спасибо за указание на эту некорректность
Краткий ответ: если вы находитесь в обычном режиме и хотите вставить текст после нажатия символа a
, Нажмите A
непосредственно перейти к концу строки и вставить символы после последнего символа. В vi, afaik, невозможно поместить курсор в столбец после последнего символа в текущей строке (если вы находитесь в обычном режиме). В vim, однако, есть опция с именем virtualedit, которая может позволить вам сделать это (см.:help virtualedit).
В vi есть два режима: режим редактирования (по умолчанию) и режим вставки. Команда "i" (без кавычек) переводит вас в режим вставки, а ESC возвращает вас в режим редактирования. Нет необходимости нажимать ESC перед каждой командой, хотя нажатие ESC - это безопасный способ убедиться, что вы находитесь в режиме редактирования, если вы забыли, в каком режиме вы в последний раз работали.
Команда "A" (без кавычек) используется для добавления текста в конце строки.