#vim #ssh #terminal #tmux
Вопрос:
В последнее время при использовании Vim в tmux по ssh иногда случается так, что Vim начинает игнорировать все мои сопоставления, которые начинаются с Ctrl: например <C-P>
, которые я привязал к плагину CTRL. Вместо этого Vim выполняет встроенное действие (в этом случае перемещение строк в файле вверх). Я не сомневаюсь, что правильное нажатие клавиши достигает Vim, так как оно использует правильное встроенное действие, связанное с <C-P>
(использование :send-keys
для отправки ctrl-p
из tmux также приводит к запуску встроенного <C-P>
в vim, а не отображения).
Все мои сопоставления, не включающие клавишу управления, все еще работают. Например, я могу сделать это:
nnoremap p :echo "test"<cr>
, и настойчивые p
отголоски test
Но затем сразу nnoremap <c-p> :echo "test"<cr>
же после, и нажатие CTRL-P
не вызывает эхо-теста, оно перемещает курсор вверх на одну строку.
Перезапуск Vim всегда устраняет проблему, но в какой-то момент что-то, что я делаю, снова вызывает проблему. Я работаю в основном в tmux через SSH в последнее время, так что я не 100% уверен, что если один из них-это проблема (хотя я думаю, что я помню, это происходит один раз в Vim в tmux не через SSH), но как уже говорилось выше, я считаю, передаче ключей напрямую из tmux в качестве теста сделать Vim является получение фактического ctrl-p
кода. Кроме того, <C-V><C-P>
в режиме вставки действительно выполняется вставка ^P
.
Обратите внимание, что, хотя я использовал ctrl-p
здесь в качестве примера, поскольку это ключ, который я на самом деле часто использую на практике, это относится к любому сопоставлению управляющих ключей.
Есть ли какое-то состояние Vim, о котором я не знаю, из-за которого это происходит? Вероятно, это смертельная проблема? Каковы мои следующие шаги?
Комментарии:
1. Ваша запись немного непоследовательна. Ты настаиваешь
Control p
илиControl Shift p
? Кроме того, если вы уверены , что Vim получает^P
, то проблема в другом. В любом случае, этот вопрос не имеет ничего общего с программированием, поэтому его следует перенести в более подходящее место, например, в систему отслеживания проблем Tmux или суперпользователя. Просто убедитесь, что вы попробуете еще кое-что со своей стороны: работает ли это так, как ожидалось, с локальным Vim? с локальным Vim через локальный tmux? с удаленным Vim через SSH? с удаленным Vim через SSH через локальный tmux? с удаленным Vim через удаленный tmux через SSH?2. Что делает:
:verbose map <c-p>
делает? Также вы должны быть уверены, чтоecho amp;cpoptions
этого не произойдет<
.