2 个版本
0.1.1 | 2024 年 6 月 23 日 |
---|---|
0.1.0 | 2024 年 2 月 4 日 |
#177 在 文件系统
每月 68 次下载
145KB
1K SLoC
re:patch
re:patch 是一个面向行的查找和替换工具,具有类似 git add --patch
的界面。支持正则表达式和捕获组,re:patch 可以用于文件和目录。目前支持 Linux 和 MacOS(基于合理努力的 MacOS)。
[!警告]
此工具仍在开发中。虽然它对我有用™,但它还没有很多测试。建议只在受版本控制的目录中使用。
安装
您可以从源代码或通过 crates.io 进行安装。您必须安装最新的 rust/cargo 工具链。
# install the latest release from crates.io
cargo install repatch
# install the latest development version
git clone https://github.com/stevenengler/repatch.git
cargo install --path repatch
示例
注意
与 ripgrep 类似,gitignore 规则被尊重,隐藏的文件/目录被忽略。
用于编辑补丁的编辑器可以通过环境变量或 git 配置进行配置。搜索优先级为 VISUAL
、EDITOR
、GIT_EDITOR
和 git config core.editor
。否则使用 vim。与 sudo -e
类似,编辑器值由空白字符分割并执行,不会被 shell 解释。
终端中显示的补丁将替换 ANSI 转义序列为安全版本。
像大多数文本编辑器一样,文件是替换而不是原地编辑。这意味着文件所有者或其他元数据可能在编辑后更改。新文件将具有与原始文件相同的读/写/执行权限。您还需要足够的临时磁盘空间来存储第二个文件。例如,如果您正在编辑一个10 GB的文件,您必须至少有10 GB的空闲磁盘空间,以便在删除原始文件之前写入新文件。
只要文件行数足够多,就支持大文件(大于可用内存)。例如,一个10 GB的文件有10,000行应该可以正常工作,但一个10 GB的文件只有一行可能会耗尽系统内存,并且终端中看起来可能不太美观。
致谢
依赖项
约10–21MB
约368K SLoC