Здравствуйте. Помогите решить проблему.
На сервере стоит линукс без графики в буквеноцифровом режиме 25х80.
Для перемещения по файлам использую Midnight Commander,
а для правки конфигов встроенный в него текстовый редактор mcedit
Все манипуляции делаю от рута.
В редакторе в файле клавиш /root/.config/mc/mc.keymap
Для перемещения в верх и вниз открытого текстового файла использую
вот эти настройки
Top = home; alt-lt
Bottom = end; alt-gt
то есть вверх перемещаюсь по нажатию home а вниз по нажатию end
Для перемещения в конец и начало строки использую вот эти настройки
Home = ctrl-home
End = ctrl-end
то есть в начало строки перемещаюсь по нажатию ctrl+home а в
конец строки по нажатию ctrl+end
На домашнем линуксе с графикой такие же настройки,
и на сервере и на домашнем всё работает нормально.
На домашнем вот такая связка
KDE -> konsole -> mc -> mcedit
или
KDE -> konsole -> mcedit
или
фреймбуфер -> bash -> mc -> mcedit
или
фреймбуфер -> bah -> mcedit
На сервере
bash(25x80) -> mc -> mcedit
или
bash(25x80) -> mcedit
Но когда по ssh захожу на сервер то не работает,
хоть по home хоть по ctrl+home перемещаюсь в начало открытого файла, или по
end ctrl+end в конец.
Получается вот такая связка уже не работает
KDE -> konsole -> ssh -> bash -> mc -> mcedit
или
KDE -> konsole -> ssh -> bash -> mcedit
или
фреймбуфер > ssh -> bash -> mc -> mcedit
млм
фреймбуфер -> ssh -> bash -> mcedit
Выходит при соединении по ssh на нажатие ctrl как бы не реагирует
или вместо кода нажатия ctrl+home передаётся код просто home,
или при нажатии на ctrl+end передаётся код просто end.
Если на домашнем компьютере или на сервере, в командно строке
набрать ctrl+v, а потом ctrl+home или просто home то выдаёт
один и тот же код ^[[1~, соответственно при ctrl+end или end
^[[4~
Хотя в файлах
/etc/inputrc
/root/.inputrc
Прописано вот что
#"\e[1~": beginning-of-line
#"\e[4~": end-of-line
"\e[1;5H": beginning-of-line
"\e[1;5F": end-of-line
На сервере загружается русская раскладка клавиатуры, что бы
писать на русском комментарии, вот такой командой
loadkeys /usr/share/kbd/keymaps/ru
Я не могу понять где причина почему через ssh перестаёт работать
ctrl+home и ctrl+end, а работает просто как home или end.
Ведь по отдельности всё работает, получается причине не в terminfo....
Я не знаю кто отвечает за кодировку нажатых клавиш, думаю что при работе в mcedit и просто в фреймбуферском или буквеноцифровом терминале за это отвечают разные библиотеки и соответственно разные настроечные файлы, если они конечно есть. Думаю дело не в ssh.
Если кто в курсе, подскажите хотя бы где смотреть.
Дело уже не в редакторе mcedit, просто хочется разобраться в проблеме.
Проблема эта у меня давно. Ранее спрашивал на других форумах, но ответа так и не нашёл.
Дело уже не в редакторе. Очень хотелось бы узнать в чём причина, докопаться до корня проблемы.
За помощь буду заранее благодарен!