VI常用命令

一、进入输入模式

命令说明
i在当前光标所在处前插入文本
I将光标移动到当前行的行首,并在行首前插入文本
a在当前光标所在处之后插入文本
A将光标移动到当前行的行末,并在行末之后插入文本
o在光标所在行的下面新插入一行,并将光标移动到新行的行首插入文本
O在光标所在行的上面新插入一行,并将光标移动到新行的行首插入文本

二、光标移动

命令说明
h或者左方向键将光标向左移动一格;
j或者下方向键将光标向下移动一格;
k或者上方向键将光标向上移动一格;
l或者右方向键将光标向右移动一格;
$移动光标到当前行的行末;
数字0移动光标到当前行的行首;
w移动光标到下个字的开头;
e移动光标到下个字的字尾;
b移动光标回上个字的开头;
nl在当前行中往右移动n个字符,如:2l、34l;
crtl+b屏幕往上翻一页;
crtl+f屏幕往下翻一页;
crtl+u屏幕往上翻半页;
crtl+d屏幕往下翻半页;
lG移动光标到文件的第一行;
G移动光标到文件的最后一行。
gg移动光标到第一行

三、文本编辑

命令说明
r替换光标所在处的字符;
R替换光标所到之处的字符,直到按ESC键为止;
J把光标所在行的下一行内容接到当前行的行末;
x删除光标所在位置的字符;
nx删除光标所在位置开始的n个字符,如3x删除3个字符;
X删除光标所在位置的前一个字符;
nX删除光标所在位置的前n个字符;
dw删除光标所处位置的单词;
ndw删除由光标所处位置之前的n个单词;
db删除光标所处位置之前的一个单词;
ndb删除光标所处位置之前的n个单词;
dd删除光标所在的行;
ndd删除光标所在行开始的n行;
d0删除由光标所在行的第一个字符到光标所在位置的前一个字符之间的内容;
d$删除由光标所在位置到光标所在行的最后一个字符之间的内容;
dlG删除由文件第一行到光标所在行之间的内容;
dG删除由光标所在行到文件最后一行之间的内容;
u撤销更改的内容;
ctrl+u撤销在输入模式下输入的内容。

四、复制粘贴

命令说明
yw复制光标所在位置到单词末尾之间的字符;
nyw复制光标所在位置之后的n个单词;
yy复制光标所在行;
nyy复制由光标所在行开始的n行;
p将复制的内容粘贴到光标所在位置。

五、查找与替换

命令说明
/str从光标位置开始往文件末尾查找str,按n查找下一个,按N返回上一个;
?str从光标位置开始往文件开头查找str,按n查找下一个,按N返回上一个;
:s/p1/p2/g将光标所处行中所有p1均用p2替代;
:n1,n2s/p1/p2/g将第n1到n2行中所有p1均用p2替代;
:g/p1/s//p2/g将文件中所有p1均用p2替换

六、末行模式命令

命令说明
w保存当前文件;
w!强制保存;
w file将当前编辑的内容写到文件file中;
q退出vi;
q!不保存文件退出vi;
e file打开并编辑文件file,如果文件不存在则创建一个新文件;
r file把文件file的内容添加到当前编辑的文件中;
n移动光标到第n行;
!command执行Shell命令command
r!command将命令command的输出结果添加到当前行。
ZZ保存修改并退出vi

七、其它

命令说明
:set nu指设置行号;
:set nonu指取消行号;
:n指移动光标到第n行;
:n1,n2d指删除指定范围的行;

八、常见应用

1、定义VI快捷键

格式为:map 快捷键 触发命令

例子:

(1)map ^P I# 指在这一行的行尾加入注释符号#

(2)map ^B ox 指在这一行的行尾删除注释符#

说明:

在VI中如何输入^P这个字符呢?

方法有两种:

  • 一种是ctrl+v ctrl+p

  • 另一种是ctrl+v+p

2、取消VI快捷键
  • 格式为unmap
3、连续行注释

(1):n1,n2s/^/#/g 指第n1到n2行都注释掉

(2):n1,n2s/^/#//g 指第n1到第n2行的注释符都删除

(3):n1,n2s/^/\/\//g 指把第n1到第n2行加入//符号

说明:

^:表示匹配行首;

\:表示转义符

4、替换

格式:ab XXX YYY

例子:

ab sammail samlee@126.com

指在vi中输入sammail按空格键或者回车键就会把sammail自动变为samlee@126.com。我们在写shell脚本时经常要加上作者的信息,这个方法就很方便我们填写自己的信息了。

如何取消上面对ab的定义呢?

直接unab即可

5、VI的配置文件

(1)VI配置文件的位置:~/.vimrc(默认为空)

(2)在编辑VI时我们常常需要打开行号的功能,如果要打开VI文件就显示行号,可以在~/.vimrc中加入set nu这句话就可以了。

转载于:https://my.oschina.net/legend1989/blog/852777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值