Как я могу исправить мой ключ удаления в VIM через SSH? (Mac OS X) - PullRequest
18 голосов
/ 11 ноября 2010

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

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

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

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

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

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

Ответы [ 4 ]

16 голосов
/ 14 марта 2014

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

:set backspace=indent,eol,start

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

Поведение, с которым я столкнулсябыл звук колокольчика (никакие символы не были удалены) при нажатии клавиши «mac» удаления mac (также известной как клавиша «backspace») в режиме вставки.Я использую скомпилированную версию Vim 7.3 на "Amazon Linux" поверх SSH с Mac.Нажатие <ctrl-v><delete> в режиме вставки привело к ^?.

7 голосов
/ 02 июля 2011

Несколько идей для попытки:

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

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

    stty erase ^H
    

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

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

3 голосов
/ 10 апреля 2012

Попробуйте это: http://www.alecjacobson.com/weblog/?p=295

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

Примечание: отображение ключа «удалить» в моем файле vimrc, вероятно, показалось правильным способом сделать это, но это большая проблема. Есть ли причина не делать это таким образом?

2 голосов
/ 11 ноября 2010

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

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

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

...