Подсказки Ncurses выглядят неработающими в PuTTY из Windows

12

Byobu выглядит очень разбитым в PuTTY. Я уже исправил проблему с сопоставлением клавиш, но эта проблема не указана на странице руководства или даже в Google:

Сломанная консоль замазки

Обратите внимание на неуместную позицию списка окон, неправильную позицию селектора, дублирование последнего окна, случайную букву А в правом верхнем углу и опцию применения неуместного применения. Вы не можете видеть это, но последний вариант недоступен для выбора.

Есть ли какая-то опция в PuTTY, которую мне нужно использовать, чтобы увидеть это правильно?

TheLQ
источник
Если кто-то захочет создать puttyтег, это было бы неплохо
TheLQ
У меня больше нет Windows, поэтому я не могу проверить, но я бы посмотрел настройки Charset в PuTTY.
JanC
1
Экран отличный - нужно просто прилично.screenrc
Марко Чеппи

Ответы:

10

Настройте замазку для чтения utf8. putty -> config -> window -> translation выберите utf в "Полученные данные в ..." Это не проблема byobu, это проблема замазки.

Смотрите также:

Джо Фишер
источник
1
Согласовано. Обратите внимание, что это указано на странице руководства byobu.1.
Дастин Киркланд
8

Что касается Putty, я добавил это примечание на страницу руководства byobu (1) некоторое время назад:

> PuTTY  users have reported that the
> F2, F3, and F4 shortcut keys are not
> working properly.  PuTTY sends the
> same escape sequences as the linux
> console for F1-F4 by default.  You can
> fix this problem in the PuTTY config,
> Terminal -> Keyboard -> Function keys:
> Xterm R6.

Видеть:

Дастин Киркланд
источник
Я уже сделал это, чтобы сделать Бёбу хотя бы пригодным для использования.
TheLQ
Просто чтобы подтвердить то, что я сказал выше для всех, кто придет: я имел в виду, что скриншот выше с замазкой в ​​режиме Xterm R6. Так что это не решение этой проблемы.
TheLQ
3

Ubuntu использует UTF-8 для своего терминала, но byobu, похоже, использует кодировку «ISO-8859-1 (Западноевропейская)» для своих меню. Вы можете установить кодировку в Window -> Translation.

Я нашел следующий код в Интернете, и я все еще доволен им. byobuможет иметь больше опций, но мне это тоже нравится ( ~/.screenrc):

startup_message off
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]%{w} %l'
shelltitle "$ |bash"
termcapinfo xterm ti@:te@
altscreen on

Примечание: для byobu shelltitle "$ |bash"необходимо удалить / прокомментировать, иначе byobu не будет работать.

Lekensteyn
источник
Замазка, кажется, по умолчанию ISO-8859-1:1998 (Latin-1, West Europe), так что это не проблема. Переключение на UTF-8 сделало терминал чрезвычайно медленным, но исправило меню. Но что этот код должен делать? Ничего не изменилось в бёбу
TheLQ
По умолчанию экран предоставляет вам только оболочку с несколькими (невидимыми) вкладками. С этим кодом у вас может быть необычная оболочка, а внизу - (цветная) полоска, как [ computername ][ 0$ bash 1-$ bash (2*$bash) ][2010-12-11 16:24 ] 1.30 1.40 1.43.
Лекенштейн
0

Таким образом, чтобы бёбу хорошо выглядело в шпаклевке, нужно сделать два изменения.

Во-первых, измените вашу клавиатуру на xterm-R6, как уже упоминалось, а во-вторых, на вашем компьютере с Linux запустите команду от имени обычного пользователя: byobu-select-backendи затем выберите опцию screen(обычно 2).

Должно работать отлично сейчас! Наслаждайтесь!

Daniels
источник
0

У меня это сработало (подходит для Putty - временно):

Окно -> Перевод -> Удаленный набор символов: DEC-MCS

Для окончательного решения в вашем приложении:

  1. добавить в файл .bashrc (только для текущего пользователя) или добавить в etc / bash.bashrc (для всех пользователей)

NCURSES_NO_UTF8_ACS = 1

  1. убедитесь, что у вас есть:

    • sudo apt-get -install ncurses

    • sudo apt-get установить libncursesw5-dev

  2. Добавьте в код: #include <locale.h> #include <ncurses.h> //change curses ------------------------------------- //add in main setlocale(LC_TYPE, "");

  3. Скомпилируйте приложение с помощью -lncursesw , примерно так:

    gcc -o arquivo arquivo.c -lncursesw

Эдвальдо Сильва
источник