Vi编辑器的详细说明
一、Vi的基本概念
1、基本模式:
命令模式(Command Mode):控制屏幕光标的移动,进行字符、字或行的删除,以及移动复制某区段及进入Insert mode,或者到 last line mode。
插入模式(Insert Mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
底行模式(Last Line Mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。
2、简化模式:一般使用时,将底行模式也算入命令行模式中,因此主要关注命令模式和插入模式。
二、Vi的基本操作
1、进入vi:在系统提示符号输入vi及文件名称后,进入vi,此时处于命令行模式,需要切换到插入模式才能输入文字。
2、切换至插入模式:在命令行模式下按一下字母“i”即可进入插入模式,开始输入文字。
3、退出插入模式:按「ESC」键可回到命令行模式。
4、保存并退出:在命令行模式下,按一下「:」冒号键进入底行模式,然后输入以下命令:
:w filename
:将文章以指定的文件名filename保存。
:wq
:存盘并退出vi。
:q!
:不存盘强制退出vi。
三、命令行模式功能键
功能键 | 描述 |
i |
切换进入插入模式,从光标当前位置开始输入文件 |
a |
进入插入模式,从目前光标所在位置的下一个位置开始输入文字 |
o |
进入插入模式,插入新的一行,从行首开始输入文字 |
ESC |
从插入模式切换为命令行模式 |
h 、j 、k 、l |
分别控制光标左、下、上、右移一格 |
Ctrl+b |
屏幕往后移动一页 |
Ctrl+f |
屏幕往前移动一页 |
Ctrl+u |
屏幕往后移动半页 |
Ctrl+d |
屏幕往前移动半页 |
0 |
移到文章的开头 |
G |
移动到文章的最后 |
$ |
移动到光标所在行的行尾 |
^ |
移动到光标所在行的行首 |
w |
光标跳到下个字的开头 |
e |
光标跳到下个字的字尾 |
b |
光标回到上个字的开头 |
#l |
光标移到该行的第#个位置,如5l,56l |
x |
每按一次,删除光标所在位置的后面一个字符 |
#x |
6x 表示删除光标所在位置的后面6个字符 |
X |
大写的X,每按一次,删除光标所在位置的前面一个字符 |
#X |
20X 表示删除光标所在位置的前面20个字符 |
dd |
删除光标所在行 |
#dd |
从光标所在行开始删除#行 |
yw |
将光标所在之处到字尾的字符复制到缓冲区中 |
#yw |
复制#个字到缓冲区 |
yy |
复制光标所在行到缓冲区 |
#yy |
6yy 表示拷贝从光标所在的该行往下数6行文字 |
p |
将缓冲区内的字符贴到光标所在位置 |
r |
替换光标所在处的字符 |
R |
替换光标所到之处的字符,直到按下「ESC」键为止 |
u |
如果您误执行一个命令,可以马上按下「u」,回到上一个操作,按多次u 可以执行多次回复。 |
cw |
更改光标所在处的字到字尾处 |
c#w |
c3w 表示更改3个字 |
ctrl+g |
列出光标所在行的行号 |
#G |
15G ,表示移动光标至文章的第15行行首 |
四、Last line mode下命令简介
在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。
命令 | 描述 |
set nu |
在文件中的每一行前面列出行号 |
# |
在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行 |
/关键字 |
先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止 |
?关键字 |
先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止 |
w |
在冒号输入字母「w」就可以将文件保存起来 |
q |
按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi |
qw |
一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件 |
相关问题与解答
1、问:如何在vi中快速跳转到指定行?
答:在命令模式(Command Mode)下,使用快捷键#G
可以直接跳转到指定行,输入15G
并回车,即可跳转至文件的第15行行首。
2、问:在vi中如何进行文本替换?
答:在命令模式(Command Mode)下,使用r
键可以替换光标所在处的字符;使用R
键则可以连续替换光标所到之处的字符,直到按下「ESC」键为止。
图片来源于互联网,如侵权请联系管理员。发布者:观察员,转转请注明出处:https://www.kname.net/ask/300794.html