2009-05-29 45 views
1

幾件事情在這裏:Cygwin的bash和ANSI控制序列

  1. 任何人都可以點我在C代碼解碼ANSI控制檯轉義序列?
  2. 有沒有辦法讓Cygwin BASH模仿一個笨老TTY?

也許這應該是2個問題。

謝謝。

+0

您是指ANSI轉義序列上的_act_?像移動光標? – 0x6adb015 2009-05-29 13:12:21

+0

什麼意思是「讓Cygwin BASH模仿一個笨老TTY」? Bash是一個殼;它不是終端模擬器。 – 2009-05-29 13:23:12

回答

4

這是一個有點間接的答案,但GNU ncurses庫處理各種終端。

infocmp ansi 

這將使您的組用於由詛咒方案來實現對一個ANSI效果的terminfo屬性:找出哪些控制序列都適用於ANSI終端。將反編譯的ANSI終端描述的一種方式終奌站。當然,你必須知道那些象形文字是什麼意思。

在Cygwin,我得到:

$ infocmp ansi 
#  Reconstructed via infocmp from file: /usr/share/terminfo/61/ansi 
ansi|ansi/pc-term compatible with color, 
    am, mc5i, mir, msgr, 
    colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, 
    acsc=+\020\,\021\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
    bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, 
    cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, 
    cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
    cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, 
    dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, 
    el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH, 
    ich=\E[%p1%[email protected], il=\E[%p1%dL, il1=\E[L, ind=^J, 
    indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D, 
    kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, 
    mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m, 
    rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT, 
    rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m, 
    s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, 
    setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
    sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, 
    sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m, 
    smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, 
    u8=\E[?%[;]c, u9=\E[c, vpa=\E[%i%p1%dd, 

$ 

的 '\E' 符號是指ESC字符。

如果失敗了,你可以查看標準本身。

3

調整TERM環境變量可能會使基於terminfo/termcap的應用程序避免使用高級轉義序列。 (export TERM = dumb) 雖然我不確定那是你想要的。

+1

謝謝 - 我試過這個,但它似乎沒有效果 – 2009-05-30 13:42:36