🌸
378 subscribers
127 photos
17 videos
199 links
记录一些 学习笔记,工具,和其它奇怪的东西
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
新出炉 Yazi 的 Neovim 插件 - yazi.nvim,这是目前功能最丰富的:

• 分屏
• 发送到快速修复
• buffer 同步:Yazi 删除/移动/重命名后,Neovim 也能自动更新,用上了新的数据分发服务
• 替换 Netrw

发现这个插件还写了巨多测试,在 GitHub Actions 上跑,好厉害。

https://github.com/mikavilpas/yazi.nvim
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Yazi 现在支持跨实例 yank-paste 了,在一个实例 copy/cut 文件后,在另一个实例 paste。

这对使用窗口管理器、终端复用器,同时运行多个 Yazi 的用户很有用。它基于最新 DDS(数据分发服务)实现。

要启用它,参见 https://yazi-rs.github.io/docs/dds#session.lua
👍5
其它 spam 都挺有礼貌,知道花点时间找找名字,也就忍了,这个直接成了 “Dear [Recipient's Name]”

真想回他个 fuck you bruh 😡
🤣12
This media is not supported in your browser
VIEW IN TELEGRAM
Helix + Zellij + Yazi 工作流

Helix 一直缺 File explorer,于是 Reddit 上有老哥想出了和 Yazi 一起用的方法。

这是他的配置 https://yazi-rs.github.io/docs/tips/#helix-with-zellij
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
群友猫猫给 Yazi 写了个新插件,通过 search label 导航文件。

好酷,以后也能在 Yazi 里体验 flash.nvim 了!

https://github.com/DreamMaoMao/searchjump.yazi
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
重大更新:Yazi 现在支持鼠标了

插件系统为每个组件新增了 click/scroll/touch/move/drag 五个 API 用于处理鼠标事件,并为它们提供了默认实现以覆盖常见操作。

另一方面,这将允许插件开发者扩展光标的行为,实现他们自己想要的任何功能。

https://github.com/sxyazi/yazi/pull/1038 谢谢 @qsdrqs 为此所做的工作!
👍10
一老哥给 Yazi 录了个视频,好喜欢这种 vlog 风格,让我惊讶的是,竟然是在深圳录的,而且中文发音也好棒!

他说后面会尝试纯中文的视频,我觉得这个风格很适合他,期待他的新作品!

https://www.youtube.com/watch?v=cUwu3mkrz_k
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
最近一直在用我写的这个 smart-filter.yazi 插件导航文件,发现效率提升不少,而且简单易用,简直完美。

昨天把它开源了,不到 50 行代码,https://github.com/yazi-rs/plugins/tree/main/smart-filter.yazi
👍7
Yazi 10k star 啦,这是咱第一个 10k 项目,超开心!🥳

最近上了 This Week in Rust,长了好多 ⭐️
👍182
好耶,Yazi 是本月 GitHub Rust 榜第一 🥰🎉

(刚被 at 了才发现,开心xx
👍20🎉3
抛弃 Alacritty 转向 kitty 的原因竟然是 - 为了能让 Yazi 显示图像😄

https://www.youtube.com/watch?v=BeSUAEZIf9A

IMHO,不支持图像的终端都不值得用,人家 VT200 系列早在 1983 就支持的东西,一些现代终端却拒绝添加它,这完全是技术的退步。

很高兴看到越来越多人逐渐抛弃 Alacritty 转向其它终端。
👍6
Yazi 终端文件管理器 v0.3 发布!

经过 3 个月开发,很高兴宣布 Yazi 0.3 今天正式发布。

这个版本带来了许多新功能和改善,像是:

• 鼠标支持
• 新解压插件
• 字体、SVG、HEIC、JPEG XL 预览支持
• 包管理器
• 重新设计图标
• 归档预览性能大提升

请阅读 https://github.com/sxyazi/yazi/releases/tag/v0.3.0 捕捉所有细节。
🎉18
This media is not supported in your browser
VIEW IN TELEGRAM
社区老哥给 Yazi 写了个受 React 启发的 Panes 系统 - 包含了常见的 Rows、Columns、Boxes 部件,每个部件都是一个函数并可以被自由组合和定制(content,padding,margin,borders 等)。

他在 Yazi 的 Discord server 分享了它,看完之后非常震惊,因为默认 UI 被 100% 重写了,并多了一堆新功能(双列布局、尺寸调整、横纵布局切换、窗格选择模式),刚开始我甚至没认出来这是 Yazi。

很开心看到这样的插件出现,也真的很惊讶社区的创造力,目前仍然处于测试阶段,不过有个很棒的演示视频:
👍17
Rust std::fs::copy() 平台差异记录

fs::copy()io::copy() 不同,除了复制文件本身,还会复制文件权限,但一些(网络)文件系统不支持设置权限 - Operation not supported (os error 95),这会导致文件也没法复制。

这个问题只存在于 Linux/Android,因为 Linux 没有像 macOS 的 fclonefileatfcopyfile,Windows 的 CopyFileEx 一个 syscall 搞定整个复制的 API,因此需要将一个原子操作拆成 2 个,Rust 为了保证安全,之中任何一个失败都视为整体失败。

而文件能在所有 FS 复制是预期行为,因此对于 Linux/Android,我会 io::copy() + 静默 fchmod。strace 了下它和 fs::copy() 一致,这意味着它仍然会尝试 copy_file_range,不会损失 CoW FS 的优势。

需要注意的是,对于 macOS,当前实现,io::copy() 就只是个 userspace read-write-loop,所以 macOS 应该仍然使用 fs::copy(),反正也不存在这个问题。

TLDR:为了让文件在所有 FS 都能复制,并且保留 CoW,Linux/Android 使用 io::copy() + fchmod,其它使用 fs::copy()

https://www.reddit.com/r/rust/comments/57cmm1/weird_behavior_of_stdfscopy_on_networkmounted/
👍6❤‍🔥1
mlua v0.10 升级体验

昨天把 mlua 从 0.9.9 升到 0.10.0,以为就 10 分钟的事,结果改了一个小时也没改完,从满血直接给我干到吐血:

• 所有 struct、trait lifetime 都删了,行吧,为了更方便推断类型,我可以批量替换下

• trait 名从 TableExt 换成了 ObjectLike,也可以替换下

• Scope 的 create_any_userdata 给扬了,啊?变更日志没有啊,也没标记 deprecated,就没了??直接把 owned any userdata 需求干死了,害,那就把我 struct 从 register_userdata_type() 全换成 UserData trait 吧

mlua::Stringto_str()as_bytes() 返回类型也变了?从 Cow<str>&[u8] 变成了 BorrowedStrBorrowedBytes,用得时候得 let s = s.to_str(); let s = s.as_ref()。这个也没任何记录,对着编译器自己修吧

mlua::Stringto_string_lossy() 返回值从 Cow<str> 改成了 String,啊?标准库都不敢这么干,反正你 to lossy 我就分配内存。这个也没记录,对着编译器自己修吧

• 好消息,0.10.0 的 UserDataRef 只能在 non-scoped 用了,scoped 就自求多福吧,https://github.com/mlua-rs/mlua/issues/475 - 这个昨天调了好久,它甚至不是一个编译错误,而是行为变化产生的运行时错误,同样没记录,不问不知道

MultiValue::from_vec 也删了,没记录,也没标记 deprecated 就没了


总之,非常糟糕升级体验,连迁移文档都没,全靠自己猜,改了 89 个文件了,卡在 UserDataRef 问题上,预感还远远没改完,还是头一次升级个 crate 改那么多东西。。。

https://github.com/sxyazi/yazi/pull/1842
🤣7