CE编辑器--基于wxWidgets和Scintilla (一)

CE(Code Editor)

欢迎使用CE编辑器

作为使用EMACS超过十年的老用户,针对日常使用中不方便的地方,一直想给EMACS贡献一个插件,中间,专门学习了LISP,但是实在是不熟悉,写些小的函数还可以,写个大的插件还是太费力,最近刚好空了点,索性基于wxWidgets写了一个代码编辑器。 废话不多说,开始。

启动

CE基于wxWidgets开发,在windows和linux平台下,都可以正常使用,功能完全一致。
启动方式,直接ce,或者双击:
第一次打开是这个样子
CE编辑器--基于wxWidgets和Scintilla (一)_第1张图片

常规操作

  1. Ctrl+E (Explorer)显示文件浏览器
  2. Ctrl+W (Workspace)显示Workspace
    CE编辑器--基于wxWidgets和Scintilla (一)_第2张图片
    在explorer中使用上下左右键可以在文件树中移动,修改了一个目录的内容之后,重新合上目录节点再打开,内容就会更新。
    左键:合上当前节点,如果当前节点已经合上,跳转到上一级目录。
    右键:展开当前节点,如果当前节点已经站看,则选中第一个子节点。
    上下键:在同级目录中上下移动
    其他字母键:按首字母匹配,选中对应项。
    如果选中一个文件,直接回车,就可以打开。
    鼠标双击也可以打开。
    鼠标右键菜单,可以把一个目录添加到Workspace.
    CE编辑器--基于wxWidgets和Scintilla (一)_第3张图片
    Workspace中支持和Explorer中类似的鼠标键盘操作。
    把常用的目录添加到workspace中,可以方便打开文件,并且CE会对workspace中的代码做索引,实现函数参数提示,代码跳转,自动补全等相关功能。

Explorer和Workspace不会同时显示,使用CTRL+W/CTRL+E相互切换。

ALT + O (Open)查找并打开文件

使用Explorer和workspace可以满足基本的文件打开需求,但是文件比较多的时候,这种方式就比较低效了,推荐使用ALT +O来查找并打开文件。
可以支持模糊匹配,比如输入:
test cpp,则会匹配到Test.cpp TestAAAcpp.test
匹配规则如下:
空格隔开的多个词同时匹配,如果一个词是全小写,则不区分大小写,如果包含大写字符,则区分大小写。

查找规则如下:
如果当前显示了Workspace则在Workspace中查找。
如果当前显示了Explorer则在Explorer中当前选中的目录中查找。
如果Workspace和Explorer都不显示,则默认从当前正在编辑的文件所在的同级目录查找。

匹配列表中,使用上下键选择不同的项,使用CTRL+上下键移动选择并打开对应的文件,但是不切换键盘焦点。回车直接打开对应的文件,并切换输入焦点。CE编辑器--基于wxWidgets和Scintilla (一)_第4张图片

CTRL+S(Save)保存文件

CTRL+S 保存当前正在编辑的文件。
如果文件有没有保存的修改,则标题栏上会有*号提示。
拥有键盘输入焦点的时候,标题栏会蓝色高亮显示。

CTRL+K (Kill) 关闭文件

CTRL+K 关闭当前正在编辑的文件。
其他各种打开的小窗口,在拥有键盘焦点的时候,统一使用CTRL+K关闭。

CTRL+C/X/V/Z/U复制,剪贴,粘贴 ,撤销,取消撤销

常规操作,不多说。

CTRL+B(Buffer)切换编辑文件或者新建文件

在打开文件特别多的时候,除了常规的鼠标操作来切换多个TAB之外,
还可以使用CTRL+B来快速切换文件,支持多词智能匹配。也可以选择新建一个文件。CE编辑器--基于wxWidgets和Scintilla (一)_第5张图片

CTRL+PAGEUP/PAGEDOWN 切换多个打开的文件

CTRL+PAGEDOWN,切换到下一个打开的文件。
CTRL+PAGEUP切换到前一个打开的文件。

CTRL+G跳转到指定行

Ctrl+G可以直接跳转到特定行。

ALT+PAGEUP/ALT+PAGEDOWN切换到文件头和文件尾

ALT+PAGEUP 直接跳转到第一行。
ALT+PAGEDOWN直接跳转到最后一行。

退出

ALT+F4或者鼠标操作,都可以直接退出,如果有编辑过的文件没有保存,会提示保存。当前打开的所有文件,以及页面布局,当前正在查看的位置,下次重新启动,一切照旧,所以,可以在任意时候毫不犹豫的关闭CE,下次打开,一切照旧。

