VIM

vi与vim的最大区别就是编辑一个文本时vi不会显示颜色,vim会显示颜色;
安装VIM工具
安装命令

yum install -y vim-enhanced

如果不知道vim需要安装的包名称可以使用以下命令来查询vim的包名称;

yum provides "vim"

vim的三种常用模式
一般模式
编辑模式
命令模式

一般模式

一般模式下的快捷操作

移动

h或←光标左移一个字符。如果是20h,表示左移20个字符。
j或↓光标下移一个字符   同上
k或↑光标上移一个字符   同上
l或→光标右移一个字符   同上
[Ctrl]+[f]屏幕向下移动一页   Page Down!!
[Ctrl]+[b]屏幕向上移动一页  Page Up !!
0或[Home]移动到此行最前面字符处!!
$或[End]移到光标所在行的行尾!!
H:光标移到当前屏幕最上方行的第一个字符!!
M:光标移到当前屏幕中间行的第一个字符!!
L:光标移动到当前屏幕最下方行第一个字符!!
G:移到此文件最后一行!!!
nG:移到第n行
gg:相当于1G,即移到第一行!!!
n[Enter]:光标下移n行

删除

x:向后删除一个字符
nx:向后删除n个字符(n为数字)
X:向前删除一个字符
dd:删除光标所在行的正行(!!!)
ndd:删除光标所在行以下n行(n为数字,包含当前行在内)
d1G/dgg:删除光标所在行到第一行所有数据(包括所在的行)
dG:删除光标所在行到最后一行(!!)
d$或d end:删除光标所在处到同行最后一个字符(!!)
d0或d home:删除光标所在处到同行第一个字符。(!!)
复制
yy:复制光标所在行(!!)
nyy:复制光标所在向下n行(n为数字)
y1G:复制光标所在行到第一行所有数据
yG:复制光标所在行到最后一行所有数据
y$:复制光标所在处到同行最后一个字符
y0:复制光标所在处到同行第一个字符
p:将已复制的数据粘贴到光标所在下一行
P:将已复制的数据粘贴到光标所在上一行
u:复原前一个操作(类似于windows中的ctrl+z)!!

替换

r:替换光标所在处字符一次。
R:一直替换光标所在处文字直到按下Esc(!!!)。
2.一般模式进入编辑模式
i:从光标所在处插入(!!!)
I:从所在行第一个非空白字符处插入(!!)
a:从光标所在下一个字符处插入
A:从光标所在行最后一个字符处插入(!!)
o:在光标所在处下一行插入新的一行(!!)
O:在光标所在处上一行插入新的一行(!!)

编辑模式

在一般模式下不可以修改某个字符,如果要修改字符必须加入编辑模式。从一般模式进入编辑模式只需要按i、I、a、A、o、O其中某一个键即可,一般习惯按i键进入编辑模式;

i 在当前字符前插入
I 在光标所在行的行首插入
a 在当前字符后插入
A 在光标所在行的行尾插入
o 在当前行的下一行插入新的一行
O 在当前行的上一行插入新的一行

命令模式:

在一般模式下,输入:或者/即可进入命令模式。在编辑模式下需要按esc键退出编辑模式,然后使用:号进入命令模式;
可以在命令模式下进行搜索、保存、替换、退出、显示行号等操作;

1.查询

/word:向下查找单词“word”(!!!)
?word:向上查找单词“word”(!!!)
n:表示重复前一个查找操作。
N:与n相反(反向查找)。
:set nu 显示行号
:set nonu 取消显示行号
:set nohl 取消高亮字符

2.替换

:s/word1/word2/g:在当前行将word1替换成word2(!!)
:%s/word1/word2/g:在当前文件将word1替换成word2(!!)
:n1,n2s/word1/word2/g:在n1到n2行查找word1替换成word2 (n1、n2为数字) 
:1,$ s/word1/word2/g:从第一行到最后一行查找word1替换成word2
:%s/word1/word2/gc:同上,在替换前确认是否替换。(!!!)只能单行确认,需要逐步确认。在该模式中,“y”确认更换,“n”否定更换,“a”全部替换,“q”退出,“l”表示单行替
换,并退出更换状态。Ctrl+e向下换行,Ctrl+y向上换行。

3.保存退出

:w [filename]:另存为filename。另存文件会自动创建
:r [filename]:读取filename指定文件中的内容到光标所在的行。
:n1,n2 w [filename]:将n1到n2行另存为filename。
:! command:临时切换到命令行模式下执行command命令。
例如“:!find / -name Helllo.java”即可在vim当中查看/home下面以ls输出的文件信息。
:wq:保存后退出。
:q:不保存退出(未改可以离开,如果修改了需要q!强制离开)
:q!:强制退出,不保存修改。
:wq!:强制保存退出。
:x 保存退出