例如,假设以下实现ll
:
alias ls="ls -F -G" # colourise and display dir,exec,etc. icons
alias ll="ls -l -h -o" # long-list, use KB,MB,etc. sizes, no group id
现在假设我使用ll
,虽然通常我很高兴没有(通常是)混乱,但我实际上想要组 ID。
有什么方法可以“取消”选项,例如类似的方法吗ll -!o
?
!
更简单地说,但没有明显的用例,像这里这样的命令foo -B -!B
相当于foo
?
已标记桀骜因为这就是我使用的,但如果确实存在便携式解决方案,显然(?)那是首选。
答案1
对于ls
和其他一些命令,您可以添加另一个选项,这将否定别名中现有的选项。
但作为一个一般的解决方案我认为最好的方法如下:
- 编写别名命令(命令后不要放置空格)
- 运行一个小部件_expand_alias(
M-x _expand_alias
) - 删除不必要的选项并按 Enter 键
如果您经常需要此过程,您可以将此小部件绑定到某个键(^Xa
默认情况下)。