http://www.cnblogs.com/jiayongji/p/5771444.html
1、vi/vim是什么?
2、为什么要学习vi/vim?
首先所有的Linux发行版系统上都会默认内置vi编辑器,而不一定带有其他文本编辑器,非常通用;其次,很多软件的编辑接口都会默认调用vi;第三,vi具有程序编辑的能力;最后,vi程序简单,编辑速度相当快速。
3、vi的三种模式及各个模式之间的转换关系
4、一般模式常用操作
4.1 光标的移动
【h(或向左方向键)】 光标左移一个字符
【j(或向下方向键)】 光标下移一个字符
【k(或向上方向键)】 光标上移一个字符
【l(或向右方向键)】 光标右移一个字符
【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)
4.2 复制删除搜索替换
删除多行
:9,15 d
复制多行
:9,15 copy 16 或 :9,15 co 16
由此可有:
:9,15 move 16 或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面
【u】 撤消上一个操作
【[Ctrl] + r】 多次撤消
【x,X】 x为向后删除一个字符,相当于[Delete],X为向前删除一个字符,相当于[Backspace]
【dd】 删除光标所在的一整行
【ndd】 删除光标所在的向下n行
【d$】删除以当前字符开始的一行字符
【dw】 删除以当前字符开始的一个字
【ndw】 删除以当前字符开始的n个字
【d0】 删至行首
【d$】 删至行尾
【yy】 复制光标所在的那一行
【nyy】 复制光标所在的向下n行
【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴
【.】 这是小数点键,重复上一个操作
【/word】 在文件中查找内容为word的字符串(向下查找)
【?word】 在文件中查找内容为word的字符串(向上查找)
【[n]】 表示重复查找动作,即查找下一个
【[N]】 反向查找下一个
【:g/Javen/s//Javen.zhou/g】将文件中所有Javen均用Javen.zhou替换
【:n1,n2s/Javen/Javen.zhou/g】 n1、n2为数字,在第n1行到第n2行之间查找Javen字符串,并将其替换成Javen.zhou
【:n1,n2s/Javen/Javen.zhou/gc】 功能同上,只不过每次替换时都会让用户确认
【:s/Javen/Javen.zhou/g】将当前行中所有Javen均用Javen.zhou替代,若要每个替换都向用户询问则应该用gc选项
【:1,s/Javen/Javen.zhou/g】从第一行(第n行同理)到最后一行查找Javen,并将其替换成Javen.zhou
【J 】把下一行合并到当前行尾
4.2 块选择
【v,V】 v:将光标经过的地方反白选择;V:将光标经过的行反白选择
【[Ctrl] + v】 块选择,可用长方形的方式选择文本
【y】 将反白的地方复制到剪贴板
【d】 将反白的内容删除
5、一般模式切换到命令行模式
【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开
【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
【:set nu】 显示行号
【:set nonu】 取消显示行号
【:w newfile】 另存为
6、多文件编辑
【vim file1 file2】 同时打开两个文件
【:n】 编辑下一个文件
【:N】 编辑上一个文件
【:files】 列出当前用vim打开的所有文件
7、多窗口功能
【:sp [filename]】 打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
【[Ctrl] + w + j】 光标移动到下方窗口
【[Ctrl] + w + k】 光标移动到上方窗口
【[Ctrl] + w + q】 离开当前窗口
8、设置高亮
【:set hlsearch】 设置高亮
【:set nohlsearch】 关闭高亮
【:nohlsearch】 关闭当前已经设置的高亮