Bash 反向搜索在点击 Tab 后将字符插入命令中

Bash 反向搜索在点击 Tab 后将字符插入命令中

系统:

  • 乌班图: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

相关内容