#编辑器 #类似vim #极简主义

程序 bo-bin

一款具有类似vim导航功能的极简文本编辑器

1个不稳定版本

0.4.0 2022年5月23日

211文本编辑器

MIT/Apache

170KB
4K SLoC

bo

Tests Coverage

我的(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的导航命令。

路线图

导航

  • 使用 hjkl 进行导航
  • 下一个/上一个段落(}{
  • 下一个/上一个单词(wb
  • 文档中的第一行/最后一行(gG
  • 行中的第一个/最后一个字符(0$
  • 屏幕导航(HML
  • 行中的第一个非空白字符(^
  • 支持多字符命令(例如 2j3}、...)
  • 转到文件中的n%(%
  • 搜索文本并通过匹配导航
  • 通过左键单击移动光标
  • 转到匹配的符号、括号、引号等
  • 支持多行转到匹配符号

编辑

  • 创建新文件
  • 打开现有文件
  • 保存文件 w
  • 重命名文件 w 文件名
  • 在光标下插入字符
  • 包含同时具有 dc 的块(单词、段落、行等)
  • 使用 dd 删除一行
  • 粘贴/粘贴块
  • 在前后插入换行符(oO
  • 替换当前字符(r
  • 替换搜索匹配项
  • 在保存时删除尾随空格
  • 删除当前字符

选项

  • 切换行号
  • 切换单词计数统计信息
  • 切换自动换行

UX

  • 显示帮助
  • 保存会话文件并带有最后已知的光标位置
  • 通过定期保存到隐藏的交换文件来恢复未保存的编辑
  • 命令历史,可使用箭头浏览
  • 支持Unicode字符
  • 当终端大小改变时重绘行

长截图

  • 支持多行编辑
  • 撤销/重做
  • Tab导航
  • 模糊文件查找器

灵感

我从阅读关于 antirez 的编辑器 kilo 的内容中获得灵感,并广泛地基于 Philipp Flenker 优秀的 博客系列 进行工作。

之所以叫 bo 是因为我最近 满30岁了

依赖项

~3.5MB
~68K SLoC