在FreeBSD的终端上按Ctrl +箭头键时获得; 5D


18

在centos上,我可以通过在终端中按ctrl +箭头(向左或向右)来跳过单词。当我进入FreeBSD盒并尝试相同的模式时,我得到:

$ tail -f 20120412.log;5D;5D;5D

(每次尝试= ; 5D

有没有办法来解决这个问题?我正在使用Ubuntu 12.04 + Terminator。

提前致谢。

Answers:


26

.inputrc您的主目录中的A 将导致ctrl+ left停止在Ubuntu上运行(例如)。

要使所有功能正常运行,请将以下内容添加到中~/.inputrc

# Include system-wide inputrc, which is ignored by default when
# a user has their own .inputrc file.
$include /etc/inputrc

1
为了澄清-这.inputrc应该在远程计算机上设置。
omikron

虽然为我工作,但仅在重启byobu之后。
immeëmosol

1
对于任何人,完全丢失了.inputrc,相关线路对我来说是: "\e[1;5C": forward-word"\e[1;5D": backward-word"\e[5C": forward-word"\e[5D": backward-word"\e\e[C": forward-word"\e\e[D": backward-word
AlbinoDrought

2

除非您已将它们更改为默认值,否则您在Ubuntu上使用的shell是bash。在FreeBSD上,默认的shell是csh。您可以在两个操作系统中使用以下命令更改外壳程序:

chsh

在FreeBSD中将您的shell设置为/ usr / local / bin / bash。Bash不是FreeBSD的一部分,因此,如果尚未安装,请从端口安装:

cd /usr/ports/shells/bash
make install
make clean

最后一件事:不要将shell更改为root。这就是“ toor”帐户的用途:root的所有特权,但是您可以将shell设置为所需的任何内容。原因是没有任何系统活动在toor下运行,因此您不会通过将该帐户的shell更改为您习惯的东西(或可能更有用的登录shell)而不会破坏任何东西或使任何人困惑。


1

您在FreeBSD机器上运行的shell可能不支持该控制序列。但是,如果不知道您在哪一端运行什么shell,就很难确定。


1

如果使用ZSH,请在/ etc / zshrc文件中使用它。

case "${TERM}" in
  cons25*|linux) # plain BSD/Linux console
    bindkey '\e[H'    beginning-of-line   # home 
    bindkey '\e[F'    end-of-line         # end  
    bindkey '\e[5~'   delete-char         # delete
    bindkey '[D'      emacs-backward-word # esc left
    bindkey '[C'      emacs-forward-word  # esc right
    ;;
  *rxvt*) # rxvt derivatives
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    # workaround for screen + urxvt
    bindkey '\e[7~'   beginning-of-line   # home
    bindkey '\e[8~'   end-of-line         # end
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    ;;
  *xterm*) # xterm derivatives
    bindkey '\e[H'    beginning-of-line   # home
    bindkey '\e[F'    end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\e[1;5C' forward-word        # ctrl right
    bindkey '\e[1;5D' backward-word       # ctrl left
    # workaround for screen + xterm
    bindkey '\e[1~'   beginning-of-line   # home
    bindkey '\e[4~'   end-of-line         # end
    ;;
  screen)
    bindkey '^[[1~'   beginning-of-line   # home
    bindkey '^[[4~'   end-of-line         # end
    bindkey '\e[3~'   delete-char         # delete
    bindkey '\eOc'    forward-word        # ctrl right
    bindkey '\eOd'    backward-word       # ctrl left
    bindkey '^[[1;5C' forward-word        # ctrl right
    bindkey '^[[1;5D' backward-word       # ctrl left
    ;;
esac

0

看起来您可能设置了错误的$ TERM设置。echo $TERM找出您当前的设置。可能要使用xterm export TERM=xterm-256color


仍然没有爱= |
jdorfman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.