Как я могу проверить, какие терминальные определения доступны?

Вы видите различное содержание в энергии:

git diff | view -

Конечно, Вы можете:

diff -u a.txt b.txt | view -

Приятного отдыха!

16
26.01.2012, 14:53
4 ответа

На Солярисе 10 можно сделать:

find /usr/share/lib/terminfo -type f -print

Необходимо смочь сделать что-то как:

find /usr -type d -name terminfo -print

найти, где каталог расположен.

Можно также читать для нахождения точного тракта:

man terminfo
9
27.01.2020, 19:48
  • 1
    Здорово, но у меня есть одна небольшая проблема с ним - как я могу найти путь, не захватывая вывод человека? Это там какой-либо способ сделать это? –   26.01.2012, 17:36
  • 2
    я исправил ответ. –  Karlson 26.01.2012, 17:51

В Linux можно использовать strace, чтобы увидеть, какие системные вызовы использует программа. Далее будут перечислены все "open(2)" системные вызовы и отфильтрованы через sed, чтобы показать, надеюсь, файл терминала, используемый tput для перевода возможности терминала для текущего терминала.

TERMINFO_FILE=$(strace -e open tput cud1 2>&1 | sed -n -e 's/^.*\(".*terminfo.*"\).*$/\1/p')
echo ${TERMINFO_FILE}

Обратите внимание, что это выражение sed предполагает, что ваши файлы терминала хранятся в пути с шаблоном "terminfo" в нем. Если вас это беспокоит, то вы можете использовать другое предположение и выбрать последний "открытый" системный вызов.

TERMINFO_FILE=$(strace -e open tput cud1 2>&1 | grep -e "^open" | tail -n 1 | sed -n -e 's/^.*\(".*"\).*$/\1/p')
echo ${TERMINFO_FILE}

Наконец, вы можете просто выкинуть список путей поиска терминальной информации, используя infocmp -D или tic -D. В них будут перечислены их скомпилированные пути поиска информации о терминалах. Это те же самые пути, по которым осуществляется поиск с помощью курсора.

.
0
27.01.2020, 19:48

Программа infocmp в "любой" системе, поддерживающей terminfo, показывает путь где он находит описание терминала для текущего терминала. Например (AIX в данном случае):

$ infocmp vt100
#       Reconstructed via infocmp from file: /usr/share/lib/terminfo/v/vt100
vt100|vt100-am|Digital VT100,
        am, msgr, xenl, xon,
        cols#80, it#8, lines#24, vt#3,
        ...

Для ncurses это более сложно, потому что у вас может быть несколько баз данных terminfo, и записи не обязательно должны быть отдельными файлами. Одна база данных и один файл на запись по умолчанию для совместимости с системами Unix.

Параметр -D для tic и infocmp (добавлен в конце 2011 года ) - это один из способов показать дополнительную информацию. Например, на моем Debian7 я вижу следующее:

$ infocmp6 -D
/users/tom/.terminfo
/usr/local/ncurses/share/terminfo
/usr/share/terminfo
/lib/terminfo

На моем компьютере с FreeBSD 10 я использую хешированные базы данных:

$ infocmp -D
/usr/local/ncurses/share/terminfo.db
/usr/local/share/misc/terminfo
/etc/termcap

В качестве альтернативы можно использовать программу toe для создания отчета обо всех доступные терминальные записи.Использование параметров -s и -a позволяет комбинировать вещи (например, программа конфликт ):

--> /users/tom/.terminfo
----> /usr/local/ncurses/share/terminfo
------> /usr/share/terminfo
--------> /lib/terminfo
--*-+---:       9term           Plan9 terminal emulator for X
--*---*-:       Eterm           Eterm with xterm-style color support (X Window System)
--*-*---:       Eterm-256color  Eterm with xterm 256-colors
--*-*---:       Eterm-88color   Eterm with 88 colors
--*-+---:       MtxOrb          Generic Matrix Orbital LCD display
--*-+---:       MtxOrb162       16x2 Matrix Orbital LCD display
--*-+---:       MtxOrb204       20x4 Matrix Orbital LCD display
--*-+---:       NCR260VT300WPP  NCR 2900_260 vt300 wide mode pc+  kybd
--*-+---:       aaa             ann arbor ambassador/30 lines
--*-+---:       aaa+dec         ann arbor ambassador in dec vt100 mode
--*-+---:       aaa+rv          ann arbor ambassador in reverse video
...
10
27.01.2020, 19:48

Я столкнулся с той же проблемой на Zyxel NSA310

решение, которое сработало для меня, было

export TERM=xterm

совет был дан здесь:

https://better-coding.com/solved-xterm-256color-unknown-terminal-type/

0
27.01.2020, 19:48

Теги

Похожие вопросы