Backspace в режиме вставки в vi не стирает символ

Я новичок в vi, на самом деле я начал изучать vi с сегодняшнего дня, и я застрял в поведении клавиши Backspace.

На самом деле, когда я впервые запустил vi на Ubuntu 12.04, мой ключ возврата работал нормально, но после этого он начал странно себя вести. Всякий раз, когда я нажимаю клавишу Backspace в режиме вставки, он просто перемещается на одну позицию влево вместо стирания символа.

Как я могу вернуть функциональность возврата по умолчанию? Обратите внимание, что я не хочу устанавливать vim или устанавливать nocompatibilty.

70
задан 12 November 2014 в 03:06

4 ответа

Вот самое простое решение.
Откройте терминал, перейдите в домашний каталог и введите

vi .vimrc

. Откройте новый файл, добавьте эти строки в файл и выйдите, сохранив

$ set nocompatible
$ set backspace=2
0
ответ дан 12 November 2014 в 03:06

Установите полный пакет vim, чтобы получить функциональность клавиши «Backspace» и «Стрелка»

sudo apt-get update
sudo apt-get install vim
0
ответ дан 12 November 2014 в 03:06

Необходимо измениться на режим "вставки" путем перемещения курсора с i. Существуют другие способы удалить символы непосредственно. Можно загрузить powerpoint, который я использую при обучении класса VI здесь.

Это кажется, что Вы находитесь в режиме "Command". Перемещать Ваш курсор:
H = Оставленный, J = K = Вниз, L = Право

После того как Вам расположили Ваш курсор, можно удалить текст следующим образом:
x Удаляет символ под курсором
X Удаляет символ перед курсором
dw Удаляет от курсора до следующего слова
dd Удаляет строку, курсор идет.

Для введения текста можно использовать один из режимов ввода текста.
a Добавляет текст направо от курсора
A Добавляет текст в конец текущей строки
i Добавляет текст слева от курсора
I Добавляет тест к beginin текущей строки
o Открывает новую строку ниже текущей строки и размещает Вас в режим ввода текста
O Открывает новую строку Выше текущей строки и размещает Вас в режим ввода текста

Выйти из режима Ввода текста и возвратиться к Командному режиму, использованию Esc.

Отменить изменения: (Студенческий фаворит)
u Отмените последнюю вводимую команду
U Отмените все изменения в ** текущая строка **

Сохранить/Выйти: :w Записи (Сохранили) файл и остаются открытыми
:wq Записи (Сохранили) файл и выходят VI
:q Выходы (Выходы), если Вы не внесли изменений
:q! Выходы (Выходы), не сохраняя изменения
ZZ Записи (Сохранили) файл и выходят VI (то же как :wq)

23
ответ дан 12 November 2014 в 03:06

Это правильное поведение для vi, и он стирает символ, он просто не показывает его, заменяя его пробелом, как в vim. Это станет очевидным, если перезаписать стертый символ другим символом или переключиться обратно в командный режим.

например. начиная с командного режима в пустой строке, следующая строка будет содержать строку fo:

i f o o Backspace Esc

Прежде чем нажимать клавишу Esc , строка будет читать foo, но последний o был помечен как «erase-column». См. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88 (в основном пункт 4 под этим заголовком, а также просмотрите немного ниже, чтобы прочитать о < Control > -H)

0
ответ дан 12 November 2014 в 03:06

Другие вопросы по тегам:

Похожие вопросы: