我注意到,对于大多数ncurses函数,在函数名和它们的参数中,y都出现在x之前(getmaxyx(),getparyx(),getyx()等),但几乎所有地方都相反。其他。一般都是编程语言和数学。
为什么会这样?
答案 0 :(得分:0)
匹配用于移动光标的terminal description capability的顺序:
cursor_address cup cm move to row #1 col-
umns #2
对于支持光标地址的终端,原则上你可以有row,col或col,row以及其他变体,例如使用1-based set of coordinates:
%i add 1 to first two parameters (for ANSI terminals)
ANSI 终端使用row,col排序,如许多终端中使用的fragment所示:
ansi+cup,
cup=\E[%i%p1%d;%p2%dH, home=\E[H,
也就是说,cup
是转义字符,后跟 [以及行和列值( p1 和 p2 )由; 分隔,并由 H 终止。
为什么为标准选择特定顺序是模糊的(大约40年前),但它肯定会对使用这些转义序列编写的库产生影响。
进一步阅读: