vi是一种广泛应用于Unix和Linux上的文本编辑器,有时也称为模式编辑器,因为不同的按键会更改不同的编辑模式并产生相应的操作。
vi的几种常用工作模式:
1、Insert Mode(插入模式)
启动vi程序后,按“i”进入插入模式,也就是可以对文档进行编辑了,比如我们需要编辑一个名为test的文件,直接输入vi test就可以启动并开始编辑,按一下“i”即可写入内容
SolidCaptureImage21233796
插入模式下,屏幕左下角会有“INSERT”文字提示,表示当前为Insert Mode
插入模式下的常用操作
  • “i”在当前光标处插入内容
  • “I”在当前行首插入内容
  • “a”在当前光标后一个字符插入内容
  • “A”在当前行尾插入内容
  • “o”在当前行下方另起一行并开始插入内容
  • “O”在当前行上方另起一行并开始插入内容
 
2、Ex Mode(末行模式)
通常在这种模式下做文件保存和程序退出等操作,要进入这种模式,首先需要退出插入模式,然后输入“:”,后面追加不同的字母代表不同的操作
比如现在我编辑完了test文件的内容,需要将刚做的操作保存
  • 按“Esc”键退出插入模式
  • 输入“:”进入末行模式
  • 输入“w(仅保存)”,然后回车
  • 或者可以直接输入“wq(保存并退出)”,一次就操作完成保存文档和退出程序
SolidCaptureImage22058984
末行模式会在屏幕最下方以“:”开头
末行模式下的常用操作
  • “w”保存更改到磁盘
  • “w filename”保存文件为指定名称
  • “wq”保存并退出vi
  • “q!”不做保存并退出vi
  • “wq!”对于只读属性的文件强制保存并退出vi
3、Command Mode(命令模式)
vi的默认模式便是命令模式,该模式下可以做诸如定位光标(按字符、按词、移动到某行、文档首/尾)、复制/粘贴等操作,命令模式下屏幕下方无任何提示,直接将键盘输入解释为相应操作命令并执行
命令模式下的常用操作
  • “5+right_arrow”从光标处定位到向右第5个字符
  • “gg”从光标处定位到首行
  • “G”从光标处定位到末行
  • “xG”调制某行
  • “y$”复制当前光标处至行尾
  • “yy”复制当前行
  • “nyy”向下复制n行
  • “p”粘贴
  • “dd”删除当前行
  • “u”撤销前次操作
  • “ctrl+r”重做前次操作
在一些UNIX系统上,vi的光标定位按键可能与Linux下不太一样,比如linux下面是用上下左右四个方向键来控制光标,而UNIX下是用“h(左)j(下)k(上)l(右)”,貌似是由于早期的键盘只有主键区,没有方向键和小键盘,所以做了这样的keymap设定
 
vim是从vi基础上发展出来的一个功能更为强大的文本编辑器,全称为“Vi IMproved”,包括支持语法高亮、编译及错误跳转等方便编程的功能(不过我不太用的上,编程基础差^_^)
我个人用得最多的功能实际上就是语法高亮,在编辑一些配置文件时非常好用,帮助你实时检查输入正确性,但是通常我们在启动vi编辑器的时候并不带语法高亮,需要简单设置一下
SolidCaptureImage20939468
假设已经装好了vim-X11、vim-common、vim-enhanced这几个包,先用vi编辑/etc/bashrc(当然编辑自己主目录下的.bashrc也行,只对当前用户生效),在最后一行添加程序别名设置,然后使该全局配置文件生效就可以了
SolidCaptureImage21002890
alias命令用来设置别名
SolidCaptureImage21055000
source命令使配置文件生效
SolidCaptureImage23336546
加上颜色高亮后,是不是友好并醒目了很多?
 
再介绍vim几个简单的高级编辑应用
在命令模式下
搜索
“/keyword”从光标处向文件尾搜索关键字
“?keyword”从光标处向文件首搜索关键字
完成搜索后vi会将所搜索的关键字做高亮显示,可以用“n/N”来向下/向上定位光标至邻近的关键字位置
SolidCaptureImage23823203
 
替换
只介绍一下全文替换吧
在末行模式下输入“%s/keyword1/keyword2/g”,确定后,该命令会将文档中所有的keyword1替换为keyword2,那上面的文件/etc/fstab做个测试,需要把所有的LABEL替换成test(不要保存啊,要不然系统就无法启动了)
SolidCaptureImage24052390
修改完后,屏幕下面会提示,一共改了4行中的4处
这时已经可以看到,test的底色为红色,意为警告,有语法错误,嗯……功能不错
 
其实vi或vim还有很多操作,我就不一一介绍了,这玩意儿得多用多练,才能体会得到程序功能的强大
提供一幅vi操作指令图片的附件,1440x900分辨率,直接设置为宽屏显示器壁纸,随时用随时看

本文部分内容参考了http://zh.wikipedia.org/wiki/Vim中关于vim的介绍