Я пытаюсь войти в Vim. Я выполняю его в терминале на OS X.
Каждый раз, когда я поразил клавишу Delete, она просто изменяет случай той буквы вместо того, чтобы удалить его. Когда я SSH в мой сервер и Vim использования там, это обычно удаляет.
Какие-либо идеи, что может идти не так, как надо?
Проблема заключалась в том, что в моем .vimrc было
set term = ansi
Убрал это и все стало хорошо - извините за проблемы, спасибо!
Проблема
Клавиша Del генерирует код ^[[3~
в моем urxvt
терминале на GNU/Linux, и может генерировать аналогичный код в вашем терминале OS X.
Моя теория заключается в том, что Vim по какой-то причине не распознает привязку клавиш для клавиши delete и просто пытается интерпретировать строку ^[[3~
как ввод. ^[
- это код клавиши Esc (которая переводит вас в обычный режим), а ~
- это команда Vim для изменения регистра буквы (из обычного режима).
Вы можете подтвердить упомянутые мной коды, нажав Ctrl+V Esc и Ctrl+V Del из режима вставки в Vim. Ctrl+V означает, что следующий символ должен быть вставлен как текст, а не интерпретирован редактором.
Решение
Что касается решения, попробуйте отредактировать файл конфигурации Vim (предположительно ~/.vimrc
):
vim ~/.vimrc
И добавьте в него следующий код:
nmap <Ctrl-V><Del> x
imap <Ctrl-V><Del> <Ctrl-V><Esc>lxi
Надеюсь, это поможет :)
Я регулярно использую vim на своей машине OSX (vim версии 7.2.108), и у меня нет этой проблемы. Попробуйте переименовать файл vimrc, а затем перезагрузить vim и посмотреть, сохранится ли проблема. Если после переименования файла vimrc проблемы не возникнет, значит, проблема в этом файле.
На моей машине файл vimrc практически пуст:
set ruler
set tabstop=2
set cindent
set number
syntax on