Картографирование Escвсегда немного сложнее и, как правило, создает проблемы такого рода, даже если это не должно происходить.
«Канонический» метод для вашего отображения:
nnoremap <silent> <C-l> :nohlsearch<CR><C-l>
Таким образом Ctrl+L(который обычно перерисовывает ваш экран) перестанет выделяться и перерисовывается экран.
Я думаю, что выяснил, что происходит, но у меня все еще нет решения. Я предположил, что Vim получил строку, содержащую " <ESC>
и 2c", поэтому я использовал следующее отображение, чтобы сделать его видимым:
nnoremap <Esc> :"
Это привело к следующей подсказке при запуске:
:"[>0;261;0c
Что означает, что что-то отправлено <ESC>[>0;261;0c
при запуске. Теперь, глядя на оригинальные xterm
последовательности управления , мы находим, что:
ESC [ Control Sequence Introducer (CSI is 0x9b)
а также
CSI> P s c
Отправить атрибуты устройства (вторичный DA).
P s = 0 или опущено → запросить идентификационный код терминала. Ответ зависит от настройки
ресурса decTerminalID . Он должен применяться только к VT220 и выше, но xterm расширяет его до VT100.
→ CSI> P p ; P v ; P cc
где P p обозначает тип терминала
P p = 0 → '' VT100 ''.
P p = 1 → '' VT220 ''.
и P v - версия прошивки (для xterm это был первоначально номер патча XFree86, начиная с 95). В терминале DEC
P c указывает регистрационный номер картриджа ПЗУ и всегда равен нулю.
Поэтому в моем случае что-то отправляется CSI >
с P p = 0 (→ тип терминала VT100), P v = 261 (→ моя xterm
версия) и P c = 0.
Тем не менее, я понятия не имею, откуда оно или как его остановить. Мое лучшее предположение, что некоторый обмен информацией между терминалом и Vim не выполняется, и что-то происходит с ошибками.