• 1. 第五章 VI编辑器
  • 2. 课程介绍目的:掌握vi编辑器的使用。 内容:掌握终端下vi编辑器的使用方法,掌握定制vi编 辑器的方法。 重点: vi编辑器的模式转换和使用方法。 难点: vi编辑器的编辑方法。
  • 3. 5.1 编辑器简介VI的第一个版本由Bram Moolenaar[布莱姆·米勒]在1991年发布,最初的简称是Vi IMitation,随着功能的不断增加,名称正式改成了Vi IMproved,现在是在开放源代码方式下发行的自由软件。 vi原义是visual interface,是一个运行在TUI下的全屏幕编辑器。在linux中所用到的vi叫做vim(即vi Improved)。使用vi的好处,通用性:在所有的Unix和类Unix系统中都有vi编辑器;功能强:可实现各种编辑功能。(有关vi:http://www.vim.org/) VI的第一个版本由Bram Moolenaar[布莱姆·米勒]在1991年发布,最初的简称是Vi IMitation,随着功能的不断增加,名称正式改成了Vi IMproved,现在是在开放源代码方式下发行的自由软件。 vi原义是visual interface,是一个运行在TUI下的全屏幕编辑器。在linux中所用到的vi叫做vim(即vi Improved)。使用vi的好处,通用性:在所有的Unix和类Unix系统中都有vi编辑器;功能强:可实现各种编辑功能。(有关vi:http://www.vim.org/)
  • 4. (本页无文本内容)
  • 5. 5.2 vi的操作模式 进入vi:vi [filename] vi有三种操作模式: Command mode:输入各种命令控制光标的移动、删除字符、区段复制等; Insert mode: 文字数据的输入; Last line mode: 保存文件、离开vi及其他设置,如寻找或取代字符串等。
  • 6. 5.2 vi的操作模式
  • 7. 5.3 Command mode命令介绍 进入编辑模式i进入编辑状态,在光标前插入字符 a进入编辑状态,在光标后追加字符 I进入编辑状态,在行首插入字符 A进入编辑状态,在行尾追加字符 o进入编辑状态,在光标位置下面创建一个新行。O进入编辑状态,在光标位置上面创建一个新行。
  • 8. 5.3 Command mode命令介绍移动光标j光标下移一行 k光标上移一行 h光标左移一格 l光标右移一格 Ctrl + f向下翻一屏 Ctrl + b向上翻一屏 Ctrl + d向下翻半屏 Ctrl + u向上翻半屏 [n]G把光标移到第n行,不带n则移到文件尾 $光标移到行尾 数字0光标移到行首
  • 9. 5.3 Command mode命令介绍删除文字x删除光标处的字符 X删除光标前的字符 D 删除同一行中光标所在位置之后的所有字符[n]dd删除从光标开始的n行r替换当前光标处的字符 R替换从光标处开始的一串字符,并进入编辑状态
  • 10. 5.3 Command mode命令介绍复制文字yy复制光标所在的当前行到内存缓冲区[n]yy复制光标所在的当前行及其后n行到内存缓冲区p将缓冲区的内容粘贴到光标的后面P将缓冲区的内容粘贴到光标的前面
  • 11. 5.3 Command mode命令介绍其他命令ctrl+g在窗口的最后一行显示总行数和当前行数数字+G跳到指定行u复原功能%查括号ZZ保存、退出
  • 12. 5.4 Last line mode命令介绍e 文件名新建n 文件名打开w [filename]保存q退出q!强制退出不保存wq保存退出set nu加入行号set nonu取消行号set list显示制表符(^I)和行尾符号
  • 13. 5.4 Last line mode命令介绍?或 / 字符串查找set noic set ic查找时不忽略大小写 查找时忽略大小写
  • 14. 5.5 替换字符串替换命令集成了查找和修改命令的功能 利用 :s 命令可以实现字符串的替换; :[g] [address]s/search-string/replacement-string[/option] 在替换命令中如果没有指明address,那么替换命令将仅搜索当前行。 如果使用了某个行号作为address,那么address将搜索对应行。
  • 15. 5.5 替换字符串如果在地址字符串的前面出现了字母g,那么vim将作用于文件中的所有匹配行进行匹配,即g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。 g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;
  • 16. 5.5 替换字符串一些address的示例: 5 第五行。 77,100 第77行到第100行之间的行(包括77行和 100行)。 1,. 从工作缓冲区的第一行到当前行。 .,$ 从当前行到工作缓冲区的末尾行。 1,$ 整个工作缓冲区。 % 整个工作缓冲区。 /pine/ 包含字符串pine的下一行。 g/pine/ 包含pine字符串的所有行。 .,.+10 从当前行到第10行(共11行)。
  • 17. 5.5 替换字符串替换的示例: :s/good/better/ 将当前行中第一次出现的字符串good替换为better :1,.s/some/any/g 将当前行以及之前的所有行中出现的所有字符串some替换为字符串any,参数g表示将行中所有的匹配字符串替换为要替换的字符串。 :1,$s/ten/10/g 将文本中所有出现字符串ten的行中所有的字符串ten替换为字符串10。例如ten->10,often->of10。
  • 18. 5.5 替换字符串:g/chapter/s/ten/10/ 将所有包含字符串chapter的行中第一次出现的字符串ten替换为字符串10。 :%s/\/linux/g 将文本中所有单词name替换为字符串linux。
  • 19. 本章小结在这一章中介绍了VI编辑器的使用方法,上述介绍的快捷键以及指令是在操作中经常会用到的,VI中还有很多其他的快捷键和功能,例如多文件多窗口操作,这里就不一一详述了。系统配置文件等文本文件的编辑都会用到VI编辑器,要多多练习,熟练地使用VI编辑器。