Клавиша удаления не работает в vim на iTerm2


16

Во-первых, я набрал что-то в режиме вставки, например

Hello

На этом этапе, если я не deleteвышел из режима вставки, работает и может удалить все слово, если я хочу.

Если я выйду из режима вставки и снова открою режим вставки, это Helloне может быть удалено delete. Но вновь набранный контент может быть удален.

Я переименовал свой .vimrc, проблема все еще существует.

И я сделал некоторые тесты на удаленном сервере через iterm, не столкнулся с той же проблемой.

Что может быть причиной этой проблемы? Как это исправить?


С «удалить» вы имеете в виду Backspace? Удаление целых слов в режиме вставки может быть сделано Ctrl-W, попробуйте это. Если это ничего не дает, значит что-то не так с вашим vim. Я использую iTerm 2 и никогда не было таких проблем.
oarfish

Да, я могу использовать dwили dw+ shiftв обычном режиме, чтобы удалить слова. Но backspaceи ctrl+ wоба не работают во второй ситуации, о которой я говорил выше.
Дзен

Но вы можете использовать backspace в обычной командной строке вне vim? Очень странно.
oarfish

@oarfish, да, я могу, и в удаленном сервере vim такой проблемы нет, все происходит внезапно. Я не могу понять, пока.
Дзен

Какая у вас версия vim? У меня vim 7.4.481, и я не могу воспроизвести проблему.
Jan.h

Ответы:


16

Это особенность vim, хотя IIRC не будет включена по умолчанию.

backspaceустановка в Vim, и вы можете выбрать один из трех различных параметров: indent, eol, иstart

Если вы запустите :help backspace, он скажет вам:

Influences the working of `<BS>`, `<Del>`, `CTRL-W` and `CTRL-U` in Insert
mode.  This is a list of items, separated by commas.  Each item allows
a way to backspace over something:

value     effect
indent    allow backspacing over autoindent
eol       allow backspacing over line breaks (join lines)
start     allow backspacing over the start of insert; CTRL-W and CTRL-U
          stop once at the start of insert.

Тот, который не установлен для вас start.

Если вы добавите set backspace=indent,eol,startв свой .vimrc, вы сможете вернуться на что угодно в режиме вставки.


"feature" ... По какой-то причине я вижу, что он включен по умолчанию на новой macOS 10.13 с последней версией bim. Это решение все еще решает проблему.
Тейлор Эдмистон

9

У меня также было это, естественные значения обработки текста по умолчанию были неправильными для меня.

  • MacBook Pro (15 дюймов, 2018)
  • 10.14.3 (Мохаве)
  • Iterm2 3.2.7

Перейдите Preferences > Profiles > Keysи загрузите предустановку по умолчанию Natural Text Editingи удалите все записи о них deleteи их deleteповедении. После этого все работает как положено.


1
То же самое, за исключением того, что я только что удалил записи о "Del->", но не добавил привязку "Sends ^ H". Тогда это сработало, как и ожидалось.
DagW

@DagW подтвердил, привязка ^ H не нужна.
Сальянгоз

2
Пришлось слишком глубоко копаться в неправильных постах, чтобы найти правильный ответ, большое спасибо!
RecuencoJones

1
У меня была проблема с моими Tmux и Iterm2 в течение долгого времени, я так и не нашел решения, пока не нашел ваш пост здесь.
1234

1
Да! это касается конфигурации iterm, а не самого vim.
Родрирокр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.