Linux
如何檢查哪些終端定義可用?
大部分問題都在標題中,但要詳細說明:
在大多數 Linux 上,我可以
find /usr/share/terminfo -type f
。但是在我附近的 Solaris 機器上 - 這個目錄甚至不存在。我可以遍歷終端列表,並執行以下操作:
for TERM in xterm xtermc xterm-color xterm-256color screen rxvt do tput cols >/dev/null 2>/dev/null && echo "$TERM available" done
但它很慢。發現終端定義使用的路徑
tput
並自己執行“查找”的任何選項?
在 Solaris 10 上,您可以執行以下操作:
find /usr/share/lib/terminfo -type f -print
您應該能夠執行以下操作:
find /usr -type d -name terminfo -print
找到目錄所在的位置。
您還可以閱讀以找到確切的路徑:
man terminfo
支持 terminfo 的“任何”系統上的 infocmp 程序恰好顯示了找到目前終端的終端描述的路徑名。例如(在本例中為 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 系統兼容,預設情況下每個條目一個數據庫和一個文件。
tic和infocmp
-D
選項( 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
and-a
選項可以讓它組合一些東西(比如conflict
程序):--> /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 ...