7 个版本
| 0.2.8 | 2022年1月26日 |
|---|---|
| 0.2.7 | 2022年1月26日 |
| 0.2.3 | 2021年4月14日 |
| 0.2.2 | 2020年9月3日 |
| 0.1.0 | 2020年7月27日 |
#1515 在 命令行工具
64 每月下载量
170KB
4.5K SLoC
Teehee - 模态终端十六进制编辑器
受 Vim、Kakoune 和 Hiew 启发。
安装
Arch Linux 用户:Arch Linux 的包可在 AUR 上找到。
其他用户:只需运行 cargo install teehee!如果您没有 rust,可以从 rustup.rs 获取。应用程序将以可执行文件 teehee 可用。未来可能会有更多的安装选项。
动机
逆向工程师、软件工程师和其他 IT 人员经常需要处理二进制文件。当没有更专业的工具时,十六进制编辑器通常是处理二进制文件格式的首选工具。许多现有的十六进制编辑器缺乏对模式编辑的支持,这使得 Vim/Kakoune/Emacs 用户会感到遗憾。Hiew 在某种程度上支持它,但它是非免费软件,并且其快捷键不直观。Teehee 设计用于为 Kakoune 和 Vim 用户提供原生感觉的体验,同时提供额外的十六进制编辑功能,如数据区域的彩色标记和加密/压缩脚本。
演示
Teehee 支持多选、高效的选区修改命令和各种数据编辑操作。
设计

实现的关键绑定
hjkl用于移动(按 shift 以扩展选区代替)
^
< h j l >
k
v
ghjkl用于跳转(Ghjkl以扩展选区代替)h:到行首l:到行尾k:到文件首j:到文件尾<count>g跳到偏移量,<count>G扩展到偏移量
<C+e/y>向下/向上滚动;收缩选区到光标<a-;>(alt 和 ;)交换光标和选区末端<a-s>(alt 和 s) 将选择分割为多个大小...b:1 字节w:2 字节(Word)d:4 字节(Dword)q:8 字节(Qword)o:16 字节(Oword)n:以空字节分隔/:匹配文本模式(?用于十六进制模式)
d从缓冲区中删除所选数据i在选择的开头进入插入模式(I以十六进制而不是 ASCII 插入)a替代i以进入附加模式o替代i以进入覆盖模式c替代i删除选择内容,然后进入插入模式<c-n>在 ASCII 模式下插入一个空字节<c-o>在 ASCII 和十六进制插入之间切换
(和)用于循环主选择<space>仅保留主选择,<a-space>保留所有选择但主选择r<key>用给定的 ASCII 字符替换每个所选字符R<digit><digit>替代r用单个十六进制字符替换r<c-n>用空字节替换
y将选择粘贴/复制到寄存器"p将寄存器"内容粘贴到y/d/cs将选择折叠为匹配文本模式(S用于十六进制模式)的选项M测量当前主选择长度(以字节为单位)u撤销,U重做:进入命令模式:q退出:q!强制退出(即使缓冲区已更改):w将缓冲区刷新到磁盘:w <filename>将缓冲区保存到指定文件:wa将所有缓冲区刷新到磁盘:e <filename>打开一个新的缓冲区:db关闭一个缓冲区:db!即使缓冲区已更改也要关闭缓冲区:wq刷新缓冲区并退出
输入模式
<C-w>插入通配符<C-o>切换输入模式(ascii <-> hex)<esc>返回正常模式<enter>接受模式- 箭头键,
<backspace>和<delete>也受支持
计数
- 以下命令可以加前缀计数
- 移动(
hjkl和HJKL) - 选择修改(
()<space><a-space>) - 跳到偏移量(
g和G) - 粘贴(
p) - (在拆分模式下)
bwdqon
- 移动(
- 计数通过输入数字0-9(在十六进制模式下,0-f)输入。
x在十六进制和十进制模式之间切换。- 注意,
a-f可能会覆盖一些键,因此在运行命令之前请切换出十六进制模式。 - 示例:
y5p:复制选择并将其粘贴5次。 - 示例:
50l:向右移动50个字节。 - 示例:
x500g:跳到偏移量0x500 - 示例:
<a-s>x12xb:将选择拆分为0x12字节的部分。
发布
使用以下PGP密钥签名发布:9330E5D6861507BEFBF1893347E208E66179DC94。源代码可以在GitHub发布页面上找到,包括源代码tgz的签名。
依赖项
~4.5–6.5MB
~110K SLoC