Подтвердить что ты не робот

Как я могу исправить свой ключ удаления в VIM через ssh? (Mac OS X)

Когда я использую VIM в терминале на своей локальной машине (Mac OS X Snow Leopard), ключ удаления действительно является backspace (т.е. деструктивным обратным пространством).

Когда я SSH на конкретный сервер, по какой-то причине он регулярно удаляет (т.е. удаляет символ под курсором).

Как я могу изменить его, чтобы он был последовательным? Я пробовал дюжину решений, но ничего не работает.

Проверка флажка "Удалить отправляет Ctrl-H" в "Настройки терминала" > "Дополнительно" не работает - это неразрушающее обратное пространство.

Я пробовал около сотни различных сопоставлений клавиш в VIM, но безрезультатно.

Интересно, что ключ работает, как ожидалось, когда я набираю команды в VIM (например, : <something>) - он только прикручивается, когда я редактирую фактический текст. Любые идеи?

4b9b3361

Ответ 1

Это сработало для меня:

:set backspace=indent,eol,start

Я не уверен точно, что он делает, но он указан как возможное решение здесь и . Я нашел эту строку в файле vimrc, распространяемом вместе с Ubuntu, где поведение клавиши "delete" (иначе называемой "backspace" ) работает как ожидалось без какой-либо другой конфигурации.

Поведение, которое я испытывал, было звуком колокола (без удаления символов) при нажатии клавиши "удалить" mac (иначе называемой клавишей "backspace" ) в режиме вставки. Я использую скомпилированную версию vim 7.3 на "amazon linux" поверх ssh с mac. Нажатие <ctrl-v><delete>, когда в режиме вставки появилось ^?.

Ответ 2

Пара идей:

  • В вашем файле .vimrc на удаленном сервере добавьте следующую строку:

    set term=linux
    
  • В вашем файле .bash_profile (или что-либо, что соответствует вашей оболочке выбора) на удаленном сервере:

    stty erase ^H
    

    Примечание. Чтобы сделать это правильно, введите ctrl - v, затем ctrl - h, чтобы ввести символ ^H.

    Кроме того, убедитесь, что в ваших привилегиях терминала отмечены флажки "Удалить отправку Ctrl-H".

Ответ 3

Попробуйте следующее: http://www.alecjacobson.com/weblog/?p=295

Я исправил проблему, изменив настройки Terminal.app. В разделе "Терминал" > "Настройки" выберите "Дополнительно". Установите флажок "Удалить посылает Ctrl-H". Теперь vi и vim должны понимать ключ удаления более интуитивно.

Примечание. Сопоставление клавиши "удалить" в моем файле vimrc показалось, вероятно, правильным способом сделать это, но это много неприятностей. Есть ли причина не делать этого таким образом?

Ответ 4

Попробуйте добавить

set <Del>=<C-v><Del>

в vimrc на целевой машине. Здесь вы должны ввести <C-v> <Del> во время входа на целевую машину. Если это не сработает, отметьте verbose imap <Del>: это должно сказать вам, был ли какой-либо плагин переназначен <Del> в режиме вставки.