Fish 3 中带有空格和参数的别名
Alias with spaces and arguments in Fish 3
我在 Linux 的 Windows 子系统上使用 fish 2,别名如下:
alias n++="/mnt/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe"
alias d "'/mnt/c/Program Files\ (x86)/Microsoft\ Visual\ Studio/2019/Enterprise/Common7/IDE/devenv.exe' /Edit"
现在我更新到 fish 3,但是别名停止工作了。当我输入“d FileName.cs”时,我收到以下消息:
fish: Unknown command: x86
in command substitution
called on line 1 of file -
in function 'd' with arguments 'FileName.cs'
-: Unknown error while evaluating command substitution
in function 'd' with arguments 'FileName.cs'
似乎引号被忽略了。必须如何更改别名才能工作?
简短回答:这是别名函数中的错误,您的转义不一致。
"'/mnt/c/Program Files\ (x86)/Microsoft\ Visual\ Studio/2019/Enterprise/Common7/IDE/devenv.exe' /Edit"
简单的解决方法是完全转义它:
alias d "'/mnt/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise/Common7/IDE/devenv.exe' /Edit"
或者,因为别名只是一个编写函数的(hacky)函数,所以跳过中间人而只编写一个函数:
function d
"/mnt/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/IDE/devenv.exe" /Edit $argv
end
交互式定义并使用 funcsave d
,或手动将其写入 config.fish 或名为 ~/.config/fish/functions/d.fish.
的文件
我在 Linux 的 Windows 子系统上使用 fish 2,别名如下:
alias n++="/mnt/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe"
alias d "'/mnt/c/Program Files\ (x86)/Microsoft\ Visual\ Studio/2019/Enterprise/Common7/IDE/devenv.exe' /Edit"
现在我更新到 fish 3,但是别名停止工作了。当我输入“d FileName.cs”时,我收到以下消息:
fish: Unknown command: x86
in command substitution
called on line 1 of file -
in function 'd' with arguments 'FileName.cs'
-: Unknown error while evaluating command substitution
in function 'd' with arguments 'FileName.cs'
似乎引号被忽略了。必须如何更改别名才能工作?
简短回答:这是别名函数中的错误,您的转义不一致。
"'/mnt/c/Program Files\ (x86)/Microsoft\ Visual\ Studio/2019/Enterprise/Common7/IDE/devenv.exe' /Edit"
简单的解决方法是完全转义它:
alias d "'/mnt/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise/Common7/IDE/devenv.exe' /Edit"
或者,因为别名只是一个编写函数的(hacky)函数,所以跳过中间人而只编写一个函数:
function d
"/mnt/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/Common7/IDE/devenv.exe" /Edit $argv
end
交互式定义并使用 funcsave d
,或手动将其写入 config.fish 或名为 ~/.config/fish/functions/d.fish.