Конфигурирование функциональных клавиш в PuTTY для Vim и Midnight Commander под tmux?

12608
0xC0000022L

Прежде всего, я знаю, что я могу использовать Alt+ 1(через 9 и 0), чтобы синтезировать соответствующие функциональные клавиши ( F1через F10) в Midnight Commander. Это помогло мне много раз, но по умолчанию я все еще нажимаю реальные функциональные клавиши интуитивно.

Суть: я пытаюсь запустить Vim и Midnight Commander внутри tmuxсеанса (иногда окна, иногда панели), используя PuTTY.

Поэтому по умолчанию у меня есть следующая конфигурация PuTTY:

PuTTY клавиатура

С ESC[n~отображением

Проблема при отображении ( map <F1> :tab help<CR>а также nmapи imap) F1в Vim состоит в том, что он дает эффект ~(случай переключения). И в самом деле, если я нажимаю F1через F5в оболочке, тильда ( ~) является результатом, наряду с колоколом. Функциональные клавиши прекрасно работают в Midnight Commander, хотя, используя этот параметр.

Есть одна странная вещь в вышеупомянутой настройке в дополнение к моим проблемам с F1: я также "mapped" F5( set pastetoggle=<F5>) в Vim. Как ни странно, это работает как шарм, хотя F5ключ на корпусе дает ~точно так же, как F1и т.д.

Примечание: при запуске Vim вне tmux, связывание по умолчанию (и мое переопределение) F1работают нормально!

С отображением "Linux"

Поэтому, естественно, я попытался использовать настройку «Linux» в диалоговом окне выше. Поэтому, когда я F1нажимаю, Vim переходит в режим вставки в конце строки (эффект A). Midnight Commander не распознает ни одну из функциональных клавиш с этой настройкой. Конечно же, на оболочке F1дает мне Aи колокол ( F2а 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.

9

1 ответ на вопрос

5
Thomas Dickey

The problem is the TERM=xterm outside tmux. There is no configuration of PuTTY which matches the xterm terminal description, and the mismatch feeds into screen or tmux (take your pick).

See for example, in the ncurses FAQ Why not just use TERM set to "xterm"?. The recommendation there is of course to set

TERM=putty 

A quick check using tack shows that this combination (TERM=putty, tmux) works for Ubuntu 14.04 (you should have installed the ncurses-term package, which includes this).

Благодарю. На самом деле я не смог найти `tack`, ни с помощью` apt-file search`, ни после установки рекомендованного вами пакета. Но `toe -a | grep -i putty` подтверждает, что существует несколько определений терминалов PuTTY (включая` putty-256color`). Я попробую и вернусь к вам, а также приму соответственно. 0xC0000022L 8 лет назад 0
Я не заметил, что тэка не было в Ubuntu 14.04 (он был в Debian некоторое время, но, вероятно, упустил из виду, когда я выделил его из исходного архива ncurses). Проверяя мою машину, похоже, я запускал один из моих пакетов. Thomas Dickey 8 лет назад 0