我如何更改 bash 历史记录完成以完成已经存在的内容?
- 2024-11-05 08:37:00
- admin 原创
- 30
问题描述:
几个月前,我发现了一个命令,当按下向上箭头时,它可以让我的 bash 历史记录自动完成已有的内容:
$ vim fi
按↑
$ vim file.py
我想在新电脑上设置这个,因为在保存大量历史记录时它可以节省很多时间。问题是我无论如何也想不起来它在哪里被提到过,而且阅读无数的 bash 参考资料和教程也无济于事。
有人知道这个命令吗?
解决方案 1:
可能是这样的
# ~/.inputrc
"e[A": 向后历史搜索
"e[B": 历史搜索向前
或者等价地,
# ~/.bashrc
如果 [[ $- == *i* ]]
然后
绑定'“e[A”:历史搜索向后'
绑定'“e[B”:历史搜索前进'
菲
(if 语句检查交互模式)
通常,Up 和 Down 分别绑定到 Readline 函数previous-history
和next-history
。我更喜欢将 PgUp/PgDn 绑定到这些函数,而不是取代 Up/Down 的正常操作。
# ~/.inputrc
"e[5~":向后历史搜索
"e[6~": 历史搜索向前
修改后~/.inputrc
,重新启动你的shell或者使用Ctrl
+ X
, Ctrl
+R
来告诉它重新读取~/.inputrc
。
顺便说一句,如果您正在寻找相关文档:
Bash 使用GNU Readline 库作为 shell 提示符和历史记录。
解决方案 2:
使用以下内容更新 .inputrc:
"C-[OA": history-search-backward
"C-[[A": history-search-backward
"C-[OB": history-search-forward
"C-[[B": history-search-forward
解决方案 3:
如果您像某些 st(简单终端set enable-keypad on
)用户一样,请注意箭头键处于键盘模式。Ubuntu 附带了以下有用的功能:~/.inputrc
`/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:特殊键
解决方案 4:
使用 ohmyzsh,在你的.zshrc中使用它:
bindkey 'e[A' history-search-backward
bindkey 'e[B' history-search-forward
重新加载source ~/.zshrc
或重新启动终端。
来源:https://superuser.com/a/418299/71680
解决方案 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
。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件