vim和vi有什么区别,简单的理解vim是vi的升级版,所以直接用vim。
vim的所有操作是区分中英文大小写的,并且区分数字键盘(数字不能用小键盘)。
vim有三种工作模式:命令模式、文本编辑模式和最后行模式。

一、命令模式下的操作
1.1光标定位
键盘的上下左右可以移动,同时
k 上移
j 下移
h 左移
l 右移

ctrl+f 下一页(相当于page down)
ctrl+b 上一页(相当于page up)

H 将光标移到屏幕上的起始行(或最上行)
M 将光标移到屏幕中间
L 将光标移到屏幕最后一行
H和L命令还可以加数字。如2H表示将光标移到屏幕的第2行,3L表示将光标移到屏幕的倒数第3行。

w 右移光标到下一个字的开头
e 右移光标到一个字的末尾
b 左移光标到前一个字的开头
0 数字0,左移光标到本行的开始
$ 右移光标,到本行的末尾
^ 移动光标,到本行的第一个非空字符

1.2搜索(查日志时经常使用)
.搜索(命令行模式下)
/正向搜索字符串 如/str1 正向搜索字符串 str1
?反向搜索字符串 如?str1 反向搜索字符串 str1
n 继续搜索,找出搜索字符串下次出现的位置
shift + n 反向继续搜索

1.3替换和删除
rc 用 c 替换光标所指向的当前字符
5rA 用 A 替换光标所指向的后 5 个字符(nrc,n=5,c=A)

x 删除光标所指向的当前字符
3x 删除光标所指向的后 3 个字符(nx,n=3)

dw 删除光标右侧的字(可以包括下一行)
3dw 删除光标右侧的 3 个字(ndw,n=3)

db 删除光标左侧的字(可以包括上一行)
5db 删除光标左侧的 5 个字(ndb,n=5)

dd 删除光标所在行,并去除空隙
3dd 删除 3 行内容,并去除空隙(ndd,n=3)

1.4剪切和粘贴
从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。用户可将其粘贴到正文中的指定位置。完成这一操作的命令是:
p 小写字母 p,将缓冲区的内容粘贴到光标的后面
P 大写字母 P,将缓冲区的内容粘贴到光标的前面

复制内容倒缓存区
yy 复制当前行到内存缓冲区
5yy 复制 5 行内容到内存缓冲区(nyy,n=5)

1.5撤销和重复
u 撤消前一条命令的结果
. 重复最后一条修改正文的命令

二、文本编辑模式下的操作
命令模式下按i进入编辑模式

编辑模式按esc回到命令模式

三、最后行模式下的操作
在命令模式下按冒号进入最后行模式(末行模式)
:q 如果有未修改缓冲区数据,退出
:q! 取消所有对缓冲区数据的修改并退出【不保存直接退出】
:w filename 将文件保存到另一个文件中
:wq 将缓冲区数据保存到文件中并退出
:a,bw filename 将第 a 行至第 b 行的内容写入 filename 文件

:set nu 显示行号
:333 将光标移到第 333 行

:set fileformat=unix 修改文件格式(复制Windows下面的一些文本进来时,对有些应用来说需要修改格式才能读取)
:set fileencoding