期末 PJ 设计报告:MINI VIM 编辑器
姓名:蔡哲飚
学号:20307130001
日期:2021.1.5
(一)需求分析
1、设计一个基于 c/c++语言的简易 vim 编辑器
2、具体要求:分为两大模块——Normal 模块和 Insert 模块
(1)Normal 模块对编辑器的控制:实现删除、保存、打开、退出、撤销、移
动、查找、模式、重做
(2)Insert 模块对内容的编辑:方向、Enter、Backspace、Tab、字符、ESC 键
3、每个模块的功能:
删除模块:删除光标处字符。
保存模块:将编辑器内容保存到指定文件,文件存在将其覆盖,否则进行创建。
打开模块:打开指定文件,并将内容显示在编辑器中。
退出模块:退出编辑器。
撤销模块:撤销上一步操作。
移动模块:光标的上下左右移动。
查找模块:在编辑器中查找指定字符串。
转换模块:转换到 Insert 模块。
重做模块:撤销模块的操作进行重做,回到撤销之前。
4、Insert 模块中各键功能:
方向键:控制光标移动。
Enter 键:换行。
Backspace 键:退格删除。
Tab 键:打印四个空格。
字符键:在光标位置插入输入的字符。
ESC 键:返回 Normal 模块。
(二)概要设计
Normal 模块:
输入字符后,判断字符:
1、‘:’则再读取一个字符 ch,若 ch==‘o’则进入打开模块;若 ch==‘w’则进
入保存模块;若 ch==‘q’则进入退出模块。
2、‘ x’则进入删除模块。
3、‘ i’则进行模式转换,由 Normal 模块转换到 Insert 模块。
4、‘ u’则进入撤销模块。
5、‘ h’或‘j’或‘k’或‘l’则进入删除模块。
6、若为‘/’则进入查找模块。
7、若为‘r’则进入重做模块。
若不为上述情况中的任何一种,则什么都不做。
- 1
- 2
前往页