总是在 fish shell 中使用指定的应用程序打开一个 txt 文件

Always open a txt file using specified app in fish shell

我用鱼shell。我总是在 atom 中打开 *.txt 个文件,所以我需要输入 atom filename.txt。我知道,在 zsh 中,有一个选项可以始终使用 alias -s 选项在特定应用程序中打开带有某些扩展名的文件。有没有办法在鱼中实现相同的行为 shell?

抱歉,鱼不支持这个。最好的办法是定义一个调用 atom.

的普通 function/alias

我想到了两个解决方案。首先,使用缩写或函数来减少您必须输入的字符数:

abbr a atom

现在您只需输入 "a *.txt"。执行 function a; atom $argv; end 的优点是它允许更复杂的步骤,而不是仅仅用更长的命令替换短命令。再举一个例子,我的配置中有 abbr gcm "git checkout master",因为这是我经常做的事情。

其次,使用按键绑定。例如安排按[meta-a]在命令开头插入"atom"并执行:

function edit_with_atom
    set -l line (commandline -b)
    commandline -r "atom $line"
    commandline -f execute
end

bind \ea edit_with_atom

键绑定允许比我上面显示的更复杂的操作,因为您可以执行任意代码。

这些解决方案无法扩展,但如果只有几个您 运行 经常希望以更少的击键次数调用的命令,它们可能会有所帮助。