如何改变历史的bash完成,完成什么的已经上线?如何改变历史的bash完成,完成什么的已经上线?(H

2019-05-13 15:51发布

我发现了一个命令,几个月前,使我的bash历史自动完成上按向上箭头时什么是已经上线:

$ vim fi

$ vim file.py

我想此设置我的新电脑,因为它保持一个大的历史时节省了大量的时间。 问题是,我不能为我的生活记得有人提到,通过无休止的bash引用和教程阅读遗憾的是没有帮助的。

是否有人知道的命令?

Answer 1:

大概就像

# ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward

或者等价地,

# ~/.bashrc
if [[ $- == *i* ]]
then
    bind '"\e[A": history-search-backward'
    bind '"\e[B": history-search-forward'
fi

(if语句检查交互模式)

通常情况下,上下都绑定到的ReadLine功能previous-historynext-history分别。 我更喜欢PgUp键/ PgDn键绑定,而不是取代上/下的正常运行这些功能。

# ~/.inputrc
"\e[5~": history-search-backward
"\e[6~": history-search-forward

在修改~/.inputrc ,重新启动您的外壳或使用Ctrl + X,Ctrl + R来告诉它重新读取~/.inputrc


顺便说一句,如果你正在寻找相关文章:

Bash使用GNU readline库的shell提示符和历史。



Answer 2:

更新.inputrc文件有以下几点:

"\C-[OA": history-search-backward
"\C-[[A": history-search-backward

"\C-[OB": history-search-forward
"\C-[[B": history-search-forward


Answer 3:

随着ohmyzsh,在您的.zshrc使用:

bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward

重新载入, source ~/.zshrc或重新启动终端。

来源: https://superuser.com/a/418299/71680



Answer 4:

如果set enable-keypad on是在你的~/.inputrc为一些ST( suckless简单的终端 )用户可能,要知道,箭头键在键盘模式。 Ubuntu的附带这个有用/usr/share/doc/bash/inputrc.arrows

# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"\C-[OD"        backward-char
"\C-[OC"        forward-char
"\C-[OA"        previous-history
"\C-[OB"        next-history
#
# Arrow keys in ANSI mode
#
"\C-[[D"        backward-char
"\C-[[C"        forward-char
"\C-[[A"        previous-history
"\C-[[B"        next-history
#
# Arrow keys in 8 bit keypad mode
#
"\C-M-OD"       backward-char
"\C-M-OC"       forward-char
"\C-M-OA"       previous-history
"\C-M-OB"       next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D"       backward-char
"\C-M-[C"       forward-char
"\C-M-[A"       previous-history
"\C-M-[B"       next-history

所以我不知道,如果你需要的所有,但它可能不会伤害到在你的~/.inputrc

# Arrow keys in keypad mode
"\C-[OA": history-search-backward
"\C-[OB": history-search-forward
"\C-[OC": forward-char
"\C-[OD": backward-char

# Arrow keys in ANSI mode
"\C-[[A": history-search-backward
"\C-[[B": history-search-forward
"\C-[[C": forward-char
"\C-[[D": backward-char

这也是关于同一主题: 我的光标键不工作 ,也这样的xterm:特殊键



Answer 5:

您可能需要启用bash补全。

校验

  • /etc/profile
  • /etc/bash.bashrc
  • ~/.bashrc

以查看是否任何上述文件的源/etc/bash_completion 。 即

. /etc/bash_completion

如果/etc/bash___completion不被任何上述文件的来源,你需要将它添加到其中的一个。

如果你希望你的计算机上的所有bash用户有bash补源/etc/bash_completion/etc/bash.bashrc

如果它只是你谁想要的bash完成,源/etc/bash_completion从您~/.bashrc



文章来源: How do I change bash history completion to complete what's already on the line?