vi编辑器3种模式

命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。
输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“—INSERT—”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。
末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。

选取

在命令行模式下输入字符v(小写),便可以进入按字符选择模式,通过h、i、j、k键移动光标选择要进行复制的字符串。
在命令行模式下输入字符V(大写),便可以进入按行选择模式,通过h、i、j、k键移动光标选择要进行复制的行号。
在命令行模式下按下组合键Ctrl+V进入到按块选择模式,通过h、i、j、k移动鼠标选择要进行复制的区域块。

编辑

进入输入模式命令
i插入命令 a附加命令 o打开命令 c修改命令
r取代命令 s替换命令 Esc退出命令
输入模式的操作
Home光标到行首
End 光标到行尾
Page Up和Page Down上下翻页
Delect删除光标位置的字符

剪切

剪切的命令是d,即delete,d与y命令基本类似,所以两个命令用法一样,包括含有数字的用法.
d剪切选定块到缓冲区;
dd剪切整行
d^剪切至行首
d$ 剪切至行尾
dw剪切一个word
dG 剪切至档尾
#x例如3x删除光标处向右的三个字符
#dd例如3dd从当前行开始向下删除三行文本
x删除光标处的单个字符

复制

y在使用v模式选定了某一块的时候,复制选定块到缓冲区用;
yy命令复制当前整行的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$复制光标所在位置到行尾内容到缓存区
y^复制光标所在位置到行首内容到缓存区
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

粘贴

粘贴的命令式p,即put(放下)
p小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
P大写P代表贴至游标前(上)
整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)
如果是从系统剪贴板粘贴,可以在插入模式中用shift+insert进行粘贴。

撤销

u命令取消最近一次的操作,可以使用多次来恢复原有的操作
U取消所有操作
Ctrl+R可以恢复对使用u命令的操作

替换

:s/old/new用new替换行中首次出现的old
: s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g用new替换从第#行到第#行中出现的old
:% s/old/new/g用new替换整篇中出现的old
如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

查找

/pattern :向下查找pattern匹配字符串
?pattern:向上查找pattern匹配字符串
使用了查找命令之后,使用如下两个键快速查找:
n:按照同一方向继续查找
N:按照反方向查找

行号

显示行号

:set number

关闭行号

:set nonumber

更改所有账户配置

vim /etc/vimrc
在vimrc文件的最后添加
set nu

为当前用户配置环境

找到当前用户的vimrc文件。若无此文件,建立此文件即可。
vim ~/.vimrc
打开文件后,在最后添加
set nu
wq退出。
再次用vim打开即可显示行号。