2016-03-29 112 views
0

我試圖解決一些終端問題,我從Windows筆記本電腦連接到使用Git Bash shell的Linux服務器。屏幕看起來沒有正常刷新(清除不會清除屏幕,在退出vim和man輸出後屏幕上等)。我正在查看stty設置並將其與另一個沒有這些問題的linux服務器進行比較。我在我的工作服務器上看到的一件事是eol = M-^?; eol2 = M-^?;。有人可以向我解釋符號嗎?如何在其他服務器上覆制此設置?M- ^是什麼?在stty輸出意味着什麼?

+0

胡亂猜測......結束線產生控制M ?? !! – SriniV

+0

那麼這不會顯示爲「^ M」嗎?例如'intr =^C;' – Archa5238

回答

1

stty僅限於單字節字符。

bash使用M-前綴的命名約定(和其他一些程序一樣)來表示元標誌。通常,^?是ASCII DEL(十進制127,十六進制0x7f),所以我期望M-^?爲255(0xff)。

根據執行情況(見_POSIX_VDISABLE討論)stty可能會顯示該值作爲undef

$ stty -a 
speed 38400 baud; rows 40; columns 80; line = 0; 
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; 
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; 
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; 
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts 
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff 
-iuclc -ixany -imaxbel -iutf8 
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt 
echoctl echoke 

關於,ncurses的有terminfo(5)一些文檔:

如果終端有一個「元鍵」,它充當一個移位鍵,將位設置爲的第8位,即位任何傳送的字符, 這個事實可以用km表示。否則,軟件 將假定第8位位是奇偶校驗位,它通常會清除 。如果存在字符串以在 上關閉此「元模式」,則它們可以作爲smmrmm給出。

並與keyname功能,它以這樣的形式返回值:

值高於128或者是間位的字符(如果 屏幕尚未被初始化,或者如果meta一直 調用一個TRUE參數),如MX表示法中所示,或者顯示爲它們自己。在後者 的情況下,這些值可能不可打印;這遵循X/Open規範 。

延伸閱讀: