Nano 編輯器 - 顯示未使用 PuTTY 更新
當我使用 PuTTY 通過 SSH 協議連接到特定的 Linux 伺服器,並嘗試使用 nano 編輯器編輯文件時,“enter”不會更新顯示。當我按 enter 插入另一個換行符時,以下行不會向下移動。但是,如果我保存文件並重新打開它,就會出現新的換行符。
我進一步發現這只發生在文件的前 3-4 行。
這個特定的伺服器執行 CentOS 6。當我連接到不同的伺服器時,我沒有同樣的問題。
問題出在哪裡,我該如何解決?
執行
infocmp $TERM
報告:# Reconstructed via infocmp from file: /usr/share/terminfo/l/linux linux|linux console, am, bce, ccc, eo, mir, msgr, xenl, xon, colors#8, it#8, ncv#18, pairs#64, acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\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, civis=\E[?25l\E[?1c, clear=\E[H\E[J, cnorm=\E[?25h\E[?0c, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?25h\E[?8c, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmam=\E[?7l, rmir=\E[4l, rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, 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%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h, smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd,
通過將我在 PuTTY 中保存的“問題”伺服器會話與“工作”伺服器的會話進行比較,我發現了問題。在終端仿真選項下,我選中了“DEC Origin Mode initial on”。取消選中此選項可解決問題。
我對執行“PuTTY over ssh”的語句有點困惑。我假設您的意思是使用 PuTTY 通過 SSH 協議連接到 Linux 伺服器(對不起,它太羅嗦了,只是想澄清一下)。使用 PuTTY 時,TERM 應始終為 xterm,因為 PuTTY(和許多其他圖形終端)模擬舊的 xterm 終端仿真器。TERM 值 Linux 意味著您直接在 Linux 文本控制台上執行,而沒有執行 X11/Xorg。PuTTY 的 TERM 值通常在 PuTTY 配置 -> 連接 -> 數據 -> 終端類型字元串下設置。它應始終設置為 xterm。另一種可能性是當您登錄到故障伺服器時,.bashrc、.profile、.cshrc 等登錄腳本正在設置 TERM。如果 TERM 仍設置為 Linux,請嘗試在命令行中執行它:
export TERM=xterm
如果這解決了 nano 的問題,您可能必須使用登錄腳本來設置它。登錄腳本永遠不必設置 TERM,因為它通常由 getty/sshd 提前處理。