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
g
hjkl
用于跳转(G
hjkl
以扩展选区代替)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
/c
s
将选择折叠为匹配文本模式(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