Я использую ZSH на терминале Mac и включаю режим vi в терминале, добавляя set -o vi
к моему ~/.zshrc
. Когда я нахожусь в строке подсказки и набираю Hello
, затем нажимаю Esc
, чтобы войти в режим без вставки, перемещаю курсор на e
и нажимаю i
, чтобы войти в режим вставки, я не могу стереть H
, нажав клавишу backspace
.
Обратите внимание, что клавиша Backspace работает в том же сценарии, когда я открываю новый файл, используя vim test.txt
и пишу Hello
и следуя инструкциям выше, поэтому я не думаю, что это проблема с настройками vim.
Кроме того, я запустил vi --version
в своем ~/.zshrc
прямо перед set -o vi
, и вот часть результата, который я получил: VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Feb 10 2024 02:02:30)
Пожалуйста, помогите мне!
Попробуйте bindkey -M viins "^?" backward-delete-char
.
Backspace обычно привязан к vi-backward-delete-char
, что специально задокументировано, чтобы не делать то, что вы просите:
vi-backward-delete-char (непривязанный) (X) (^H)
Удалить символ за курсором, не меняя строки. Если вы находитесь в режиме вставки, это не приведет к удалению после точки, в которой последний раз был включен режим вставки.
backward-delete-char
не имеет такого ограничения.