• 1. Vi编辑器的使用
  • 2. Vi文本编辑器简介Linux编辑器家族 行编辑器 ed, ex 全屏幕编辑器 vi, emacs VI是“Visual interface”的简称,它是Linux下的一个全屏幕文本编辑器 功能: 输出、删除、查找、替换等多文本操作 可根据用户需要自己定制
  • 3. Vi的操作模式Vi的三种操作模式 命令模式(Command Mode) 进入VI时默认在该状态 控制光标的移动、删除字符、段落复制、进入Insert Mode和Last Line Mode 插入模式(Insert Mode) 插入、修改文字,按ESC进入command mode 末行模式(Last Line Mode) 保存文件,离开vi
  • 4. 启动命令模式::promptiIaAoOwqqq!结束vi输入模式Esc其他命令Vi编辑器的工作模式存盘退出不存盘退出强行退出文字操作常用命令
  • 5. Vi的启动与退出启动vi # vi filename或# vi # vi +n 进入vi后光标光标处于第n行 # vi + 进入vi后光标处于未行 # vi +/int example1.c 进入vi后光标位于文件第一个“int”上
  • 6. Vi的界面编辑区 命令区 状态行
  • 7. 保存文件和退出vi命令模式下的退出: 连续按两次“ZZ”,如果文件被修改过则保存后退出,否则直接退出 末行模式下的退出: w 保存当前编辑的文件,但不退出vi w 另存为新的文件,文件名不存在 w! 另存,文件名存在,覆盖原来的文件 q 未修改退出 q! 强制退出 wq 保存文件并退出 x 与命令模式下的ZZ命令功能相同 
  • 8. vi的编辑操作命令vi中的行号: :set number / :set nu (给文本加行号) nu (给出当前的行号和该行的内容) vi中的字、句和段 字: 广义:空格间的字符 如:{int k; 只有两个字 狭义:英文单词、标点符号和非字母字符 使用大写的命令将字作为广义字对待,反之  句子: 以逗号、句号、问号和感叹号结尾,且其后至少有两个及两个以上空格或换行符的字符序列 段: 以一个空白行开始和结束的片段
  • 9. vi的编辑操作命令光标移动操作 相对文本移动 屏幕上移动 屏幕滚动 命令模式下的编辑 文本的删除 文本的查找 文本的修改 文本的替换 文本行的合并 
  • 10. 相对文本移动在当前行移动光标 在行之间移动光标 在文本块间移动光标 在文件范围内移动光标
  • 11. 在当前行移动光标命令含义l或者→右移一个字符(不会移到下一行)h或者←左移一个字符(不会移到上一行)w向右移动到下一个字的字首w右移n个字b移到当前字的字首,如果已处于字首,则移到前一个字的字首b左移n个字e移到当前字的字尾,如果已处于字尾,则移到前一个字的字尾0移到当前行的行首$移到当前行的行尾
  • 12. 在行之间移动光标命令含义j或↓移到下一行,所在的列不变+移到下一行行首k或↑移到上一行,所在列不变-移到上一行行首
  • 13. 在文本块间移动光标命令含义)移到下一句句首(移到本句句首,如果已经处于句首,则移到前一句句首}移到下一段段首{移到当前段段首,如果已经处于段首,则移到前一段的段首
  • 14. 在文件范围内移动光标[行号] G 作用:将光标移至行号所指定的行的行首,这种移动称为绝对定位移动 省略行号,则光标移至文件的最后一行的行首 例:1G表示移动到文件的第1行
  • 15. 在屏幕上移动 H命令 将光标移至屏幕首行的行首,在H命令前加上数字n,则光标移至第n行的行首 M命令 将光标移至屏幕显示文件的中间行的行首 L命令 当文件显示内容占满一屏时,该命令将光标移至屏幕上的最底行的行首
  • 16. 屏幕滚动滚屏命令 Ctrl+u 将屏幕向文件头方向翻滚半屏 Ctrl+d 将屏幕向文件尾方向翻滚半屏 分页命令 Ctrl+f 将屏幕向文件尾方向翻滚一整屏 Ctrl+b 将屏幕向文件首方向翻滚一整屏 状态命令 Ctrl+g 显示vi信息,包括文件名、行数等
  • 17. 命令模式下的编辑文本的删除 字符删除命令 字和行删除命令 文本块删除命令 相对屏幕删除 文本的查找 文本的修改 文本的替换 文本行的合并 文本的复制和粘贴 文本的移动
  • 18. 字符删除命令命令含义x删除当前字符dh删除前一个字符
  • 19. 字和行删除命令命令含义dw删除当前字db删除前一个字dd删除当前行d$删除从当前字符开始到行尾的所有字符d0删除从前一个字符开始到行首的所有字符dd删除从当前行开始的连续n行
  • 20. 文本块删除命令命令含义d)从当前字符开始删除到句尾d(从当前字符开始删除到句首d}从当前字符开始删除到段尾d{从当前字符开始删除到段首
  • 21. 相对屏幕删除命令命令含义dH删除从当前行到屏幕首行的内容dM删除从当前行到屏幕中间行的内容dL删除从当前行到屏幕底行的内容
  • 22. 文件的查找命令含义?回车向文件头方向查找符合该模式的文本n向文件头方向重复前一个查找命令N向文件尾方向重复前一个查找命令
  • 23. 文本的复制与粘贴命令含义yw将光标所在位置到字尾的字符复制到缓冲区中[n]yw将光标所在位置开始的n个字复制到缓冲区中yy将光标所在的行复制到缓冲区中[n]yy将光标所在的行开始的6行文字复制到缓冲区
  • 24. 插入模式命令a 从光标所在之处的后面插入新的字符 A 从光标所在行的最后处开始加入新的 字符 i 从光标所在之处的前面插入新的字符 I 从光标所在行的第一个非空字符前加 入新的字符 o 在光标所在行的下面新增一个空行 O 在光标所在行的上面新增一个空行
  • 25. 例子编辑文件内容如下: Welcome to vi world! Come on!,在前面插入This is an example! 应该使用哪个命令,可以得到: Welcome to vi world! This is an example! Come on!
  • 26. 重复与取消命令取消命令 U恢复到误操作命令前的状况 u把当前行恢复成被编辑前的状态,而不管此行被编辑了多少次 重复命令 只在命令模式下工作,在该模式下按“.”来重复命令,如dd…表示连删4次行
  • 27. GCC的使用与开发GCC是GNU project C and C++ Compiler的缩写 存在于不同的CPU体系结构、不同的操作系统上 支持包括C/C++, Objective-C, Fortran, Java等多种语言的开发
  • 28. GCC的使用一个C/C++程序从开始编码到生成可执行二进制文件至少经过4个步骤: 预处理(Preprocessing) 编译(Compilation) 汇编(Assembly) 链接(Linking)
  • 29. GCC的使用GCC的基本使用格式 gcc [选项] <文件名> -o 指定输出文件名,-o选项不是产生可 执行二进制代码的关键选项,它只是 为gcc的输出给出一个文件名 -c 仅对源文件进行编译,不链接生 成可执行文件,在对源文件查错 时可使用 -g 在可执行文件中加入调试信息,方便 进行程序的调试
  • 30. 扩展名类型可进行的操作方式.cC语言源程序预处理、编译、汇编、链接.c, .cc, .cp, .cpp, .c++, .cxxC++语言源程序预处理、编译、汇编、链接 .i预处理后的C语言源程序编译、汇编、链接 .ii预处理后的C++语言源程序编译、汇编、链接 .s预处理后的汇编程序汇编、链接 .h头文件不进行任何操作.o目标文件链接
  • 31. 示例程序-hello.c#include int main (void) { printf ("Hello gcc!\r\n”); return 0; }
  • 32. Gcc生成特定阶段的文件预处理过程: $ gcc –E hello.c –o hell.i 汇编过程: $ gcc –s hello.c –o hello.s 生成目标文件: $ gcc –c hello.c –o hello.o 直接生成可执行文件: $ gcc hello.c –o hello $./hello hello gcc!