别名按名称打开文件
Alias to open a file by name
别名允许您只需在终端中键入文件名即可打开某些文件格式。例如,如果文件类型为 html、htm,它将在 firefox 中打开。 alias -s {html,htm}=firefox
我可以对文本文件做同样的事情,只列出我想要的类型,但是如果文件没有它们怎么办,比如 ~/.zshrc 或 /etc/fstab?如何按名称打开这样的文件?
对于您经常编辑的常见文件,您可以为这些文件创建单独的别名。我有
的别名
alias hosts="sudo vi /etc/hosts"
alias zshrc="vi ~/.zshrc"
这个函数应该做你想做的(添加到.zshrc
):
command_not_found_handler() {
if [[ -o interactive && -w ]]; then
vi
else
echo zsh command_not_found_handler: command not found: $@ >&2
return 1
fi
}
顾名思义,只要 zsh 无法找到在 shell 中输入的命令,就会调用它。现在,如果未找到 'command',将根据该参数调用编辑器。
-o interactive
测试应确保仅在您输入内容时调用编辑器; shell 脚本中的无效命令仍然会失败。 -w
测试检查可编辑文件。
您可能会在使用时发现其他条件需要检查。
ETA:如评论中所述,这仅适用于简单的文件名;如果指定了文件路径,它将不起作用。
别名允许您只需在终端中键入文件名即可打开某些文件格式。例如,如果文件类型为 html、htm,它将在 firefox 中打开。 alias -s {html,htm}=firefox
我可以对文本文件做同样的事情,只列出我想要的类型,但是如果文件没有它们怎么办,比如 ~/.zshrc 或 /etc/fstab?如何按名称打开这样的文件?
对于您经常编辑的常见文件,您可以为这些文件创建单独的别名。我有
的别名alias hosts="sudo vi /etc/hosts"
alias zshrc="vi ~/.zshrc"
这个函数应该做你想做的(添加到.zshrc
):
command_not_found_handler() {
if [[ -o interactive && -w ]]; then
vi
else
echo zsh command_not_found_handler: command not found: $@ >&2
return 1
fi
}
顾名思义,只要 zsh 无法找到在 shell 中输入的命令,就会调用它。现在,如果未找到 'command',将根据该参数调用编辑器。
-o interactive
测试应确保仅在您输入内容时调用编辑器; shell 脚本中的无效命令仍然会失败。 -w
测试检查可编辑文件。
您可能会在使用时发现其他条件需要检查。
ETA:如评论中所述,这仅适用于简单的文件名;如果指定了文件路径,它将不起作用。