天天看点

VC++文本编辑器使用

Visual C++6.0开发环境中包含了一个功能强大的文本编辑器,使用它可以管理、编辑及打印源代码文件。虽然该文本编辑器和其他基于Windows文本编辑器软件(如Windows 98的记事本)的大多数功能是相同的,但它是集成在Visual C++6.0开发环境中,一旦文档窗口中的源代码文件被打开,就可以使用了,且增加许多帮助快速键入代码、提高可读性的功能,例如在文本编辑器中用不同的颜色表示不同的语法结构(蓝色表示关键字,浅绿色表示注释)。

使用文本编辑器,用户可以实现以下功能:

· 通过在线弹出的列表框选择所需要的类成员、参数或值来完成相应的语句。

· 使用文本编辑器的宏操作。

· 可以为不同的编程语言产生相应的代码源文件,包括C/C++、SQL及 HTML。

· 为源文件中相应的字、词或语法定制不同的颜色以及文本编辑器的外规定制等。

· 在单个或多个源文件中进行多种条件的漫游、查找和替换。

· 用书签标记源文件中要处理的代码行。

· 管理源文件窗口,在多个窗口之间进行拖放操作。

· 支持SQL脚本的处理、切换等操作。

 1  选 定 文 本

在文本编辑过程中常常需要选定所需要的文本,并进行剪切、复制、删除、增加或减少缩进等操作。在选择时,可以选定文本中的一行、多行或文本块,其相应的操作过程如下:

(1)选定一行

将鼠标移至要选定的行的最左边,当鼠标箭头变成反向时,单击鼠标左键。

(2)选定多行

将鼠标移至要选定内容的开始处,按下左键并拖动,在选定内容的结尾处释放鼠标。

(3)选定文本块

将鼠标移至要选定内容的开始处,按下鼠标左键之前按住ALT键不放并拖动,在选定内容的结尾处释放鼠标和ALT键。

另外,若双击鼠标左键,则鼠标所在位置的整个单词被选定。

Shift键+鼠标左键!!!!!!!!!!!!!!!!

 2  语句的自动完成

