zsh preexec命令修改
发布时间:2020-05-24 11:04:08 所属栏目:Linux 来源:互联网
导读:有没有办法修改即将执行的命令? 我想将输出重定向到文件,并将其打印在终端上. 我发现ls file.txt |猫做的工作,所以我想添加 file.txt | cat到任何即将执行的命令. 有没有更好的方法重定向到文件并打印到终端?我正在尝试制作记录器. 您可以更改执行行时执行
|
有没有办法修改即将执行的命令?
解决方法您可以更改执行行时执行的操作以更改将要执行的命令.这可以通过定义一个函数然后绑定到回车键来完成.让我们首先定义一个可以添加’>的函数. file.txt | cat’结束任何命令: function log_and_accept {
BUFFER="$BUFFER > file.txt | cat"
zle accept-line
}
下一部分是用新函数实际替换默认的回车键行为.我们要替换的默认行为是accept-line函数,如果我们查看zle documentation,您将看到accept-line绑定到^ J和^ M. 要将此函数绑定到这些字母,首先需要将其转换为小部件: zle -N log_and_accept_widget log_and_accept 然后你可以绑定它,替换旧的行为: bindkey '^J' log_and_accept_widget bindkey '^M' log_and_accept_widget 现在,您将针对您执行的每个命令扩展该命令.每个cd,ls,vim等等.因此我建议你定义一些实际上打开和关闭它的功能: function turn_on_logging {
bindkey '^J' log_and_accept_widget
bindkey '^M' log_and_accept_widget
}
function turn_off_logging {
bindkey '^J' accept-line
bindkey '^M' accept-line
}
zle -N turn_on_logging_widget turn_on_logging
zle -N turn_off_logging_widget turn_off_logging
bindkey '^P' turn_on_logging_widget
bindkey '^O' turn_off_logging_widget
我想你应该小心这一点.经过一段时间的测试后,我很快就开始不喜欢它了. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – 如何在Linux下检测何时插入闪存驱动器?
- 如何在内核空间中附加数据包?
- 如何读取htop中的内存使用情况?
- macos – 如何为root用户设置环境变量
- android – adb install失败,错误为’INSTALL_FAILED_INSUF
- curl – 如何将文件从命令行上传到jenkins中的文件参数
- linux – 如何列出iptables阻止的IP地址?
- linux – 如何在Ubuntu上使用IRQBALANCE_BANNED_CPUS禁止硬
- linux – .got和.gottpl部分有什么区别?
- linux – RNG比/ dev / random更快但加密有用吗?
