zsh后缀别名-异常
我想使用后缀别名在vim中自动打开zsh后缀别名-异常,zsh,zshrc,Zsh,Zshrc,我想使用后缀别名在vim中自动打开.py文件。为此,我在zshrc中使用了别名-spy=vim 然而,我的路径中确实有一些python文件是可执行的,我想对其禁用后缀完成。我可以直接用python/path/to/executable.py调用该文件,但是每次输入路径都很麻烦(而且无论如何都要反对path的概念) 有没有办法免除某些文件的后缀别名,最好是那些不在当前工作目录中的文件?如果没有,是否有人知道如何实现这样的功能?在评估别名之前,无法有选择地禁用特定文件的后缀别名 但您可以使用一个函数
.py
文件。为此,我在zshrc中使用了别名-spy=vim
然而,我的路径中确实有一些python文件是可执行的,我想对其禁用后缀完成。我可以直接用python/path/to/executable.py
调用该文件,但是每次输入路径都很麻烦(而且无论如何都要反对path
的概念)
有没有办法免除某些文件的后缀别名,最好是那些不在当前工作目录中的文件?如果没有,是否有人知道如何实现这样的功能?在评估别名之前,无法有选择地禁用特定文件的后缀别名 但您可以使用一个函数来检查路径中是否有文件名作为别名的目标。根据结果,该功能随后将启动程序或在vim中加载文件 例如,您可以将其添加到
.zshrc
vim_or_exec ()
{
interps=($(whence -a "$1"))
if [[ -z $interps[2] ]]; then
vim "$1"
else
"$interps[2]" "${@:2}"
fi
}
alias -s py=vim_or_exec
whence-a
按优先顺序显示给定文件名的所有解释列表。设置别名后,第一个解释将是别名的值,即vim\u或\u exec
。如果文件不在$PATH(或别名、shell函数等)中,则不会有进一步的解释,文件将加载到vim中(vim“$1”
)。如果有进一步的解释,将使用任何进一步的命令行参数(${@:2}
)调用第二个(“$interps[2]”)。在评估别名之前,无法有选择地禁用特定文件的后缀别名
但您可以使用一个函数来检查路径中是否有文件名作为别名的目标。根据结果,该功能随后将启动程序或在vim中加载文件
例如,您可以将其添加到.zshrc
vim_or_exec ()
{
interps=($(whence -a "$1"))
if [[ -z $interps[2] ]]; then
vim "$1"
else
"$interps[2]" "${@:2}"
fi
}
alias -s py=vim_or_exec
whence-a
按优先顺序显示给定文件名的所有解释列表。设置别名后,第一个解释将是别名的值,即vim\u或\u exec
。如果文件不在$PATH(或别名、shell函数等)中,则不会有进一步的解释,文件将加载到vim中(vim“$1”
)。如果有进一步的解释,第二个(“$interps[2]”
)将用任何进一步的命令行参数(${:2}
)调用。工作起来像个符咒,我了解了从哪里来的
-谢谢。工作起来像个符咒,我了解了从哪里来的
-谢谢。