1个不稳定版本
0.4.0 | 2022年5月23日 |
---|
211 在 文本编辑器
170KB
4K SLoC
bo
我的(WIP)个人散文文本编辑器。
https://user-images.githubusercontent.com/480131/131999617-61acc5a2-4055-4cd1-9da1-134ee9e075b4.mp4
为什么?
bo
的目标是以下
- 用Rust编写第一个非平凡应用程序
- 创建一个极度符合我个人品味的文本编辑器,只实现我喜欢的和使用的Vim导航功能
- 使其 不可配置
对于一个软件工程师来说,一个好的文本编辑器至关重要,但“好”的定义实际上取决于上下文。我确实喜欢Visual Studio的丰富生态系统,我喜欢Sublime Text的极致响应速度,我也喜欢vim的普遍性。当我在开发代码时,我倾向于使用具有插件/linters/自动完成的编辑器,但当我在写散文(博客文章、书籍章节等)时,我希望使用尽可能简单且“有效”的编辑器,不会让我迷失在配置选项中。
所以,像Left一样,但具有类似vim的导航命令。
路线图
导航
- 使用
h
、j
、k
、l
进行导航 - 下一个/上一个段落(
}
、{
) - 下一个/上一个单词(
w
、b
) - 文档中的第一行/最后一行(
g
、G
) - 行中的第一个/最后一个字符(
0
、$
) - 屏幕导航(
H
、M
、L
) - 行中的第一个非空白字符(
^
) - 支持多字符命令(例如
2j
、3}
、...) - 转到文件中的n%(
%
) - 搜索文本并通过匹配导航
- 通过左键单击移动光标
- 转到匹配的符号、括号、引号等
- 支持多行转到匹配符号
编辑
- 创建新文件
- 打开现有文件
- 保存文件
w
- 重命名文件
w
文件名
- 在光标下插入字符
- 包含同时具有
d
和c
的块(单词、段落、行等) - 使用
dd
删除一行 - 粘贴/粘贴块
- 在前后插入换行符(
o
,O
) - 替换当前字符(
r
) - 替换搜索匹配项
- 在保存时删除尾随空格
- 删除当前字符
选项
- 切换行号
- 切换单词计数统计信息
- 切换自动换行
UX
- 显示帮助
- 保存会话文件并带有最后已知的光标位置
- 通过定期保存到隐藏的交换文件来恢复未保存的编辑
- 命令历史,可使用箭头浏览
- 支持Unicode字符
- 当终端大小改变时重绘行
长截图
- 支持多行编辑
- 撤销/重做
- Tab导航
- 模糊文件查找器
灵感
我从阅读关于 antirez 的编辑器 kilo
的内容中获得灵感,并广泛地基于 Philipp Flenker 优秀的 博客系列 进行工作。
之所以叫 bo
是因为我最近 满30岁了。
依赖项
~3.5MB
~68K SLoC