Terminal

Nano 編輯器 - 顯示未使用 PuTTY 更新

  • March 2, 2012

當我使用 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 提前處理。

引用自:https://unix.stackexchange.com/questions/33253