我想知道是否有办法用空格分隔的子命令重复 bash 命令。例如,如果我输入几个命令,
git add a.txt
git status
... other commands starting with git
git commit -m ""
并执行以下操作:
!git
我将再次运行最后一个git commit
命令。我的问题,有没有办法重复包含空格的最后一个命令,例如重复最后一个git status
命令?
我试过了
!git s
!"git s"
,但没有一个有效。
尝试:
!?git s
"!?string"事件指示符在包含字符串的历史记录列表中搜索当前位置之前的最新命令。
你也可以使用它来引用命令n行:
!-n
在这种情况下,您可以按 CtrlR ,键入"git s",然后按 Enter
虽然相关,但不能完全回答你的问题......
尝试将以下两行添加到~/.bashrc
bind '"e[A":history-search-backward'
bind '"e[B":history-search-forward'
功能(source ~/.bashrc
或打开新终端后):
- 当您开始输入"git"并点击向上或向下箭头时,它将搜索您的历史记录完成情况以完成已经在线的内容。
- 参考
你也可以使用 fc
bash 内置命令:
$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ git diff
usage: git diff [--no-index] <path> <path>
$ fc -s 'git s'
git status
fatal: Not a git repository (or any of the parent directories): .git
$