查找

对于程序员来说,查找是最常用的操作了

CTRL+F (Find) 文件内查找

CTRL+F文件内查找,匹配规则,按键使用方法同查找文件
CE编辑器--基于wxWidgets和Scintilla (一)_第6张图片

ALT+F (Find)文件夹内查找

查找规则,匹配方式,按键操作,同查找文件,查找结果,按文件名自动分组。
CE编辑器--基于wxWidgets和Scintilla (一)_第7张图片

ALT+S(Symbol)显示当前文档的所有符号

可以显示当前文件的所有符号,包括函数,类,枚举类型,宏定义等。 已经修改为按字母顺序排列,方便查找.

CE编辑器--基于wxWidgets和Scintilla (一)_第8张图片

CTRL+1 只显示出窗口

打开了很多个小窗口之后,可以CTRL+1只显示代码主窗口。
CE编辑器--基于wxWidgets和Scintilla (一)_第9张图片

ALT+R(Reference) 查找函数调用

ALT+R可以查找一个符号在Workspace中的使用情况。
CE编辑器--基于wxWidgets和Scintilla (一)_第10张图片

ALT+T(Text)查找字符串

ALT+T可以查找一个字符串在Workspace中的使用情况。
CE编辑器--基于wxWidgets和Scintilla (一)_第11张图片

ALT+>跳转到函数定义

CE编辑器--基于wxWidgets和Scintilla (一)_第12张图片

语法高亮

现在只做了C/C++/JAVA的语法高亮。
可以自动识别一下内容:
关键字,类型定义,函数定义,函数参数,局部变量等。分别使用不同的颜色标记,注释中的@支持高亮,java 注释中的文档也支持高亮,不一一截图,如图:
CE编辑器--基于wxWidgets和Scintilla (一)_第13张图片

移动光标时,会在左下角显示当前所在的函数名。

鼠标点击符号,显示定义

鼠标点击到任意符号,会显示对应的定义。

鼠标双击函数参数自动高亮函数体内所有使用的地方

CE编辑器--基于wxWidgets和Scintilla (一)_第14张图片

鼠标双击局部变量自动高亮函数体内所有使用的地方

CE编辑器--基于wxWidgets和Scintilla (一)_第15张图片

CTRL+R(Replace)替换

选中局部变量的时候,会自动替换函数内所有使用到的地方。
选中函数参数的时候,会自动替换函数参数所有使用到的地方。
其他内容,在当前{}范围内自动替换。
使用可见即可得的方式替换,替换内容实时输入,实时显示。
CE编辑器--基于wxWidgets和Scintilla (一)_第16张图片

替换之后:
CE编辑器--基于wxWidgets和Scintilla (一)_第17张图片

自动对齐

对于程序员来说,对齐是特别麻烦的事情,针对这个问题,专门做了优化:

回车自动对齐

回车之后,自动对齐到正确位置

TAB键自动对齐

在一行的任意位置按TAB键,都可以自动把当前行对齐好,不管按多少次TAB键,都不会多加多余的对齐。

多行自动对齐

选择多行内容,直接按TAB键,选中的内容自动对齐

粘贴内容自动对齐

CTRL+V 粘贴过来的内容会自动对齐,无需特别操作。

代码折叠

支持#预处理处折叠
支持{} 出折叠
支持(折叠
支持多行注释折叠
CE编辑器--基于wxWidgets和Scintilla (一)_第18张图片

ALT+; 自动注释,反注释大段代码

在代码调试过程中,经常会需要注释掉大段的代码,特别添加了这个功能:
CE编辑器--基于wxWidgets和Scintilla (一)_第19张图片

其他

自动输入

输入(,{,“,‘,自动匹配,删除的时候自动删除不匹配项。
光标移动到({附近时,自动高亮匹配的另外一半。
代码中如果混入了中文的内容,红色背景显示。
在()中间输入;{号,自动根据情况移动到行尾,避免手动移动光标位置。
CE编辑器--基于wxWidgets和Scintilla (一)_第20张图片

自动补全

现在代码的自动补全,还只做了最基本的功能,就是补全关键字,和补全输入过的,打开的文件中出现过的内容。
自动提示类成员变量,类的成员函数,参数列表等功能还在开发。完成之后会后续再发布。

所有的代码都放在https://www.github.com/fanhongxuan/editor。

你可能感兴趣的:(Editor)