我尝试在 Fish Shell 中通过设置缩写 ( nu
) 来扩展为字符串,从而节省一些时间:
my-username@my-ip-address:/home/my-username
我希望实现的是输入:
scp some-file nu
...然后按制表符或空格键完成nu
缩写以将其扩展为我在 中设置的字符串config.fish
。
我有更多使用此功能的案例,但 Fish 似乎没有涵盖它。它提供缩写,但它们似乎只在命令开头起作用;我无法让它们在行内工作。有什么想法吗?
答案1
Fish 目前仅允许在命令位置进行缩写扩展。这意味着,例如,它在|
(管道)符号之后有效,但不在命令中间有效。多年来,关于它已经出现了很多问题。请参阅
https://github.com/fish-shell/fish-shell/issues/5003
https://github.com/fish-shell/fish-shell/issues/1963
https://github.com/fish-shell/fish-shell/issues/1220
可能还有其他几种。另外,请注意缩写扩展仅支持文字字符串替换,不支持结果自定义(而且不太可能改变)。因此,如果您希望扩展的某些部分(例如my-ip-address
)根据您所使用的系统等因素而变化,则需要在启动 shell 时创建缩写。