我对此很菜鸟。
alias gc = git commit -m
我想:
gc
输入终端后- 按
space
一下就会变成git commit -m
- 如果我不想这样,请按,
esc
它会变成上一个gc
- 纠正这个假设
gca
并按space
你明白了。
有什么解决办法吗?
PS:尝试了shopt
选项“shopt -s expand_aliases
如果我写gc
,它应该变成git commit -m
在终端中”
,但事实并非如此。
答案1
我假设你在bash
shell 中有一个别名,比如
alias gc='git commit -m'
Enter并且您希望在按执行命令之前在命令行上展开它。
您可以通过调用 Readline 函数来完成此操作alias-expand-line
。最简单的方法是“绑定”组合键来触发该功能。下面我这样做,相当随意地选择Ctrl+X+ a(它只需要不与我常用的任何其他组合键发生冲突):
bind '"\C-xa": alias-expand-line'
发出该bind
命令后,您可以开始输入一些命令,如下所示:
$ gc "my message"
在该行的任意点按Ctrl+X+会展开别名并将其变成agc
$ git commit -m "my message"
该bind
命令通常会放入您的~/.bashrc
文件中或您为交互式 shell 进行自定义的任何位置。
Readline 函数无法“取消展开”别名,但您可以使用Ctrl+X+Ctrl+U或Ctrl+_来撤消展开(或将undo
Readline 函数绑定到您选择的其他组合键)。