第3章vi编辑器的使用.ppt_第1页
第3章vi编辑器的使用.ppt_第2页
第3章vi编辑器的使用.ppt_第3页
第3章vi编辑器的使用.ppt_第4页
第3章vi编辑器的使用.ppt_第5页
免费预览已结束,剩余48页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章vi编辑器的使用 3 1vi的工作模式3 2vi的启动和退出3 3vi长指令和短指令3 4vi高级应用习题 3 1vi的工作模式 在使用vi之前 首先应该了解一下vi的工作模式 vi有两种工作模式 编辑模式和指令模式 在vi中用户可以在这两种模式间切换 编辑模式 用来输入和编辑文件的模式 屏幕上会显示用户的键入 按键不是被解释为命令执行 而是作为文本写到用户的文件中 指令模式 用来编辑 存盘和退出文件的模式 运行vi后 首先进入指令模式 此时输入的任何字符都被视为指令对待 键入的命令不会在屏幕上显示 状态行 屏幕底部一行 通常是第24行 被vi编辑器用来反馈编辑操作结果 错误消息或者提供信息的消息会在状态行中显示出来 vi还会在24行显示那些以冒号 或者问号 开头的命令 如果从指令模式切换到编辑模式 则可以按 Insert 键 如果从编辑模式切换到指令模式 则可以按 Esc 键 如果不能断定目前处于什么模式 则可以多按几次 Esc 键 这时系统会发出蜂鸣声 证明已经进入指令模式 注意 Linux下的命令是大小写敏感的 3 2vi的启动和退出 1 启动vi要进入vi 可以直接在系统提示字符下键入vi 按空格 然后再输入文件名 本例中以test txt作为文件名 像下面一行 vitest txt图3 1显示了用vi新建文件test txt的初始画面 test txt newfile 0lines0characters 图3 1进入vi的初始化画面 vi可以自动帮你载入所要编辑的文件或是开启一个新文件 如果test txt文件已存在 vi就会在屏幕上显示文件的第一页 前23行 如果test txt是一个新文件 vi就会清屏 光标会出现在屏幕的左上角 屏幕左方会出现波浪符号 凡是列首有该符号就表示此列目前是空的 2 退出vi要离开vi可以在指令模式下键入 q q 或 wq 离开 注意冒号 1 q如果用户只是读文件的内容而未对文件进行修改 可以使用 q 退出vi 如果用户对文件的内容作了修改 则用 q 退出vi 那么vi在屏幕的底行会提示下面的信息 vi编辑器还保留在屏幕上 Nowritesincelastchange q overrides 2 q 如果用户对文件的内容作了修改 然后决定要放弃对文件的修改 可以使用 q 强行退出vi 在这种情况下文件的内容不变 3 wq在大多数情况下 用户在编辑结束时 用 wq 命令保存文件 然后退出vi 4 n mwfilename该指令将第n m行的文本保存到指定的文件filename中 5 ZZ该指令表示快速保存文件的内容 然后退出vi 功能和 wq 一样 6 w vi编辑器通常防止覆盖一个已存在的文件 比如用户键入 wtest txt 并按回车键 而test txt文件已存在时 vi会显示如下的信息提出警告 test txt Fileexist use w tooverwrite 3 3vi长指令和短指令 vi的指令分为两种 长指令和短指令 长指令以冒号开头 键入冒号后 在屏幕的最末尾一行会出现冒号提示符 等待用户键入指令 输入完指令后回车 vi就会执行该指令 短指令和快捷键相似 键入短指令之后 vi不会给任何提示就直接执行 接下来我们以分组的形式来介绍vi常用的指令 1 输入输出命令的作用如表3 1所示 表3 1输入输出命令 2 光标移动命令的作用如表3 2所示 表3 2光标移动命令 3 删除操作命令的作用如表3 3所示 表3 3删除操作命令 4 改变与替换命令的作用如表3 4所示 表3 4改变与替换命令 5 查询命令的作用如表3 5所示 表3 5查询命令 6 拷贝与粘贴命令的作用如表3 6所示 表3 6拷贝与粘贴命令 7 文件保存及退出命令的作用如表3 7所示 表3 7文件保存及退出命令 8 其他命令的作用如表3 8所示 表3 8其他vi命令 3 4vi高级应用 3 4 1设置vi环境vi编辑器的行为可以通过设置编辑参数来定义 并且有许多种方法可以进行这种设置 最直接的方法是使用vi的set命令进行设置 这种情况下 vi在进行设置前必须处于指令状态 使用这种方法的用户可以设置任何选项 但是选项的改变是临时的 并且只在用户当前编辑会话下有效 当用户退出vi编辑器时 设置会被丢弃 本小节介绍一些有用的vi参数 表3 9对它们进行了汇总 按字母顺序列出 大多数选项名有缩写形式 用户进行设置时既可以使用选项名的全称 也可以使用缩写 表3 9vi选项 1 autoindent选项autoindent选项将用户键入的每个新行与前一行的开始对齐 该选项对于使用C等其他结构化程序设计语言编写程序时十分有用 使用 Ctrl d 可减少一级缩进 每次执行 Ctrl d 会增加一个由shiftwidth选项指定的数值 本选项的默认值为noai 2 ignorecase选项vi编辑器提供大小写敏感的搜索 也就是说它区分大写字母和小写字母 要使vi忽略大小写 键入 setignorecase 并按回车键 要返回大小写敏感状态 键入 setnoignorecase 并按回车键 3 magic选项某些符号 如方括号 在用于搜索时有特殊的含义 当用户将这些符号开头置为nomagic时 这些符号不再有特殊含义 4 number选项vi编辑器一般情况下不显示每行的行号 显示行号可以使用户对自己文件的大小及自己正在编辑文件的哪一部分等心里有数 要显示行号 键入 setnumber 然后按回车键 如果不希望显示行号 键入 setnonumber 并按回车键 5 report选项vi编辑器对用户的编辑工作并不给予任何反馈 例如 如果用户键入 dd vi删除当前行文本 但不会在屏幕上显示任何确认消息 如果希望在屏幕上看到自己编辑的反馈信息 用户可以使用report选项来实现 该参数被设为使vi编辑器报告发生变化的行的最小行数 要将report选项设为2行时有效 键入 setreport 2 并按回车键 于是 当用户的编辑工作作用两行时 vi显示相应报告 例如 删除两行并复制两行 将在屏幕底部产生类似下面的报告信息 2linesdeleted2linesyanked 6 scroll选项scroll选项用于设定用户在使用 Ctrl d 时希望滚动的行数 例如 要想使屏幕滚动5行 键入 setscroll 5 并按回车键 7 shiftwidth选项该选项设定在设置了自动缩进时 使用 Ctrl d 时的空格数 该选项的默认设置为 sw 8 例如 要把该设置改为10 键入 setsw 10 并按回车键 8 showmode选项vi编辑器并不显示任何可见的反馈信息来告知当前是处于文本输入模式还是指令模式 这可能导致混淆 尤其是对于新手 用户可以设置showmode选项来提供可见的反馈到屏幕 或者说showmode选项在状态行上指示你所处的模式 要打开showmode选项 键入 setshowmode 并按回车键 接着 根据用户需要在文本输入和指令模式之间切换 而vi在屏幕的右下角显示不同的信息 如果用户键入 a 或 A 切换到编辑模式 vi显示APPENDMODE 如果用户键入 i 或 I vi将显示INSERTMODE 如果用户键入 O 或 o vi显示OPENMODE等等 这些信息将一直显示在屏幕上 直到用户按 Esc 键切换到指令模式 当屏幕上没有信息时 vi处于指令模式 要关闭showmode选项 键入 setnoshowmode 并按回车键 9 terse选项该选项使vi编辑器显示缩短的错误消息 该选项默认值为noterse 10 wrapmargin选项该选项定义右边距 用户的终端屏幕通常为80列 当键入到行的末尾时 超过第80列 屏幕即开始一个新行 这就是所说的行回绕 在用户按回车键时 屏幕同样开始一个新行 因此 屏幕上一行的长度可以为1 80个字符之间的任何长度 但是 vi编辑器只在用户按回车键时 才在用户文件中生成一个新行 如果用户在按回车键前键入了120个字符 这时键入的文本看起来是在2行 但实际在文件中 这120个字符只在1行中 过长的行在文件打印时可能会出现问题 并且屏幕显示的行号与实际文件中的行号相对应时容易产生混淆 最简单的限制行长度的方法是在到达屏幕行末尾前按回车键 另一种方法是设定wrapmargin参数以使vi编辑器自动插入回车 例如 要将wrapmargin设为10 10是从屏幕右边界计数的字符的个数 键入 wm 10 并按回车键 于是当用户键入到第70列时 vi编辑器强迫回车 开始一个新行 以便留出右边距 如果用户正在键入一个字时超过第70列 vi编辑器将把该字整个移至新行 这也意味着右边界可能会对不齐 wrapmargin选项的默认值是0 要关闭这个选项 键入 setwrapmargin 0 并按回车键即可 3 4 2缩写与宏vi编辑器为用户提供一些捷径 以使用户的输入更快速 更简单 ab 和 map 是两个用于该目的的命令 1 缩写操作符缩写操作符 ab 缩写 命令使得用户给任何字符串指定缩写 该功能可以帮助用户提高输入速度 用户可以为自己经常输入的文本选择一个易记的缩写 在vi编辑器中设置缩写后 就可使用该缩写代替原来的文本 例如 要缩写本书中常用的文本UnixOperatingSystem 键入 abunoUnixOperatingSystem 并按回车键 在这个例子中 uno 是赋给UnixOperatingSystem的缩写 因此 当vi处于文本输入模式时 任何时间用户键入 uno 接着键入一个空格时 vi都将uno变为UnixOperatingSystem 如果uno是另一个字的一部分 如unofficial 则并不会发生改变 vi通过uno前后的空格来识别出uno是一个缩写 并把它扩展 要取消一个缩写 用户可以使用 unab 未缩写 操作符 例如 要取消uno缩写 键入 unabuno 并按回车键即可 实例3 1 1 键入 ablclinuxcourse 并按回车键 将lc指定为linuxcourse的缩写 2 键入 ab123one two three etc 并按回车键 将123指定为one two three etc 的缩写 3 键入 ab 并按回车键 显示所有指定的缩写 lclinuxcourse123one two three etc 4 键入 unab123 并按回车键 取消123缩写 2 宏操作符宏操作符 map 使用户能将一系列键指定给某一键 如同缩写操作符给用户一个文本输入模式下的捷径一样 map给用户一个在指令模式下的捷径 例如 将指令dd指定为q 键入 mapqdd 并按回车键 此后 当vi处于指令模式时 每当用户键入q时 vi应删除光标所在的行 要取消一个map指定 用户可以使用 unmap 操作符 键入 unmapq 并按回车键 要查看map键的列表和它们指定的内容 键入 map 并按回车键 用户也可以使用map指令为自己的终端指定功能键 在这种情况下 用户键入 n 作为键名 n代表功能键号 例如 要指定dd到 F2 键入 map 2dd 并按回车键即可 此后 如果用户在vi的指令模式下按 F2 键 vi应删除光标所在的行 实例3 2 下面例子显示部分指定键 1 键入 mapV linux 并按回车键 将V键指定为搜索linux的搜索指令 2 键入 map 3yy 并按回车键 将 F3 指定为拷贝一行 3 键入 map 并按回车键 显示已经指定的键 V linux 3yy 实例3 3 假设用户希望在文件中查找 linux 并将它替换为 LINUX 进行下面的操作 1 键入 linux 并按回车键 查找单词 linux 2 键入 cwLINUX 然后按 Esc 键 将 linux 改为 LINUX 并返回vi指令模式 在映射键指定中 命令行中按 Ctrl v Return 来代表回车 用 Ctrl v Esc 来代表 Esc 键 这样 要映射前面的命令到一个键中 比如说V键 键入 mapv linux 接着按 Ctrl v Return 然后键入 cwLINUX 再按 Ctrl v Esc 该命令行中使用了不可打印字符 Ctrl v 和 Esc 所以用户看到的屏幕如下所示 mapv linux McwLINUX 3 4 3 exrc 文件用户在vi编辑器中所设置的所有选项都是临时的 当用户退出vi时 它们都会失效 要使这些设置成为永久的 而不需在每次使用vi时重新设置 可以将选项的设置保存到文件 exrc 中 注意 以 点 开头的文件被称为隐藏文件 当用户打开vi编辑器时 它自动查看用户当前工作目录中的 exrc 文件 并根据在文件中找到的内容设置编辑环境 如果vi没有在当前目录中发现 exrc 文件 它将查找用户的主目录 并根据在那里发现的 exrc 文件设置编辑环境 如果vi一个 exrc 文件也没有找到 则它对选项使用默认值 vi检查 exrc 文件存在的方式给用户提供了强大的工具 用户可以根据自己的不同的编辑需要定义 exrc 文件 例如 可以创建一个通用的 exrc 文件存在主目录 用户可以用vi创建一个 exrc 文件 或修改现有的 exrc 文件 实例3 4 创建一个 exrc 文件 键入 vi exrc 并按回车键 然后输入用户想要的set和其他命令 下面是一个具体的例子 setreport 0setshowmodesetnumbersetic setwm 10setscroll 5abuopUNIXOperatingSystemmapqdd 3 4 4运行Shell命令用户可以在vi的命令行运行LinuxShell命令 这一方面的特性使用户可以临时抛弃vi来运行Shell命令 通知vi后面是一个Shell命令 例如 要在vi编辑器中运行date命令 键入 date 后按回车键 vi编辑器将清除屏幕 执行date命令 我们可以看到类似如下的屏幕显示 SatFeb814 00 52EDT2003 Hitanykeytocontinue 按任意一个键即可返回vi编辑器 并可在前面离开的地方继续编辑 如果用户希望 也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论