【发布时间】:2019-12-18 05:34:37
【问题描述】:
catting 文件在 Zsh 中的一个不错的快捷方式是,例如 Python 文件类型:
<somefile.py
但是,如果该文件是语法高亮的,那就更好了。所以诀窍是使用像bat 这样的工具,而不是默认的cat:
READNULLCMD=bat
这实际上在存在shebang 时有效,因为 Bat 会寻找它。但是,由于输入被简单地视为STDIN,因此可能无法通过扩展名检测文件类型。而且由于大多数文件没有 shebang 行,因此文件扩展名是检测文件类型的必要后备。
有this method 用于调试READNULLCMD,使用函数。我尝试过使用set -x、grepping env 等进行包装,但没有找到查看名称的方法。如果我能看到名字,那么可以使用类似的东西:
mynullcmd() { bat -l $stdin_filename:x } # get extension and use as file type
READNULLCMD=mynullcmd
问题: Zsh 有什么方法可以知道作为 STDIN 传入的内容吗?能知道命令中包含somefile.py吗?
【问题讨论】:
-
是的,我知道我可以输入
bat somefile.py,但我真的很喜欢<快捷方式。 -
我认为唯一的选择是如果有办法找到为标准输入打开的文件的名称。当
READNULLCMD打开时,输入已经被重定向,它没有理由接收文件名作为参数。
标签: zsh