别名按名称打开文件

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:如评论中所述,这仅适用于简单的文件名;如果指定了文件路径,它将不起作用。