《编辑源程序代码.ppt》由会员分享,可在线阅读,更多相关《编辑源程序代码.ppt(33页珍藏版)》请在三一办公上搜索。
1、第5章 编辑源程序代码,5.1 文本编辑工具 与文本编辑有关的下拉菜单有File、Edit和Search。,此外还有专用的快捷菜单和快捷键。,工具栏有Standard、Search和Tools。,1.文本编辑器的快捷菜单 在文本编辑器窗口单击鼠标右键,将弹出图5-1所示文本编辑器的快捷菜单。,删除被选中的文本并将其移到 Windows 剪贴板将选中的文本复制到剪贴板Windows 剪贴板将剪贴板内容粘贴到光标位置在一个或多个文本编辑器窗口中查找指定文本将光标移到最近编辑的位置在光标位置处以跟斗式设置删除一个断点打开“检验”对话框打开“监视”窗口打开“自动匹配选项”窗口打开“符号服务”对话框放弃
2、最近的操作重新执行上次放弃的操作,图5-1文本编辑器的快捷菜单,快捷键 光标的动作Ctrl+向左移动一个词Ctrl+向右移动一个词End移到行末Home移到行首PgDn下移一屏PgUp上移一屏Ctrl+End移到文档最后Ctrl+Home移到文本开始处Ctrl+移到与光标相匹配的左括号之前Ctrl+移到与光标相匹配的右括号之后,2.文本编辑器的快捷键(1)光标移动快捷键除了使用方向按键之外,还可以使用表5-1所示一些组合的快捷键来移动光标。,表5-1光标移动快捷键,快捷键功能Shift+选取该字符开始到下一行该字符位置之前的所有字符Shift+选取该字符开始到上一行该字符位置之后的所有字符Sh
3、ift+End选取该字符开始到行末的所有字符Shift+Home选取该字符开始到行首的所有字符Shift+PgDn选取该字符开始到下一页该字符位置之前的所有字符Shift+PgUp选取该字符开始到上一页该字符位置之后的所有字符Ctrl+Shift+选取该字符开始到该词结束的所有字符Ctrl+Shift+选取该字符开始到该词开始的所有字符Ctrl+Shift+选取该字符开始到与其匹配的左括号的所有字符Ctrl+Shift+选取字符开始到与其匹配的右括号的所有字符Alt+Enter将光标移到已选取文本的另一端,(2)文本选取快捷键 除了双击鼠标左键,选取那些由光标位置决定的文本之外,还可使用表5-
4、2所示文本选取快捷键。,表5-2 文本选取快捷键,(3)删除操作的快捷键 表5-3所示为文本编辑器有关删除操作的快捷键。,表5-3删除功能的快捷键,快捷键功能Ctrl+退格删除光标左边的词Shift+退格删除光标右边的词Ctrl+E,再单击E 删除从光标到行末的所有字符,快捷键功能Tab向后缩进Tab所确定的距离Shift+Tab向前减少缩进Tab所确定的距离Shift+Enter清除随后的空格键和 TAB 键,插入一个换行符,并将该行缩排至和前一个非空行平齐。Ctrl+Enter插入一个换行符而不清除当前行中随后的空格键和TAB 键。,(4)代码缩排编辑快捷键 Visual LISP按默认的
5、格式缩排程序代码,可以通过下拉菜单ToolsWindow AttributesConfigure Current选项设置制表符Tab的宽度(缩进的字符数),也可以用表5-4所示代码缩排编辑的快捷键,还可以自定义格式编排程序的选项(参见5.4设置代码格式)。,表5-4代码缩排编辑快捷键,5.2 文本操作1.选取文本 双击鼠标左键是选取文本最简单的方法,具体选取了哪些字符是根据光标在以下的位置决定的。(1)若光标紧挨某左圆括号之前,将选取该左圆括号至与之匹配的右圆括号之间的所有文本;(2)若光标紧跟某右圆括号之后,将选取该右圆括号至与之匹配的左圆括号之间的所有文本;(3)若光标紧挨某双引号之前,将
6、选取该双引号至下一个双引号之间的所有文本;,(4)若光标紧跟某双引号之后,将选取该双引号至前一个双引号之间的所有文本;(5)若光标紧挨某字符串前、紧跟某字符串后或某字符串内部,将选取该字符串。单击鼠标左键,按住Shift键,在另一个位置单击鼠标左键,将选取这两个光标之间的所有文本。除了以上的方法之外,还可使用表5-2所示的文本选取快捷键。,2.移动文本 除了使用标准的Windows剪切、复制和粘贴功能外,Visual LISP 文本编辑器还允许用户用以下方法将文本从文本编辑器窗口的某个位置拖到另一个位置。移动文本的步骤是:(1)选取要移动的文本;(2)光标移到被选取文本之内的任意位置后,按住鼠
7、标左键,光标改变为图5-2(a)所示的形状。(3)将文本拖拽到新的位置,松开鼠标左键即可。3.复制文本 复制文本与移动文本只有第三步不同,在拖拽文本时,需要按住Ctrl键,光标改变为图5-2(b)所示的形状,然后将文本复制到新位置。,图5-2 用鼠标移动和复制文本时的光标,4.查找文本 选择下拉菜单SearchFind,或单击工具栏按钮,将弹出图5-3所示查找对话框。,图5-3查找对话框,有关查找文本对话框的说明如下:(1)Find What编辑框:用于输入要查找的字符串,如果在查找操作前选取了文本,被选文本将会自动出现在Find What文本框内。,(2)Search栏:确定查找范围。该栏有
8、四个互锁按钮。依次是:Current selection:在文本编辑器窗口中亮显的文本中查找;Current file:仅在活动编辑器窗口中的文件中查找;Project:在随后指定的工程文件所包含的全部文件中查找,并在新的输出窗口中显示所有与查找字符串匹配的表达式。Files:在指定要查找文件目录和文件类型的所有文件中查找,并在新的输出窗口中显示所有与查找字符串匹配的表达式。在这个新的输出窗口用鼠标左键双击任意亮显的表达式,Visual LISP将打开与其相关的LISP文件。文件的类型可以用通配符。(3)Direction栏:确定查找方向。该栏有两个互锁按钮。依次是:Down:从光标当前位置处
9、开始向下查找;Up:从光标当前位置处开始向上查找。,(4)Match whole word only切换开关:如果为开,仅匹配全字。例如,若查找的文本是ent,Visual LISP认为它不与entnext匹配;如果为关时,Visual LISP将认为ent与entnext匹配。(5)Match case切换开关:如果为开,Visual LISP区分字母的大小写。例如,若查找的文本是car,Visual LISP认为它不与Car或CAR匹配;如果为关时,Visual LISP将认为car与CAR或Car匹配。(6)Mark instances切换开关:如果为开,将在每个找到的文本处加上书签。利
10、用书签就可以快速找到这些代码所在的位置。点取Find按钮将开始查找。如果查找的范围是工程或文件目录,将在新的输出窗口中显示所有与查找字符串匹配的表达式。如果是在单个文件或亮显的段落中查找,将从光标当前位置处按指定方向开始查找,若找到与之匹配的对象,就停止查找且亮显与之匹配的对象,同时光标移至该位置。若找不到与之匹配的对象,将弹出要求用户确认是否从头查找的对话框。按F3键或按钮将从当前位置查找下一个相同的查找内容的字符串。,Visual LISP将每次输入的查找字符串都保存在工具栏的下拉表列内,见图5-4。如果要重复以前所做的查找,单击下拉箭头并从列表中选中要查找的项,然后从工具栏中选择查找按钮
11、即可。,图5-4保存查找字符串的下拉列表,5.替换文本 选取Search下拉菜单的Replace选项,或点取工具栏的按钮,将弹出图5-5所示替换对话框。,图5-5替换对话框,替换文本对话框与查找文本对话框类似,有关说明如下:(1)Find what编辑框:输入要查找的字符串。(2)Replace with编辑框:输入用来替换查找内容的字符串。(3)Find按钮:从光标所在位置开始,按指定方向查找指定字符串的第一个位置,同时光标移至该位置。(4)Replace按钮:将找到的文本替换成用户指定的内容。如果不想替换此次找到的字符串,可单击Find按钮,查找指定字符串的下一个位置。(5)Replace
12、 All 按钮,将所有找到的字符串替换成指定的字符串。其余按钮同查找对话框。,6.在程序中设置书签 书签的样式和书签相关的按钮如图5-6所示。Visual LISP允许在每个文本编辑窗口添加多达32个书签,再添加新的书签时,将删除最早的书签。书签可帮助用户更方便地浏览文本编辑窗口中的文件。每个文本编辑器窗口维护各自独立的书签集。每个窗口中的所有书签组成一个书签环,光标可以在书签环中向前或向后移动。,图5-6书签的样式及其相关的按钮,(1)添加书签 将光标移到要添加书签的位置。选择菜单SearchBookmarksToggle Bookmark或单击工具栏上的按钮,还可以按 Alt+.(句点)来
13、实现该操作。(2)将光标从某书签移到另一个书签的位置 选择菜单SearchBookmarksPrevious Bookmark可将光标移到书签环中的上一个书签处,也可单击工具栏上的按钮,或按Ctrl+,(逗号)来实现该操作。.选择菜单SearchBookmarksNext Bookmark,可将光标移到书签环中的下一个书签处,也可单击工具栏上的按钮,或按Ctrl+.(点)来实现该操作。,(3)选择两个书签之间的文本 按 Ctrl+Shift+,(逗号)可选择当前位置和下一书签之间的文本。按 Ctrl+Shift+.(句点)可选择当前位置和上一书签之间的文本。(4)删除单个书签 将光标移到书签位
14、置。单击工具栏上的切换书签按钮 或按Alt+.(句点)。(5)清除活动窗口中的所有书签 选择菜单SearchBookmarksClear All Bookmarks或单击工具栏的按钮 即可。,5.3设置代码格式 文本编辑器可以设置AutoLISP代码的格式,使代码更易于阅读。可以从多种不同格式的样式中挑选自己喜欢的格式。1.设置AutoLISP代码格式的对话框 选择菜单ToolsEnvironment OptionsVisual LISP Format,将弹出图5-7所示格式选择对话框。,图5-7格式选择对话框,该对话框各项含义如下:(1)Right Text Margin 文本右边距 允许每
15、行最后一个字符的最右位置,该值的定义域为20200。(2)Narror style indentation 窄样式向右缩进的宽度 在窄样式下,第一个参数在函数名的下一行,它的起始位置与表达式起始位置的缩进字符数即为缩进宽度,该值的定义域为16。(3)Maximum wide-style car length表达式第一个参数的长度 如果表达式第一个参数超出该长度,其余的参数移至下一行。该值不能小于窄样式向右缩进的宽度。(4)Single-semicolon comment indentation 单个分号开头的注释缩进宽度 以单个分号开头的注释行向右缩进的起始位置。,(5)Close Paren
16、 Style 右圆括号样式栏,右圆括号有以下三个位置。Close at the same line 在同一行。Close at the new line with inner indentation 在下一行并向右缩进。Close at the new line with outer indentation 在下一行并向左突出。(6)Insert tabs插入制表符 是否用制表符实现缩进,若不用制表符,则用空格符实现缩进。(7)Save formatting options in source file 将格式化选择的参数追加到源文件之后。,(8)Insert fom-closing comm
17、ment在表达式的闭括号之后插入注释 在表达式的闭括号之后添加注释,注释的内容是该表达式的函数名。(9)Form-closing comment prefix闭括号注释的前缀 确定表达式闭括号之后注释的前缀,该项可以为空字符串。(10)More option 单击此按钮,对话框在右面扩展一列,确定行的最大长长度、分行符、注释、大小写的选择、长表样式等。(11)Revert to Defualt恢复为默认的设置 用默认的格式化参数作为当前格式化参数的选择。选择菜单ToolsSave Settings项,即可将当前的格式化参数作为默认的格式化参数设置。,2.修改文本的格式如果要改变已有文本的格式,
18、其操作步骤如下:(1)用鼠标单击待改变格式的文本窗口,使其成为活动的文本编辑器窗口。(2)选择菜单ToolsFormat AutoLISP in Editor,或单击Tools工具栏按钮,可将窗口内所有的代码格式为当前设置的样式;如果只修改部分代码,应首先亮显该部分代码,然后选择菜单ToolsFormat AutoLISP in Selection,或单击Tools工具栏上的按钮 即可。注意,如果出现的括号不匹配,将出现“发现了不匹配的开括号,是否添加闭括号”提示的询问对话框。如果选择是,Visual LISP将在它认为需要括号的地方自动添加括号(不一定合适),如果希望自己手动添加括号,应选择
19、否。,3.格式编排快捷菜单 Visual LISP提供了格式设置的快捷菜单。在活动的文本编辑器窗口按Ctrl+E即可弹出图5-8所示的格式设置快捷菜单。在所选代码的每一行前加Tab键,以缩进所选代码 在所选代码的每一行前删除一个Tab键,取消所选代码的缩进 将当前行缩进至和前一行程序代码缩进相同 在所选文本的每一行前面加上随后输入的字符串前缀 在所选文本的每一行后面加上随后输入的字符串后缀 将代码段转换为注释 将注释还原为代码 复制所选文本到新文件 将所选文本的字符都转换为大写 将所选文本的字符都转换为小写 将所选文本中的每个词的第一个字符转换为大写 插入当前日期(默认格式为 MM/DD/YY
20、)插入当前时间(默认格式为 HH:MM:SS)改变日期和时间的格式 将所选代码按词首字母排序 在当前编辑器窗口的光标位置插入文本文件的内容 删除从光标位置到当前行末尾的文本 删除本行从光标位置到其后第一个非空格字符之间的所有空格图5-8格式编排快捷菜单,4.将选取的文本输出到指定的文件 选取文本后,按 Ctrl+E 键,弹出图5-8所示格式编排快捷菜单。选取Save Block As 项,将弹出File to write block to对话框。如果输入的是新的文件名,所选取的文本将复制到新的文件;如果输入的是已有文件名,将弹出内容为File already exists.Append sel
21、ection to existing file?的询问对话框。单击“是”按钮,将所选取的代码追加到指定文件的已有内容之后;单击“否”按钮,所选取的文本将覆盖指定文件的内容。,5.4 检查语法错误1.检查括号是否匹配括号使用频繁是AutoLISP的一个特点,左括号与右括号的数目不等或不匹配是最常见的语法错误。图5-9是有关括号操作的下拉菜单。,图5-9有关括号操作的下拉菜单,组合快捷键 功能Ctrl+如果光标的右面是一右括号,将光标移到该右括号后;如果光标的右面是一左括号,将光标移到和它匹配的右括号之后。Ctrl+如果光标的左面是一左括号,将光标移到该左括号之前;如果光标的左面是一右括号,将光标
22、移到和它匹配的左括号之前。Ctrl+Shift+如果光标的右面是一右括号,将光标移到该右括号之后,如果光标的右面是一左括号,将光标移到和它匹配的右括号之后,并且选取其间的所有文本Ctrl+Shift+如果光标的左面是一左括号,将光标移到该左括号之前,如果光标的左面是一右括号,将光标移到和它匹配的左括号之前,并且选取其间的所有文本,表5-5是有关括号操作的快捷键。,表5-5 有关括号操作的快捷键,例如,有以下表达式:(setq alf1(cond(and(alf 90)(alf 270)(-alf 360)(=alf-90)90)(t alf)假定光标在第一行第一个字符串“alf”的字符“lf”
23、之间。按Ctrl+键,光标移到“90)”之后,按Ctrl+键,光标移到“(”之前。如果按Ctrl+Shift+”键,光标移到“90)”之后,并选取了文本“f 90)”;按Ctrl+Shift+键,光标移到“(”之前,并选取了文本“(al”。,假定光标在符号“and”的字符“nd”之间。按Ctrl+键,光标移到“90)”之后;按Ctrl+键,光标移到“(and”之前。按Ctrl+Shift+键,光标移到“90)”之后,并选取了文本“d(alf 90)”;按Ctrl+Shift+键,光标移到“and”之前,并选取了文本按“(an”。假定光标在符号“cond”的字符“on”之间。按Ctrl+键,光标
24、移到“180))”之后,按Ctrl+键,光标移到“(cond”之前。按Ctrl+Shift+键,光标移到“180)”之后,并选取了文本“nd(and(alf 90)(=alf 270)(-alf 180)”;按Ctrl+Shift+键,光标移到“(cond”之前,并选取了文本“(co”。,2.利用代码的颜色检测语法错误 在文本编辑窗口,程序代码按类型设置为不同的颜色。例如,AutoLISP的内部函数用蓝色显示,用户定义的变量用黑色显示,数字用绿色显示。如果出现内部函数拼写错误,其颜色将为黑色,因此很容易被发现。如果将其改正,其颜色马上变为蓝色。3.用语法检查功能检查语法错误(1)用Visual
25、 LISP语法检查功能可以检查出的主要语法错误有:圆括号不匹配。函数参数的数量不对。函数的参数类型错误(例如,需要变量时提供的却是被引号引起来的符号)。某些特殊函数其它一些语法错误只能在程序运行时才能被检查出来。,(2)语法检查的步骤 激活要检查代码的编辑器窗口。选择菜单ToolsCheck Text in Editor或按钮,可以检测编辑器窗口内的所有源程序代码。选择菜单ToolsCheck Selection或按钮,可以检测所选的源程序代码。Visual LISP通过图5-10所示的Build Output窗口报告检查结果。,图5-10 编译窗口的出错信息,该窗口显示了一条警告信息和两条出错信息。第2行出现警告信息的原因是提供给SQRT函数的参数太少。双击这一信息,编辑器窗口被激活,亮显(sqrt),见图5-11(a)。显然,这里没有给SQRT函数提供参数。第3行出现第1条出错信息的原因是提供给IF函数的参数太多。双击这一信息,编辑器窗口被激活,亮显(if(a b)等5行,见图5-11(b)。显然,这里提供给IF函数的参数是4个,超出一个。第4行出现第2条出错信息的原因是多余的右圆括号。双击这一信息,编辑器窗口被激活,亮显最后一个右圆括号,见图5-11(c)。显然,亮显的这个右圆括号就是多余的。,(a)(b)(c)图5-11亮显出错的表达式,