Клавиша Delete изменяет регистр в Vim

Я пытаюсь войти в Vim. Я выполняю его в терминале на OS X.

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

Какие-либо идеи, что может идти не так, как надо?

9
задан BЈовић 23 December 2011 в 13:40
поделиться

3 ответа

Проблема заключалась в том, что в моем .vimrc было

set term = ansi

Убрал это и все стало хорошо - извините за проблемы, спасибо!

2
ответ дан 4 December 2019 в 10:30
поделиться

Проблема

Клавиша 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

Надеюсь, это поможет :)

18
ответ дан 4 December 2019 в 10:30
поделиться

Я регулярно использую vim на своей машине OSX (vim версии 7.2.108), и у меня нет этой проблемы. Попробуйте переименовать файл vimrc, а затем перезагрузить vim и посмотреть, сохранится ли проблема. Если после переименования файла vimrc проблемы не возникнет, значит, проблема в этом файле.

На моей машине файл vimrc практически пуст:

set ruler
set tabstop=2
set cindent
set number
syntax on
-1
ответ дан 4 December 2019 в 10:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: