在 centos 上,我可以通过按 ctrl + 箭头(左或右)跳过一个单词。当我 ssh 进入 FreeBSD 框并尝试相同的模式时,我得到了:
$ tail -f 20120412.log;5D;5D;5D
(每次尝试 =;5天)
有办法修复这个问题吗?我正在使用 Ubuntu 12.04 + Terminator。
提前致谢。
答案1
.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
答案2
如果你使用 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
答案3
除非您更改了默认设置,否则您在 Ubuntu 上使用的 shell 是 bash。在 FreeBSD 上,默认 shell 是 csh。您可以在两个操作系统中使用以下命令更改 shell:
chsh
将 FreeBSD 中的 shell 设置为 /usr/local/bin/bash。Bash 不是 FreeBSD 的一部分,因此如果您还没有安装,请从 ports 安装它:
cd /usr/ports/shells/bash
make install
make clean
最后一件事:不要更改 root 的 shell。这就是“toor”帐户的用途:拥有 root 的所有权限,但您可以将 shell 设置为您想要的任何值。原因是在 toor 下没有任何系统活动运行,因此将该帐户的 shell 更改为您习惯的 shell(或可能更适合用作登录 shell)不会破坏任何东西或让任何人感到困惑。
答案4
您在 FreeBSD 机器上运行的 shell 可能不支持该控制序列。但是,如果不知道您在任一端运行的是什么 shell,就很难确定。