使用带有PuTTY和屏幕的Ctrl +箭头键

我search,找不到任何地方的解决scheme。 我使用Windows中的PuTTY连接到运行bash屏幕的各种服务器。 看来bash可以很好的使用Ctrl-箭头键在命令行上逐字跳转,但在屏幕内却不起作用。 不是在屏幕上,按住左键发送“^ [OC和CTRL右键是'^ [OD]。在屏幕内我得到”^ [[C“和”^ [[D“,这似乎是代码只是左/右箭头键有没有什么办法让屏幕识别CTRL-箭头键时使用PuTTY?(FYI,我不记得有这个问题,当在Linux中使用gnuterminal而不是腻子)。

更新:它显示腻子是问题,因为它不是发送这个工作所必需的转义码。 我现在放弃使用Cygwin + mintty。

  • 交互式shell提示?
  • 如何find多个服务器上最大的文件并总结其大小?
  • Bash评价莫名其妙
  • Bash在variables中转换字符
  • Linux shell脚本:如何移动给定名称的所有子文件夹?
  • 为什么备份脚本与cron失败?
  • 7 Solutions collect form web for “使用带有PuTTY和屏幕的Ctrl +箭头键”

    编辑:

    以下是对我有用的东西:

    • 我的~/.bashrc设置TERM=xterm (我碰巧是TERM=xterm-256colors )覆盖屏幕的TERM=screen
    • 我设置PuTTY>terminal>function>禁用应用程序光标键模式进行检查
    • 我在Bash提示符处inputtput smkx
    • 现在Ctrl-Arrow键逐字跳转

    • 为了提供信息,如果我这样做:
      tput smkx | hexdump -c
      我明白了
      0000000 033 [ ? 1 h 033 =

      tput rmkx | hexdump -c
      给我
      0000000 033 [ ? 1 l 033 >

    我认为有一种方法可以将它改写成更好的东西,但这是我迄今为止所看到的,似乎是有效的。

    原始答案:

    info screen

    “屏幕”会话中的每个窗口仿真一个VT100terminal,添加一些额外的function。 VT100仿真器是硬编码的,不能仿真其他terminaltypes。

    而VT100s没有Ctrl-Arrow键码。

    正如在这里提到的,你可以把〜/ .inputrc:

     "\eOD": backward-word "\eOC": forward-word 

    它为我工作。

    我有点惊讶,即使没有使用屏幕,你也可以正确地发送CTRL +箭头键,因为这从来没有为我工作过。 我的解决scheme是切换到使用alt-arrowkeys(meta-arrowkeys),我相信默认情况下在bash中有相同的前向/后向字符绑定,但是我必须为zsh发出几个额外的命令来识别它们:

     bindkey“^ [^ [[C”前缀词#Meta-RightArrow
     bindkey“^ [^ [[D”后缀词#Meta-LeftArrow
    

    如果其他人发现像我这样的老问题,最近的解决scheme:

    Ctrl和箭头键不起作用在腻子! 我该怎么办?

    putty在ctrl上反转了光标键模式的感觉,这对tmux来说是很难被正确检测的。 要正确获取CTRL键,请更改terminfo设置,以便kUP5(Ctrl-Up等)为已调整的版本,并禁用smkx / rmkx,以便tmux不会更改模式。 例如,使用.tmux.conf中的这行(假设你将TERM设置为xterm):

    设置-gterminal覆盖“xterm *:kLFT5 = \ eOD:kRIT5 = \ eOC:kUP5 = \ eOA:kDN5 = \ eOB:smkx @:rmkx @”

    请注意,这只会在tmux 1.2及以上版本中工作。

    http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ

    如果你想正确debugging/configuration你应该看看terminfo,ncurses,screen和putty的文档。 也可以使用inputrcconfigurationbash快捷键。 查看bash的man页面并searchinputrc。

    你在Putty中有正确的字符编码吗? 如果你用UTF-8连接到服务器,并且你的putty是标准字符集,那么在vim中,箭头键就会被写入。 如果腻子使用UTF-8,则可以移动光标。 也许在你的情况是一样的…

    在Terminal – > Features下的puttyconfiguration中,有一些“禁用”checkbox。 您可能要尝试禁用应用程序光标键或应用程序键盘模式 – 有时腻子会尝试“太聪明”,并发送与服务器不兼容的控制字符。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.