
Rust Commander 0.3.0 发布:双面板终端文件管理器
来源标题:Show HN: Rust Commander (RC)
Rust Commander 发布 0.3.0 版本,这是一款用 Rust 编写、受 GNU Midnight Commander 启发的双面板终端文件管理器。它保留 MC 风格默认快捷键,并支持后台操作、常驻 Unix shell、只读浏览 ZIP/TAR 归档及 SFTP、FTP/FTPS 远程连接。还支持 MC 扩展操作、自定义键位与列表格式,以及权限修改、文件比较等功能。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
rust commander 是一款受 GNU Midnight Commander 启发的 Rust 终端文件管理器。它保留了熟悉的双面板工作流和 MC 风格的默认键绑定,同时加入了响应式的后台操作、持久化 Unix shell、只读归档与远程浏览,以及快速的目录导航。
浏览 ZIP/TAR 归档、嵌套归档、MC extfs 助手,以及只读的 SFTP、SSH Shell 和 FTP/FTPS 连接;将所选内容复制到本地文件夹。保持一个持久化的 Unix shell,并用 Ctrl-O 在它与面板之间切换。运行 MC 扩展动作和条件式 F2 用户菜单,编辑文件名高亮,并保存学习到的键绑定和自定义列表格式。更改 Unix 权限和所有权,创建或编辑链接,比较文件和目录,并在可搜索的输出查看器中捕获命令。
交换面板、计算目录大小、恢复挂起的屏幕,并用鼠标滚轮或触控板滚动面板和模态框。查看 0.3.0 变更日志以获取完整发布说明,查看路线图以了解未完成的工作。
面板与导航
两个独立的目录面板,支持 Full、Brief、Long 和用户自定义布局。选择 Listing format → User defined 来排列 name、size、mtime、perm、nlink、uid、gid 和 inode 列,用空格或逗号分隔。添加 :width(1–256)以指定固定宽度;未指定宽度的 name 会填充可用空间。例如 perm size:9 name。格式按面板保存,使用 Save setup 保存。Ctrl-U 交换面板及其选择、标签、列表设置和导航历史。焦点跟随活动列表。
以只读文件夹方式浏览 ZIP、TAR、gzip TAR 和 bzip2 TAR 归档,支持正常导航、排序、过滤和打标签。原生文件系统通知会自动刷新两个面板和打开的目录树,包括其他程序所做的更改。更新会被合并并在后台扫描,同时保留选择和标签。
按面板排序、反向顺序、glob 或正则表达式过滤器、隐藏文件控制,以及持久化配置。Left/Right → Encoding(Alt-E)在 Unix 上选择文件名编码:UTF-8、Windows-1252/1251、ISO-8859-2、KOI8-R、Shift_JIS、EUC-JP、GBK、Big5、EUC-KR 或 CP437。列表、排序和面板过滤器使用解码后的名称;文件系统操作保留原始路径字节。该设置同样适用于归档和面板化名称,跟随面板交换,并通过 Save setup 持久化。它不会更改文件内容或终端编码。
非 UTF-8 的 ZIP 名称默认使用 CP437,除非选择了其他编解码器。UTF-8 列表和可编辑路径字段通过可逆的 \xHH 字节转义保留 Unix 文件名;字面反斜杠显示为 \。复制/移动、重命名、mkdir、链接目标、hotlist 路径、View file 以及 Find 的起始目录均接受这种写法。批量重命名掩码基于原始字节操作。正则文件名搜索可以用诸如 (?-u:\xFF) 的模式匹配原始字节;编辑器 {path} 占位符同样保留原生字节。保存的路径设置在需要时使用单独的编码键,而现有的纯路径条目保留其含义。
面板到命令的插入和文件系统补全通过带引号的 RC_NATIVE_HEX_… 引用保留原生字节,当文件名包含无效 UTF-8 或控制字符时。编辑命令时请保持这些引用完整;rc 会将它们的值提供给所选的 POSIX 或 Fish shell。它们能经受会话历史,并可在这些目录内配合字面 cd、Quick cd 和补全使用。剪贴板路径使用与路径字段相同的可逆写法。
用于批量操作的打标签、递归选择总计、响应式 Brief 模式列,以及鼠标选择或激活。Ctrl-Space 为已打标签的目录计算递归表观大小,若没有标签则为所有可见目录计算。结果会更新大小列和大小排序,而不会移动选择。可取消的扫描支持归档,不跟随本地符号链接,并将不可读条目报告为部分结果。
使用 glob 或正则表达式模式选择或取消选择组,可选不区分大小写匹配,并可控制是否包含目录。这些命令作用于可见条目,并保留被列表过滤器隐藏的标签。
被动面板中的快速查看和文件信息。Quick CD 用于精确路径、~、Unix ~user、cd -,以及按等级排序的不区分大小写目录搜索。目录树导航支持静态或动态移动、增量搜索、子树重新扫描和子树遗忘。一个带标签的持久化目录 hotlist,支持添加、编辑、移除和快速添加。
自动刷新在 macOS 上使用 FSEvents,在 Linux 上使用 inotify,在 Windows 上使用 ReadDirectoryChangesW。监视在目录别名之间共享;树只刷新受影响的缓存子树。原生通知在网络或虚拟文件系统上可能不可用;在那里使用手动刷新。监视注册失败会在状态行中报告,并在后台重试。对活动跟踪日志的写入被排除在自动失效之外,因此刷新日志不会触发另一次刷新。日志的创建、删除和重命名仍会更新面板。
对单个或已打标签的条目进行复制、移动、重命名、mkdir 和删除。在 Unix 上,File → Chmod(Ctrl-X c)、Chown(Ctrl-X o)和 Advanced chown 在可取消的后台任务中更改所选或已打标签的条目。Chmod 接受八进制模式或显式的 u/g/o/a 子句,配合 +、-、= 和 rwxXst,例如 u+rw,g-w,o=r。与 GNU chmod 一样,子句从左到右应用,X 检查前面子句留下的权限。Chown 接受账户名或数字 ID;空白字段保留现有值。Advanced chown 组合 owner:group 和可选的 mode。操作仅影响所选条目,不递归。Chmod 拒绝符号链接;chown 更改链接本身。如果后续条目失败或任务被取消,已完成的更改会保留。
File → Link / Symlink / Relative symlink(Ctrl-X l/s/v)创建链接
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。