Delete Key меняет регистр букв в Vim - PullRequest
9 голосов
/ 12 июля 2010

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

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

Есть идеи, что может быть не так?

Ответы [ 4 ]

18 голосов
/ 13 июля 2010

Проблема

Клавиша Del генерирует код ^[[3~ в моем терминале urxvt в GNU / Linux и может генерировать аналогичный код в вашем терминале OS X.

Моя теория заключается в том, что Vim по какой-то причине не распознает привязку клавиш для ключа удаления, а просто пытается интерпретировать строку ^[[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

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

2 голосов
/ 14 июля 2010

Проблема была в том, что в моем .vimrc у меня было

set term = ansi

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

1 голос
/ 10 августа 2018

Ну, это заняло у меня навсегда, чтобы решить. Когда я использовал vim, я был в Iterm2 на macOSx для доступа к системе Centos5 через экран GNU. Клавиша удаления не только изменила регистр букв и стала причиной задержки в vim, но и клавиши со стрелками не работали. Я думаю, что проблема была просто в старой конфигурации на машине Centos5, но, возможно, что-то было связано также с экраном iterm или gnu, но у меня вообще не было этой проблемы ни в каких системах Centos6.

Что не сработало: Я компилирую vim 7.4, но это не помогло, так что не иди по этому пути. Я также попробовал эти конфигурации, которые не работали

"set term=ansi
"set backspace=indent,eol,start
"set nocompatible
"fixdel

":if &term == "xterm"
":if &term == "xterm-256"
":  set t_kD=^V<Delete>
":endif

"nmap <Ctrl-V><Del> x
"imap <Ctrl-V><Del> <Ctrl-V><Esc>xi

Я наконец нашел решение.

Решение: Установите следующее в .vimrc

set term-builtin_xterm

Кроме того, вы также можете заметить, что 256 цветов имеют проблемы в этой же системе. Так что, если это поможет, вы можете проверить переменную окружения TERM echo $TERM. Если это xterm, вы можете переключить его на 256 цветов, например, export TERM='xterm-256color чтобы вернуть цветовые схемы в порядок для этой же системы. ссылка

0 голосов
/ 13 июля 2010

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

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

set ruler
set tabstop=2
set cindent
set number
syntax on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...