Это могло бы работать на Вас (GNU sed):
sed 's/\b[0-9]:/0&/' file
В своей конфигурации по умолчанию PuTTY отправляет клавиши курсора в нормальном режиме, например, ^ [OA
, в то время как screen устанавливает клавиши курсора в режим приложения , например , ^ [[A
.
Это делается путем отправки экранной управляющей последовательности для включения клавиатуры (в termcap ks
, terminfo smkx
). Это происходит при включении режима приложения как для цифровой клавиатуры, так и для клавиш курсора, потому что оба присутствуют в возможности ks / smkx
. screen использует эту возможность, если она присутствует, при инициализации терминала. screen также сопровождается отправкой строки в возможности termcap CS
, если она установлена, намекая, что в исходной конструкции использовались описания терминалов, где только клавиатура была инициализирована с помощью ks / smkx
.
Вы замечаете это различие, потому что ваши привязки клавиш ожидают строки, отправленные клавишами курсора в нормальном режиме . Если вы изменили описание терминала для экрана, чтобы опустить часть, которая изменяет клавиши курсора, вы можете продолжать использовать эти привязки.
Например, вы можете сделать это:
infocmp screen >foo
vi foo
и изменить присвоение
smkx=\E[?1h\E=,
на
smkx=\E=,
, затем
tic foo
, чтобы скомпилировать измененное описание. Если вы сделаете это как пользователь (не root), tic поместит скомпилированное описание в ваш каталог ~ / .terminfo
. У этого подхода есть недостатки, и использование tput
для получения информации о привязке ключа является предпочтительным. Но это просто.
Дополнительная литература:
Я нашел это в другом вопросе после размещения сообщения о вознаграждении...
* Ctrl и стрелки не работают в putty! Что мне делать?
putty инвертирует смысл режима клавиш курсора на ctrl, что немного трудно для tmux определить правильно. Чтобы получить правильные клавиши ctrl, измените настройки terminfo так, чтобы kUP5 (Ctrl-Up и т.д.) были скорректированными версиями, и отключите smkx/rmkx, чтобы tmux не менял режим. Например, с помощью этой строки в .tmux.conf (при условии, что TERM установлен на xterm):
set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
Обратите внимание, что это будет работать только в tmux 1.2 и выше.
https://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