vi编辑器
vi基本概念
vi编辑器简介,被誉为神的编辑器
- vi编辑器是所有Unix及Linux系统下的编辑器,它的强大不逊色于任何最新的文本编辑器。这里只是简单介绍一小部分指令,会使用的话会大大提高编码效率。Vi也是Linux中最基本的文本编辑器。
vi的基本概念
- 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(Lastline mode),各模式的功能如下
- 命令模式(command mode)
- 控制光标的移动,字符、字或行的拷贝与删除,进入底行模式或者插入模式
- 插入模式(Insert mode)
- 只有在Insert模式下,才可以进行文字的输入,按【ESC】键可回到命令模式。
- 底行模式(lastline mode)
- 将文件保存或退出vi,也可以设置内部环境,如寻找字符串、列出行号等。
- 命令模式(command mode)
vi基本操作
- 进入vi
- 在终端输入vi及文件名称后,就会进入vi,如果文件名不存在,保存时将会创建该文件。默认状态为命令模式,切换到插入模式才可进行文字的输入。
- 切换至插入模式编辑文件
- 在命令行模式按下字母【i】(insert)即可进入插入模式,此时可编辑文字。
- 退出vi及保存文件
- 在插入模式下,按【ESC】键转到命令模式按一下【:】冒号键进入底行模式
:w #filename被编辑的文件以filename名字另存。
:wq #保存并退出
:x #等同于wq
:q! #退出不保存
vi命令模式
移动光标
- 可以使用键盘上的上下左右来移动光标,或者使用vi的移动光标快捷键
h,j,k,l #对应左下上右
space #光标右移
Backspace #光标左移
Ctrl + p #光标上移
Ctrl + n #光标下移
Enter #光标下移
w或W #光标右移一个字/词至词首
b或B #光标左移一个字/词至词首
e或E #光标右移一个字/词至词尾
( #光标移至句首
) #光标移至句尾
{ #光标移至段落开头
} #光标移至段落结尾
nG #光标移至第n行行首
n+ #光标下移n行
n- #光标上移n行
n$ #光标移至第n行行尾
H #光标移至屏幕顶行
M #光标移至屏幕中间行
L #光标移至屏幕最后行
0 #光标移至当前行行首
$ #光标移至当前行行尾
G #光标移至文件最后一行
字符操作
i #在光标前插入
I #在当前行首插入
a #在光标后插入
A #在当前行尾插入
o #在当前行之下新开一行插入
O #在当前行之上新开一行插入
x #向后删除一个字符
X #向前删除一个字符
u #撤销一步
U #撤销所有更改
c #剪切
y #选中
p #粘贴
行操作
vi 拥有强大的命令组合,所以将命令组合起来之后会有更加强大的效果
^ #行首
$ #行尾
dd #删除一行
d^ #删除至行首
d$ #删除至行尾
ndd #删除n行
yy #复制一行
y^ #复制至行首
y$ #复制至行尾
nyy #复制n行
p #将复制行粘贴在光标所在行下方
P #将复制行粘贴在光标所在行上方
搜索和替换操作
/keyword #从光标开始处向文件尾搜索keyword
?keyword #从光标开始处向文件首搜索keyword
n #在同一方向重复上一次搜索命令
N #在反方向上重复上一次搜索命令
:s/p1/p2/g #将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g #将第n1至n2行中所有p1均用p2替代
:%s/p1/p2/g #将文件中所有p1均用p2替换
vi底行模式
:n1,n2 co n3 #将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 #将n1行到n2行之间的内容移动到第n3行下
:n1,n2 d #将n1行到n2行之间的内容删除
:w #保存当前文件
:e filename #打开文件filename进行编辑
:x #保存当前文件并退出
:q #退出vi
:q! #不保存文件并退出vi
:!command #执行shell命令command
:n1,n2 !command #将command的输出作为n1到n2行的内容覆盖原内容