Клавіша Delete не працює в vim на iTerm2


16

По-перше, я набрав якусь річ у режимі вставки, наприклад

Hello

На цьому етапі, якщо я не вийшов з режиму вставки, deleteпрацює, і я можу видалити ціле слово, якщо хочу.

Якщо я вийду з режиму вставки та знову відкрию режим вставки, це Helloнеможливо видалити delete. Але нещодавно набраний вміст можна видалити.

Я перейменував свій .vimrc, проблема все ще залишається.

І я зробив тест на віддаленому сервері через iterm, не стикався з тією ж проблемою.

Що може бути причиною цієї проблеми? Як це виправити?


Під "видалити" ви маєте на увазі зворотну простір? Видалення цілих слів у режимі вставки можна виконати Ctrl-W, спробуйте. Якщо це нічого не робить, з вашим вимом щось не так. Я використовую iTerm 2 і ніколи не виникало таких проблем.
морська риба

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

Але ви можете використовувати backspace у звичайному командному рядку поза vim? Дуже дивно.
морська риба

@oarfish, так, я можу, а у віддаленому сервері vim у мене немає такої проблеми, все відбувається раптово. Я поки не можу зрозуміти.
Дзен

Яка версія vim у вас є? У мене vim 7.4.481, і я не можу відтворити проблему.
січ.ч

Відповіді:


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, ви зможете повернути простір над чим завгодно у режимі вставки.


"особливість" ... З певних причин я вважаю, що це включено за замовчуванням у свіжому macOS 10.13 із встановленою версією найновішої версії. Це рішення все ще вирішує це питання.
Тейлор Едмістон

9

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

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

Перейдіть Preferences > Profiles > Keysі завантажте попередньо встановлені за замовчуванням Natural Text Editingта видаліть усі записи deleteта deleteповедінку. Після цього він працює як очікувалося


1
Те саме, за винятком того, що я просто видалив записи про "Del->", але не додав посилання "Надсилає ^ H". Тоді це спрацювало як очікувалося.
DagW

@DagW підтвердило, що зв'язування ^ H непотрібне.
Салянгоз

2
Довелося занурюватися занадто глибоко в неправильні пости, щоб знайти це як правильну відповідь, велике спасибі!
RecuencoJones

1
У мене проблеми на моїх Tmux та Iterm2 тривалий час, я ніколи не знайшов рішення, поки не знайшов тут вашу посаду.
1234.

1
Так! мова йде про конфігурацію iterm, а не про себе vim.
Родрірокр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.