【每日开源】【colibri】一个用 Python 编写的轻量级终端文本编辑器,带语法高亮和文件管理

20 / 29

【每日开源】colibri:Python 写的终端文本编辑器,轻量但有想法

最近翻到一个挺有意思的项目 JustVugg/colibri,作者用 Python 从头撸了一个终端里的文本编辑器。不是 vim/emacs 那种要学一辈子的大块头,也不是 nano 那种功能简陋到只能凑合用的类型——它更像是 “够用且顺手” 的中间路线。

它到底解决什么问题

日常开发里很多人其实不需要重量级 IDE,但又嫌弃 vim 的 modal editing 学习曲线。colibri 的定位就是:在终端里快速打开、编辑、保存文件,同时给你语法高亮、行号、搜索这些现代编辑器该有的基础体验,不用离开 shell 上下文。

核心功能

  • 语法高亮:用 pygments 做 token 高亮,常见的语言基本都覆盖了。
  • 文件树浏览:侧边栏显示目录结构,可以直接用键盘在文件间跳转打开。
  • 搜索:支持在文件内查找文本。
  • 状态栏:显示当前文件名、光标位置、编码等信息。
  • 纯键盘操作:快捷键设计得比较直观,不需要记一堆组合键。

怎么用

安装很简单,clone 下来之后直接:

pip install -r requirements.txt
python colibri.py [file]

也可以不传文件,启动后通过内置的文件树选择要编辑的文件。依赖方面主要是 pygments 和 prompt_toolkit / curses 这类终端 UI 库,没有重型的 GUI 依赖。

技术上的取舍

我个人觉得这个项目最有意思的地方在于它的实现思路——用 Python 写终端编辑器其实挺考验对 terminal 控制序列和事件循环的理解。作者没有用 tkinter 或 web 前端偷懒,而是老老实实处理键盘事件、光标移动和屏幕重绘,这种 “在限制里做东西” 的做法挺值得读源码学习。

性能上别指望它能开超大文件(毕竟 Python + 终端渲染),但日常改配置、写脚本、快速看一下代码完全够用。

适合谁

  • 想找一个比 nano 强、比 vim 轻的终端编辑器的同学;
  • 对 terminal UI / TUI 开发感兴趣,想看看怎么用 Python 做终端应用的开发者;
  • 想读一个结构清晰的小型 Python 项目源码的人。

仓库不大,代码量对入门阅读比较友好。如果作者后续能把插件或主题扩展做起来,可玩性会更高。

项目地址:https://github.com/JustVugg/colibri

  • 作者居然没顺手发布到 pypi 吗?每次都要克隆下来有点麻烦

  • 之前一直用 nano,但那个高亮实在拉胯,这个用 pygments 做的应该好很多

  • 适合我这种记不住 vim 命令又懒得学的新手,哈哈哈

  • 我们公司内网只允许用终端,这个对我来说简直是救命稻草

  • 想到一个问题:中文输入法在终端里编辑会不会乱码,有人试过吗

  • 说到 TUI 开发,prompt_toolkit 是真香,比直接用 curses 省太多事了

  • 有点好奇重绘是怎么处理的,会不会光标移动的时候闪屏

  • 有没有人试过打开大文件怎么样?我平时要改几十万行的日志文件

  • 在 tmux 里跑应该没问题吧?有小伙伴试过吗

  • dawson #10 回复

    侧边栏文件树这个功能好评,nano 里来回切文件真的痛苦

  • 我前两天刚好在找这类项目,比 vim 轻但比 nano 强的定位很精准

  • 能不能简单说下快捷键怎么设计的?已经装了但还没琢磨明白

  • osric #13 回复

    Python 写的编辑器性能上就别奢求了,当个快速改配置的利器挺好

  • haha #14 回复

    pip install -r requirements.txt 这步要是能打包成 pip 安装就更方便了

  • 顺手 clone 了一个,启动起来挺快的,界面比想象中清爽

  • 看完帖子去 star 了,顺便看了下源码,结构确实挺清楚的,学到了

  • 这种踩在中间地带的项目其实挺难的,两边用户都不容易讨好

  • 如果作者能支持配置文件自定义快捷键就好,毕竟顺手的定义每个人不一样

  • 这项目跟 micro 比咋样?我一直用 micro,感觉定位有点像

  • bevyn #20 回复

    希望作者别半途弃坑啊,很多小项目都是更到一半就没动静了

发起回帖(20)