Visual C++6.0的文本编辑器开始使用“词语敏感器”来提高键入代码的速度并有效地减少错误的产生。“词语敏感器”有许多选项,如“成员列表”选项、“参数信息”选项、“代码注释”选项以及“词语自动完成”选项等。在文本编辑器的默认情况下,“词语敏感器”是打开着的,当键入代码或当光标落在某个单词上时,“词语敏感器”会打开相应的选项。例如当需要键入已定义的函数时,“词语敏感器”将弹出函数的参数类型,如图 1所示,当键入“printf(”时自动显示相应的函数参数类型和数量。

图 1  词语敏感器

当然,若想关闭“词语敏感器”或自己确定打开的时间,则可以通过Edit菜单或相应的键盘命令,如表 1所示。

表 1  Edit“词语敏感器”菜单命令的快捷键及功能描述

菜单命令 快捷键 功能描述
List Members Ctrl+Alt+T 显示“词语敏感器”的“成员列表”选项
Type Info Ctr+T 显示“词语敏感器”的“类型信息”选项
Parameter Info Ctrl+Shift+Space 显示“词语敏感器”的“参数信息”选项
Complete Word Ctrl+Space 显示“词语敏感器”的“词语自动完成”选项

 3  编 辑 文 本

在文档的编辑过程中,Visual C++6.0的文本编辑器允许用户使用菜单命令或者工具栏的命令按钮以及快捷键等完成文本的剪切、移动、复制及删除等操作。表 2列出了相应Edit菜单项的各个命令。

表 2  Edit莱单命令的快捷键及功能描述

菜单命令 快捷键 功能描述
Undo Ctrl+Z 撤销上一次操作
Redo Ctrl+Y 恢复被撤销的操作
Cut Ctrl+X 将当前选定的内容剪切掉,并移至剪贴板中
Copy Ctrl+C 将当前选定的内容复制到剪贴板中
Paste Ctrl+V 将剪贴板中的内容粘贴到光标当前位置处
Delete Del 删除当前选定的对象或光标位置处的字符

在默认的标准工具栏中也提供了剪切、复制、粘贴等命令按钮,但不管进行的是何种编辑操作,一般都要先选定文本。

另外,Visual C++6.0的文本编辑器也支持文本的拖放操作。当选定文本对象后,用鼠标左键点中该对象,并按住不放,将其拖动到相应位置就可实现文本的移动操作;若在拖动时还按住Ctrl键,则在相应的位置处复制该文本。

 4  查找及替换

如果需要在一个或多个文档中查看某些相关的信息,或者是对其中的某些字符串进行修改,这时就可在Edit菜单中用Find及Replace等命令来实现。

1. Find命令的使用

选中“Edit”菜单的“Find”命令,将弹出如图 2所示的Find对话框,其各项含义见表 3。

图 2  Find对话框

表 3  Find对话框各项的含义

项目 功能描述
Find what 在相应的组合框中键入所要查找的文本或正则表达式,或者按“▼”将列出先前查找过的字符串(最多可达16个),从中选择需要查找的字符串
Match whole word only 选中此项,按单个单词匹配
Match case 选中此项,区分大小写
Regular expression 选中此项,使用正则表达式
Search all open documents 选中此项,在所有打开的文档中查找
Up、 Down 在当前光标位置处向前或向后查找
Find Next命令按钮 单击此命令按钮,将查找下一个匹配的字符串
Mark All命令按钮 单击此命令按钮,将所有匹配的字符串所在的行的前面加上标记
Cancel命令按钮 取消命令按钮

根据“Find”对话框中的选项可以方便地在当前文档或所有打开的文档中查找文本,其过程如下:

(1)将文本光标移动至需要查找的开始位置;

(2)选择“Edit”菜单的“Find”命令;

(3)在“Find what”框中,键入要查找的文本或正则表达式;

(4)选择相应的查找选项;

(5)单击“Find Next”或“Mark All”命令按钮进行查找,此时 Find对话框消失;

(6)按快捷键F3(查找下一个)或Shift+F3(查找上一个)继续刚才的查找。

上述是通过用“Find”对话框进行查找,在Visual C++6.0的文本编辑器中还可以不使用Find对话框进行查找:

· 在标准工具栏的查找框中键入要查找的字符串,然后按Enter键。

· 选择“Edit”菜单的“Advanced”选项卡的“Incremental Search”(Incremental 增量)命令,将鼠标移动到状态栏,就可以键入要查找的文本,一边键入字符时,系统一边开始查找所匹配的文本,当按ESC或其他漫游命令时,查找结束。

注意

正则表达式能帮助用户查找一些特殊的字符或特殊的匹配,表 4列出正则表达式的种类及含义。

表 4  正则表达式的种类及含义

正则表达式 含义
. 代替任何单个字符,如ma.n与main等匹配
[ ]

括号内任意一个字符或是由连字符“-”所构成的ASCII字符范围中的一个字符。例如:

 b[aeiou]d匹配 bad、bed、bid、bod和bud

 r[eo]+d匹配red、rod、reed和rood,但不匹配reod或roed

x[0-9]匹配x0、x1、…、x9

(续表)

正则表达式 含义
若在括号内的第一个字符是“^”,则匹配除“^”后面一个字符外的任何字符
^或$ 行首或行尾
/(/) 替换时保留字符的标记表达式。例如,若在“Find what”框中的文本是/(lpsz)BigPointer,而“Replace With”框中的文本是/1NewPointer,则所有的lpszBigPointer被替换成lpszNewPointer,其中/1是被定义的第一个替换标记,用户也可以用/2表示第2个标记,依次类推
/~ 将/~之后的字符排除在外,如,b/~a+d匹配bbd、bcd等,但不匹配bad
/{c/!c/} 查找由/!隔开的任意一字符,例如/{j/!u/}+fruit匹配jfruit、jjfruit、ufruit、ujfruit等
* *号前的字符可反复出现或没有,例如 ba*c匹配 bc、bac、baac、baaac等
+ +号前的字符可反复出现,但至少有一次,例如ba+c匹配bac、baac、baaac,但不匹配bc
/{/} 在/{和/}之间的字符可反复出现,例如/{ju/}+fruit匹配jufruit、jujufruit、jujujufruit等,但不匹配jfruit、ufruit或ujfruit,因为它们中没有ju
/:a 任意数字或字母,等价于[a-zA-Z0-9]
/:b 任意空白字符,如空格或制表符
/:c 任意字母,等价于[a-zA-Z]
/:d 任意数字,等价于[0-9]
/:n 任意无符号数,等价于/{[0-9]+/.[0-9]*/![0-9]*/.[0-9]+/![0-9]+/},例如/:n匹配123.45等
/:z 任意无符号十进制整数,等价于[0-9]+
/:h 任意十六进制数,等价于[0 -9a -fA-F]+
/:i 任意C/C++标识符,等价于[a-zA-Z_$][a-zA-Z0-9_$]+
/:w 任意单词,即字母字符串,等价于[a-zA-Z]+
/:q 任意被引用的字符串,等价于/{"[^"]*"/!'[^']*'/}
/ 消除在正则表达式中前面的一些特殊字符的含义,例如:100$匹配某行尾的100,但100/$匹配的是100$的字符串

为了便于用户使用上述的正则表达式,在“Find”对话框中“Find what”框的右边,还有一个小命令按钮(4),单击它可弹出一个快捷菜单,其中列出了正则表达式选项,除此之外,还有与当前光标位置相关的其他常用命令。

2. Find In Files命令的使用

选择“Edit”菜单的“Find In Files”命令,将弹出如图 3所示的对话框。与“Find”对话框相比较,“Find In Files”对话框增加了在文件中查找的文件类型,及与之相关的一些选项。

· In Files/file types

在“In files/file types”框中,用户可以键入要查找的文件类型名,或者当用户单击“6”命令按钮时,将弹出包含文件类型选项的下拉列表,从中可以选择所需要的文件类型。

图 3  Find In Files对话框

· In folder

在“In folder”框中,用户可以键入要查找的文件夹,或者用户单击 Browse命令按钮(…),在弹出的“Choose Directory”对话框(如图 4所示)中选择要查找的驱动器和文件夹。

图 4  Choose Directory对话框

· Look in subfolders

选中此项,查找时,还搜索“In folders”文件夹下的子文件夹。

· Output to pane 2

选中此项将查找结果显示在输出窗口中的第二个页面,这样就保证了前一次查找的结果不会丢失。

· Advanced命令按钮

单击此命令按钮将伸展“Find In Files”对话框界面,显示出一个列表框用于增加、删除查找的另外文件夹。

· Find命令按钮

单击“Find”命令按钮开始查找,此时在输出窗口中将同时显示出被查找文本所在的文件名、出现的次数以及所在的行数。双击输出窗口中的查找结果内容,在文档窗口中就会打开相应文件并在匹配文本所在的行前用蓝色箭头标记。

3. Replace命令的使用

Replace命令的用法与Find命令的用法有很多类似之处,主要用来替换查找过的文本,达到修改文件的目的。选中“Edit”菜单的“Replace”命令将弹出如图 5所示的对话框。

图 5  Replace对话框

在替换文本之前,最好先选定一个文本区域,然后在“Replace in”中选中“Selection”项,那么所进行的替换操作只限于选定的文本区域;否则若选中“Whole file”项,将在整个文档中进行替换操作,有时会产生意外的结果,故选中“Whole file”项时要慎重。当然,任何一个操作都可以用“Undo”命令来撤销。

“Replace”对话框中的“Replace”命令按钮每次只进行一次替换操作,而“Replace All”命令按钮将替换所有与“Find what”框中相匹配的文本,新的文本由“ Replace with”指定。

其余的选项如“Match whole word only”等与“Find”对话框相同。

 5  文 件 漫 游

Visual C++6.0的文本编辑器对源文件提供了许多漫游的方法,除了Windows的标准漫游机制外,它还可以使用Bookmark(书签)、使用GoTo(定位)、漫游条件编译语句、漫游作用域等。

1. 使用Bookmark

对于一个非常大的源文件,适当使用Bookmark功能能快速查看文件内容,提高文件编辑的效率。在源文件中设置一个书签的具体步骤如下:

(1)把文本光标移到所需位置上。

(2)选择“Edit”菜单的“Bookmarks”命令,将弹出Bookmark对话框,如图 6所示。在“Name”框中,键入书签的名称。用户应使用易记忆、易理解的标识符作为书签的名称。

(3)单击“Add”命令按钮,将本次命名的书签加入书签列表中。

(4)单击“Close”命令按钮完成本次操作。

图 6  Bookmark对话框

当下次要定位某个书签所在的位置时,再次选择“Edit”菜单的“Bookmarks”命令,并在“Bookmark”对话框中的书签列表选择该书签,此时,在对话框的下方显示出书签所在的文件和行号,然后单击“Go To”命令按钮即可。“Bookmark”对话框中的“Delete”命令按钮是用来删除列表中的书签项。

实际上,VC++ 6.0文本编辑器还提供一些快捷键用于Bookmark操作,如表 5所示。

表 5  Bookmark快捷键功能描述

快捷键 功能描述
Ctrl+Shift+F2 清除当前文档中所有的书签
F2 定位到下一个书签所在的位置处
Shift+F2 定位到上一个书签所在的位置处
Ctrl+F2 在当前行设置或取消一个书签

2. 使用Go To

“Go To”对话框能使用户快速进行文件的定位,它不仅可以按书签、标记定位,而且还可以按行号、文件的偏移量来定位文本文件、二进制文件等。

选择“Edit”菜单的“Go To”命令即可打开“Go To”对话框,如图 7所示。“Go to what”列表框允许用户选择所需要的定位项,例如若选择了“Bookmark”项,则在右侧的组合柜选择一个书签,然后单击“Go To”命令按钮。

图 7  “Go To”对话框

3. 漫游条件编译语句

C/C++源代码中常常有一些条件编译语句,如#if、#ifdef、#else、#elif及#endif等,编辑器允许用户漫游这些条件编译语句。表 6列出了实现这些功能的快捷键。

表 6  漫游条件编译语句的快捷键

快捷键 功能描述
Ctrl+K 查找下一个条件编译语句
Ctrl+Shift+K 选定与下一个匹配的条件编译语句之间的文本区域
Ctrl+J 查找上一个条件编译语句
Ctrl+Shift+J 选定与上一个匹配的条件编译语句之间的文本区域

4. 漫游作用域

C/C++源代码中常常用“()”、“{}”和“[]”等分隔符来表示作用域,例如用“{}”定义一个函数的作用域等。编辑器能理解这些作用域,并自动匹配。

Ctrl+]    Ctrl+Shift+]

说明

如果读者能够充分掌握VC++6.0的文本编辑器的功能,在编程中可以达到事半功倍的效果。