Во-первых, я знаю, что могу использовать Alt+ 1(до 9 и 0) для синтеза соответствующих функциональных клавиш ( F1до F10) в Midnight Commander. Это помогало мне много раз, но по умолчанию я все еще нажимаюдействительныйфункциональные клавиши интуитивно понятны.
Суть: Я пытаюсь запустить Vim и Midnight Commander внутри tmux
сеанса (иногда в окне, иногда в панели), используя PuTTY.
Итак, по умолчанию у меня следующая конфигурация PuTTY:
С ESC[n~
отображением
Проблема теперь при отображении ( map <F1> :tab help<CR>
, а также nmap
и imap
) F1в Vim заключается в том, что это дает эффект ~(переключения регистра). И действительно, если я нажимаю F1в F5оболочке, ~
то результатом будет тильда ( ),вдольсо звонком. Функциональные клавиши работают отлично в Midnight Commander, хотя при использовании этой настройки.
В дополнение к моим проблемам с , есть одна странность в указанной выше настройке F1: я также «отобразил» F5( set pastetoggle=<F5>
) в Vim. Как ни странночтоработает как часы, хотя F5клавиша на корпусе ~
просто дает лайк F1и т. д.
Примечание:при запуске Vim вне tmux
, привязка по умолчанию (и моя переопределенная) F1работают нормально!
С отображением "Linux"
Поэтому, естественно, я попытался использовать настройку "Linux" в диалоговом окне выше. Поэтому, когда я нажимаю , F1Vim переходит в режим вставки в конце строки (эффект A). Midnight Commander не распознает ни одну из функциональных клавиш с этой настройкой. Конечно же, на оболочке F1мне выдается A
и колокольчик ( F2a B
и так далее).
Что я здесь упускаю?Как добиться единообразного поведения, при котором и Midnight Commander, и Vim будут распознавать функциональные клавиши?
Дополнительная информация:
Удаленная система — Ubuntu 14.04 с LANG=en_US.UTF-8
.
TERM
устанавливается TERM=xterm
за пределами tmux
сеанса и TERM=screen
при просмотре изнутри панели или окна.
Я не использую:
set-option -g default-terminal "screen-256color"
для переопределения типа терминала внутри tmux
.
решение1
Проблема снаружи TERM=xterm
. tmux
Естьнетконфигурация PuTTY, которая соответствует xterm
описанию терминала, а несоответствие передается в screen
или tmux
(выбирайте по своему усмотрению).
См., например, в FAQ по ncursesПочему бы просто не использовать TERM, установленный на «xterm»?. Рекомендация там, конечно, установить
TERM=putty
Быстрая проверка с помощьюtack
показывает, что эта комбинация ( TERM=putty
, tmux
) работает для Ubuntu 14.04 (вы должны были установить ncurses-term
пакет, который ее включает).