程序编辑器:
启动 vim [option] file ...
vim +n file 光标出现在第n行  n去掉,光标处在最后一行
vim /pattern file 光标出现在第一次有该模式出现行的行首

退出
:q
:wq
:q! 强行退出
:w! 只读文件的强行保存

保存:在编辑模式下,ZZ保存退出
文本编辑器分三种模式:一般模式、编辑模式、末行模式。
打开时默认是一般模式 
 
从一般模式到编辑模式 :
i: 在当前所在字符前面插入
a:              后面
o:在当前光标所在行的下方新增一空白行输入
对应大写
I:当前光标所在行的行首插入
A:                行尾
O: 上方新增一行输入

从编辑模式到一般模式按下Esc键即可

从编辑模式到末行模式:用:即可

末行模式到一般模式按下两次Esc键即可

光标移动
h 左
j 下
k 上
l 右 
  
词间跳转
w 到下一单词的词首
[#]w #表数字 一次跳#个单词
[#]e 到当前单词到下一单词的词尾
[#]b 到当前单词前面一个的词首

在行内,行首行尾的跳转
 ^  行首第一个非空白字符上
 0  绝对行首
 $  绝对行尾
 
行间跳转
[#]G  跳到第几行
G  最后一行

末行模式下行间跳转
:#  跳转到第#行   
  
翻屏操作
Ctrl+f  到文件尾部 一屏
Ctrl+b  首部

Ctrl+d 文件尾部半屏
Ctrl+u     首部

删除
x 删除光标处的一个字符
#x
X  光标前的一个字符
d  可以结合跳转的字符操作 dw d$ d0
#d
dd 删除光标所在行
#dd  向下删除多少行

末行模式下的删除
地址定界:1,50d  删除了1到50行
.  表示当前行
$  表示最后一行  
相对地址定界
1,+(-)5d
.,$-1 当前行到倒数第二行
/PATTERN1/,/PATTERN2/d  从模式一的当前行到模式二的那一行删除

粘贴
p 上次删除或复制的内容粘贴到其他地方

如果是整行,在当前光标所在的下方粘贴
如果是单词或一部分,在当前光标所在处的后方粘贴G
P                           
如果是整行,在当前光标所在的上方粘贴
如果是单词或一部分,在当前光标所在处的前方粘贴

复制和d同
y可以和跳转命令并用
yy
#yy

可视化模式
v  按字符选取
V  按行选取  
  
从一般模式到编辑模式:  
c 先删除指定范围的内容,再转换至输入模式
C 先删除光标到行尾的内容,再转换至输入模式   
  
撤销
u 撤销上一次编辑的操作
Ctrl+r  撤销最近一次的撤销操作

在一般模式下#u可以撤销最近的#次操作在末行模式下不支持   
  
搜索
/keyword
?keyword
n 向下搜索前面查找的字符
N 向上搜索前面查找的字符

查找并替换
只在末行模式下使用S命令
“:定界s/查找的内容/替换成的内容/gi”

查找的内容支持正则表达式

修饰符
g  全局替换
i  忽略大小写
&  用于引用查找到的整个字符串
eg:1,20s/name/NAME/g将1到20行的name替换成NAME
    1,20s/\<u\(...e\)\>/U\1/g
    1,20s/n..e\>/&r/g
 
定界符
 1,$ =
 
 eg: %s/\etc/sysconfig/network/&s/g

分隔符可以转换
/
#
@   
  
末行模式下的其他操作:  
!shell command  可以直接执行shell命令

定界符w /path/to/sw  内容另存

分窗口显示文件
Ctrl-w ,s 水平拆分
Ctrl-w ,v垂直拆分
Ctrl-w ,上下键 切换窗口
Ctrl-w ,q 关闭当前光标所在窗口

打开多个文件
vim file1 file2 ...
末行模式下输入next 切换至后一个文件
              prev 切换至前一个文件
              first 切换至第一个
     last 最后一个
    
wall 退出所有文件
wqall
q!all

打开多个文件并拆分显示
-o 水平拆分
-O 垂直拆分

定制vim的工作属性
:set [no]nu 显示行号
:set [no]ai 自动缩进
:set [no]ic 忽略大小写

:syntax on /off 语法高亮的开启与关闭