代码编辑
1 - 基本功能与快捷键
基本文件操作
新建文件
通过"文件"菜单中的"新建"→“新建源代码文件”,或者直接点击工具栏上的"新建源代码文件"按钮,就可以在小熊猫C++ 的编辑区自动新建一个标题为"无标题+数字"的文件编辑窗口。
缺省状态下,新建文件的快捷键是Ctrl+N。
保存文件
通过"文件"菜单中的"保存",或者直接点击工具栏上的"保存"按钮,就可以保存当前正在被编辑的文件。如果要被保存的文件是新建的, 在保存前会弹出对话框,让用户设置要保存的文件名。
缺省状态下,保存文件的快捷键是Ctrl+S
文件另存为
通过"文件"菜单中的"另存为",或者直接点击工具栏上的"另存为"按钮,就可以使用新的名字保存当前正在被编辑的文件。保存前会弹出对话框,让用户设置要使用的新文件名。
关闭文件
通过"文件"菜单中的"关闭",就可以关闭当前正在被编辑的文件窗口。如果小熊猫C++认为被关闭的文件中存在尚未被保存的改动,则它会弹出对话框询问是否需要保存被关闭的文件。
缺省状态下,关闭文件的快捷键是Ctrl+W
打开文件
通过"文件"菜单中的"打开…",或者点击工具栏上的"打开…“按钮,就会显示"打开"对话框。在打开对话框中,选择一个或多个文件(在按住Shift或者Ctrl不放的同时,点击鼠标,可以选择多个文件)后, 点击"打开"按钮,小熊猫就会逐一打开选中的所有文件。如果某个文件之前已经被小熊猫C++打开了,则它会被忽略。
缺省状态下,打开文件的快捷键是Ctrl+O
基本编辑操作
只读模式
只读模式被用来避免用户不小心修改重要的文件。下列文件在打开时会自动进入只读模式:
- 当前编译器的C/C++包含文件夹(include文件夹)中的文件
文件以只读模式打开时,会在在编辑区的文件标题栏增加[只读]标记。只读模式无法取消或者改变。如果您确实需要用小熊猫C++修改某个被只读的文件,可以将它复制到别的位置,修改后再复制回原处。
光标
在处于编辑状态的文件窗口中,可以看到一条闪烁的线或者方块,它就是光标(caret)。光标所在的位置就是内容将会被输入的位置。
Insert状态与覆写状态
文件在编辑时,有两种状态:
- Insert状态:这是文件新建或打开时缺省的状态,在此状态下,新输入的字符会添加到光标所在位置,光标后原有的内容会自动向后移动。
- 覆写状态:在此状态下,新输入的字符会复写光标所在位置原有的内容。
按下Insert键,会自动从当前状态切换到另一种状态:如果当前是Insert状态,会变为覆写状态;如果当前是覆写状态,则会变为Insert状态。
小熊猫C++在状态栏的右下角用”Insert(中文)“或”覆写“显示编辑器当前的编辑状态。
基本键盘操作
按下Backspace键,删除所在位置的前一个字符并移动到被删除字符所在的位置;按下Delete键,就会删除光标所在位置的字符。
按下←、↑、→、↓键可以向左、上、右、下移动光标。
按住Ctrl键的同时按下←、↑、→、↓键,则窗口中的内容向左、上、右、下滚动,但是光标位置保持不变。
按下Home键,光标会移动到该行的第一个非空白字符处;如果光标已经位于第一个非空白字符处,则它会移动到该行的第一个字符处;
按下End键,光标会移动到该行的最后一个非空白字符处;如果光标已经位于最后一个非空白字符处,则它会移动到该行的最后一个字符处。
按下Ctrl键的同时按下Home键,光标会移动到文件的起始(第一行第一列);按下Ctrl键的同时按下End键,光标会移动到文件的末尾(最后一行最后一列)。
按下Page Up键,向前翻一页,同时光标移动到前一页对应的行和列;按下Page Down键,向后翻一页,同时光标移动到下一页对应的行和列。
按住Ctrl键的同时按下Page Up键,光标会移动到窗口中的第一行;按住Ctrl键的同时按下Page Down键,光标会移动到窗口中的最后一行。
在按住Shift键的同时使用上述键盘操作移动光标,则会自动选中操作前光标所在位置和操作后光标所在位置中间区域的内容。
常用编辑快捷键
快捷键 | 作用 |
---|---|
Ctrl+C | 将选中的内容复制到剪贴板 |
Ctrl+X | 将选中的内容剪贴到剪贴板 |
Ctrl+V | 将剪贴板中的内容复制到光标处 |
Ctrl+A | 选中当前文件的全部内容 |
Ctrl+Z | 撤销最近一次编辑操作 |
Ctrl+Y | 恢复上一次撤销的操作 |
Ctrl+Alt+← | 光标移动到前一次编辑开始位置 |
Ctrl+Alt+→ | 光标移动到后一次编辑开始位置 |
特殊编辑快捷键
快捷键 | 作用 |
---|---|
Ctrl+E | 删除(Erase)光标所在的行 |
Ctrl+D | 复制(Duplicate)并Insert光标所在的行 |
Ctrl+Shift+D | 删除光标所在处的单词 |
Ctrl+Shift+B | 从光标所在位置向前删除到单词开头(Begin) |
Ctrl+Shift+E | 从光标所在位置向后删除到单词结尾(End) |
Ctrl+Enter | 在光标所在行的下一行Insert新行 |
基本鼠标操作
双击任意单词可以选中该单词
在任意位置按下鼠标左键,光标会移动到鼠标箭头所在的位置。
滚动鼠标滚轮,窗口内容会跟着上下滚动(光标保持不变)。
按住Alt键的同时,滚动鼠标滚轮,窗口内容会跟着左右滚动(光标保持不变)。
按住Ctrl键的同时,滚动鼠标滚轮,编辑窗口中的字体大小会随之改变。
在按住Shift键的同时使用上述滚轮操作移动光标,则会自动选中操作前光标所在位置和操作后光标所在位置中间区域的内容。
在未选中内容的情况下,按下鼠标左键在编辑器中拖动,可以选中内容。
选中部分内容后按下鼠标左键,可以将选中的内容拖动到指定位置;在拖动的同时按下Ctrl键,可以将选中的内容复制到指定位置。
右键菜单
在编辑器标题栏或者编辑区右键单击,会弹出右键菜单。根据用户鼠标右键点击的位置不同,小熊猫C++的编辑窗口会弹出两种不同的右键菜单:
- 标题区域右键菜单
- 编辑区域右键菜单
标题区右键菜单
右键单击被编辑文件的标题区域,会弹出标题区右键菜单。各菜单项的作用如下表所示。
菜单项 | 作用 |
---|---|
关闭 | 关闭当前文件 |
全部关闭 | 关闭所有打开的文件 |
打开所在的文件夹 | 在Windows文件管理器中打开当前文件所在文件夹 |
打开命令行窗口 | 以文件所在的文件夹作为当前工作文件夹,打开Windows控制台 |
在文件视图中定位 | 将当前文件所在的文件夹设置为工作文件夹,打开小熊猫C++左侧的文件视图,并在视图的文件列表中选中和突出显示当前文件 |
移动到其他视图 | 将当前文件移动到另一个编辑视图中 |
文件属性… | 在文件属性对话框中显示当前文件的属性信息 |
编辑区右键菜单
右键单击被编辑文件的正文编辑区域,会弹出编辑区右键菜单。部分菜单项的作用如下表所示。
菜单项 | 作用 |
---|---|
编译运行 | 编译当前程序文件,然后运行编译得到的可执行文件 |
调试 | 编译当前程序文件,然后调试编译得到的可执行文件 |
跳转到声明处 | 跳转到光标所在处C/C++标识符的声明处。如果其所在的文件尚未打开,会自动打开该文件。 |
跳转到定义处 | 跳转到光标所在处C/C++标识符的定义处。如果其所在的文件尚未打开,会自动打开该文件。 |
查找符号的引用 | 在当前文件/项目中查找所有对光标所在处C/C++标识符的使用。查找结果会显示在小熊猫C++下方的查找面板中。 |
打开所在的文件夹 | 在Windows文件管理器中打开当前文件所在文件夹 |
打开命令行窗口 | 以文件所在的文件夹作为当前工作文件夹,打开Windows控制台 |
在文件视图中定位 | 将当前文件所在的文件夹设置为工作文件夹,打开小熊猫C++左侧的文件视图,并在视图的文件列表中选中和突出显示当前文件 |
对代码重新排版 | 使用自带的asytle程序对当前编辑的文件重新排版。可在"选项"对话框的"代码排版”→“通用"中设置排版使用的格式。 |
文件属性… | 在文件属性对话框中显示当前文件的属性信息 |
2 - 高级编辑功能
自动缩进
保持良好和统计的缩进,是提升代码代码可读性的重要手段之一。为了帮助用户编写缩进良好的代码,小熊猫C++提供并缺省启用了编辑器的自动缩进功能。
在开启该功能的情况下,用户在输入C/C++代码时,每次换行时,小熊猫C++会自动计算并在新一行的行首Insert合适数量的空格或者制表符,以形成合适的缩进。
如果希望自己输入缩进,可以通过"工具"菜单→“选项"打开选项对话框,在"编辑器”→“通用"页中找到并取消勾选"自动计算缩进"选项。
注释切换
在编程和调试时,经常需要暂时禁用程序中的一段代码。要实现这一点,最简单的方法就是使用小熊猫C++的注释切换功能。
选中你希望暂时禁用的代码,然后通过菜单"编辑”→“切换注释”(或者直接通过快捷键ctrl+/),即可将这段代码变为注释;当需要启用这段代码时,再次选中它然后"切换注释",就可以将其重新变为普通代码。
代码折叠
在调试和维护逻辑较为复杂的代码时,可以通过代码折叠功能来把整段复合语句显示成一行。
直接点击编辑器左侧边栏的代码折叠按钮即可:
匹配当前括号
当光标位于括号前时,匹配当前括号功能可以让光标直接移动到此左(右)括号对应的右(左)括号处。
通过菜单"代码"→“匹配当前括号"或者快捷键Ctrl+[即可使用这一功能。
重新排版
如果代码本身的缩进格式较为散乱,可以通过"代码"菜单→“对代码重新排版”,或者点击工具栏上的"对代码重新排版"按钮来对代码文件重新进行排版。
3 - 代码补全与符号补全
代码补全
如下面的动画所示,小熊猫C++可以根据用户当前已经输入的内容,推测用户可能要输入的标识符,并以弹出下拉列表(以下称为代码补全列表)的形式展现给用户。
当代码补全列表弹出时,用户可以继续输入,也可以通过键盘上的下列按键进行操作:
按键 | 作用 |
---|---|
↑ | 选中列表中的上一个标识符 |
↓ | 选中列表中的上一个标识符 |
Page Up | 列表翻到上一页 |
Page Down | 列表翻到下一页 |
Esc | 关闭列表 |
Tab | 使用列表中当前选中的标识符替换用户当前的输入,并关闭列表 |
Enter | 和Tab键作用相同 |
代码补全可以显著的减少用户输入时的拼写错误,也可以帮助用户在使用不熟悉的库时,快速找到自己想要的API函数或者其他符号,因此可以显著的提升代码输入的效率。
有部分教师认为代码补全会影响学生对重要函数和关键字的记忆,对此我个人的看法是:
-
编程教育的核心应该是让学生掌握编程的基本思维范式和问题解决模式,语法并不是最核心的内容。(因为大部分学生将来不一定会使用课程上教授的语言来进行实际的编程工作)
-
以笔者个人这些年最终结课考试的实际结果来看,让学生使用带代码补全功能的IDE,并不会影响学生最终书面考试编程的分数;笔者未发现有学生在考试中程序整体思路和步骤正确,但是关键字写错的情况。
因此,笔者认为,并不应该以锻炼学生的基本功为理由,而不让学生使用代码补全功能。
如果需要关闭代码补全功能,可以通过"工具"菜单→“选项"打开"选项"对话框,在"编辑器”→“代码补全"页中取消勾选"启用代码补全”:
符号补全
符号补全是指用户在输入括号、引号等成对出现的符号时,小熊猫C++自动进行的编辑处理。小熊猫C++提供的符号补全功能可以分为三类:
- 成对符号补全
- 已成对符号跳过
- 符号成对删除
成对符号补全
用户在输入左括号(包括圆括号、方括号、花括号)和单双引号时,小熊猫C++会自动Insert和其匹配的右括号或者引号;
此功能可以显著的减少在输入复杂公式时由于忘记输入括号而产生的括号不匹配错误。
符号成对删除
用户在删除左括号(包括圆括号、方括号、花括号)和单双引号时,如果和它匹配的右括号或者引号与它之间没有内容,则小熊猫C++会自动将两个符号一起删除:
已成对符号跳过
用户在输入右括号(包括圆括号、方括号、花括号)和单双引号时,如果当前光标位置上存在要输入的符号,且该符号之前存在和其匹配的左括号或者单双引号,那么此次输入会自动以覆写模式进行。
此功能的主要作用是减少成对符号补全自动引入的符号对于输入流畅性的干扰。
如果需要关闭符号补全功能,可以通过"工具"菜单→“选项"打开"选项"对话框,在"编辑器”→“代码补全"页中取消勾选"启用代码补全”:
4 - 代码导航
结构浏览器
点击小熊猫C++左侧面板的"结构"页,即可打开结构浏览器。该浏览器以树形列表的形式显示了当前文件中的全局变量、函数、宏和类定义等全局定义的标识符。
在结构浏览器中双击某个标识符,可以将光标跳转到该标识符声明所在的行。
右键单击某个标识符,然后在右键菜单中选择"跳转到定义处",就可以将光标跳转到该标识符定义所在的行。
代码跳转
在编辑器中,按住Ctrl键的同时用鼠标点击某个标识符,就会将光标跳转到该标识符声明所在的行。如果当前行就是该标识符的声明,则光标会跳转到该标识符定义所在的行(如果定义和声明不在一行的话)。
也可以通过在编辑器中右键点击某个标识符,然后在右键菜单中选择"跳转到定义处"/“跳转到声明处"进行跳转。
查找符号引用
在在编辑器中右键点击某个标识符,然后在右键菜单中选择"查找对符号的引用”,小熊猫C++就会在当前文件/项目中查找所用使用了该标识符的地方,并在"查找"面板中显示查找结果。
该功能和"在文件中查找"的区别在于,“在文件中查找"在查找时只比较两个单词是否相同;而"查找对符号的引用"会考虑作用域。在不同作用域里定义的重名标识符,会被"查找对符号的应用"当作不同标识符进行处理。
书签
小熊猫C++中的"书签"就是指定文件的某一行。在书签面板中可以浏览和管理小熊猫C++当前的所有书签。
通过"代码"菜单或编辑器右键菜单,可以设置和管理文件中的书签。
5 - 编码
不同的用户可能需要用不同的文件编码编写程序。虽然未来编程的大趋势是统一使用UTF-8编码编写程序,但由于windows下gcc对UTF-8编码支持还不够完善,会导致诸如中文文件夹中的C/C++程序里面的__FILE__宏出错等奇怪的bug,所以目前还是建议普通用户使用操作系统的缺省编码来编写程序。
默认文件编码
通过"工具"菜单→“选项"打开"选项对话框”,在"编辑器"→“杂项"页中可以选择小熊猫C++在新建和保存文件时使用的默认文件编码。当"自动识别文件编码"未启用时,该编码也被用作打开文件时的默认编码。
自动识别编码
当该选项被启用时,小熊猫C++会自动判断被打开的文件内容是以UTF-8还是系统默认字符集编码。在简体中文环境下,如果用UTF-8或者系统默认字符集打开失败,还会尝试以gbk和gb18030打开文件。
由于作者本人对于其他语言所使用的字符集了解有限,所以暂时未实现其他语言环境下的非UTF-8及系统默认字符集自动识别支持。欢迎有兴趣的用户提供相关的信息或者实现。
强制使用指定的编码打开文件
如果小熊猫C++打开文件时所使用的编码不正确,用户可以在"编辑"菜单→“文件编码"子菜单中强制指定使用特定的编码来重新打开文件。该操作不会改变磁盘上的文件内容。
转换文件编码
用户可以在"编辑"菜单→“文件编码"子菜单中将文件转换为指定的编码。
注意:该操作会改写磁盘上的文件的内容,所以用户在操作前最好先做好文件的备份。
建议文件编码和实际文件编码
小熊猫C++打开的每个文件编辑器都有两个参数,(建议)编码和实际编码。文件打开保存时会根据文件内容和(建议)编码来计算实际编码:
- 当文件中不包含非ascii字符时,文件的实际编码是ASCII;
- 否则,文件的实际编码与编码一致。
小熊猫C++在编译程序时,会根据文件的实际编码来生成相应的gcc编译参数。
6 - 代码模板
小熊猫C++提供了两种不同的代码模板来帮助用户快速生成代码:
- 新文件模板 在新建文件时,小熊猫C++会用模板中的内容创建新文件。
- 代码段模板 在输入内容时,可以快速插入指定代码模板的内容。也可通过“代码”→“插入代码段”插入指定的代码段。
使用代码段模板输入
编辑插入的代码
使用代码模板插入代码段后,即进入代码段编辑模式,光标会停在第一个可编辑区域中。
在代码段编辑模式下:
- 按TAB键跳转到下一个可编辑区域。
- 按ENTER键退出代码段编辑模式。
编辑模板
在“选项”对话框→编辑器→代码模板 可以编辑代码模板。
代码段模板属性说明:
- 代码补全前缀 代码模板在代码补全提示中显示的名称。为空的代码模板则不会显示在补全提示中。
- 菜单节 代码模板在“代码”→“插入代码段”子菜单中的位置。为-1的代码模板不会出现菜单中。
特殊代码
在代码模板中,可以使用下列特殊代码:
代码 | 作用 |
---|---|
%REPL_BEGIN% | 可编辑区域开始 |
%REPL_END% | 可编辑区域结束 |
%INSERT% | 空可编辑区域 |
<SOURCENAME> | 源文件名 |
<DATE> | 当前日期 |
<DATETIME> | 当前时间日期 |
7 - 自动保存
通过"工具"菜单→“选项"打开"选项对话框”,在"编辑器"→“自动保存"页中勾选“启动自动保存"项,即可启用自动保存功能。
该功能会在指定的时间间隔经过后,自动保存指定的文件内容。
用户不管用什么IDE或者编辑软件来编写程序或书写文档,都应该养成编辑后及时存盘(保存)的习惯。因此,作者本人不建议一般用户依赖该功能来保存自己的工作。