系统:
- 乌班图:20.04
- 内核:5.4.0-162-generic
- 重击:5.0.17(1)
我发现一个奇怪的问题,当我使用 bash 的反向搜索和 CTRL+r 时,我会找到我想要运行的命令。我在运行之前选择 TAB 来选择它,并且由于某种原因 bash 会在命令中插入一个字符串。
就像我想使用的命令是这样的
(reverse-i-search)`sele': docker exec -it my-postgres psql -P pager=off -P expanded=auto -U database -c "select * from stuff;"
当我点击选项卡后,呈现给我的是这个
docker exec -it my-postgres psql -P pager=off -P expanded=auto -U database -c "my-select * from stuff;"
看看my-
前面怎么插的select
?我尝试用 -d 清理我的历史记录并用 -w 写入。但这种行为仍在继续。它仅发生在特定的历史命令通过时。因此,如果我这样做echo dog
并反向搜索它,按下选项卡,则my-
不会插入。我还尝试在命令中搜索其他单词,例如pager
, 或auto
,并且该行为仍然发生。最后一点是,我确实尝试搜索第一个单词docker
,如果我按 TAB 键,则此行为不会插入my-
。看来第一个字还不错。
有谁知道为什么?我没有做任何疯狂的事情,.bashrc
这是我最后添加的唯一内容
# User specific aliases and functions
set -o vi
alias lc='stat -c "%A %a %h %U %G %n" * | column -t'
alias vi=vim
export PATH=/home/fsnt/bin:$PATH
export EDITOR='vim'
export VISUAL='vim'
这是我的.inputrc
#vi mode adding TextObject Motions
$if mode=vi
set keymap vi-command
"ciw": "lbcw"
"yiw": "lbyw"
"ciW": "lBcW"
"yiW": "lByW"
$endif