这个领域研究的人很少,大部分编辑器都是基于已有框架的二次开发,比如notepad++,vscode这些
如果自己画界面画光标是比较难的
主要用到:
1. gap buffer 用于处理字符的添加删除,emacs用到这个
2. Rope 用于大文件分割,毕竟你不可能把100M文件都直接展示出来
3. Piece table 微软以前用过,方便多光标同步操作
而且还有很多复杂的问题,编辑状态和实际文件不同的处理,比如打开中的文件,操作了git命令实际修改了文件,还有ctrl+z的操作等等。
【 在 zhangxp024 的大作中提到: 】
: 难度不亚于写个编译器。就普通的程序员常用的文本编辑器吧,类似notepad++ sublime text等等,都不是那么容易的。
: 本废,在窗口换行显示文本的程序都搞不定。放弃了,再也不学了。
--
FROM 114.252.115.*