vi编辑器命令

vi是一个分模式文本编辑器,包括输入模式和指令模式。用户可以在输入模式下编辑文本,通过Esc切换到指令模式进行删除、移动等操作。可以使用vifilename命令打开文件编辑,viewfilename以只读方式查看。指令模式下,有各种移动游标、删除和修改文本的快捷方式。文章还介绍了如何保存、退出文件,以及执行复杂编辑指令和切换到shell状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.vi的操作模式

vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。 在输入模式下,按Esc键切换到指令模式下。 在指令模式下,按输入指令(i、a、o等)进入输入模式。

2.进入vi

vi filename

直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。 如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。

view filename

以只读方式打开文件filename

3.指令模式

3.1进入输入模式

序号指令说明
1a在当前游标之后输入
2A在当前行之末输入
3i在当前游标之前输入
4I在当前行之首输入
5o在当前行之下新增一行,并在新增行输入
6O在当前行之上新增一行,并在新增行输入

输入结束后,按Esc键退出输入模式。

3.2游标移动

序号指令说明
1h向左移动一个字元
2l向右移动一个字元
3j向下移动一个字元
4k向上移动一个字元
5b左移一个单词,至词首
6w右移一个单词,至词尾
70移到当前行行首
8$移到当前行行尾
9+移至下一行的行首
10-移至上一行的行首
11H移至视窗的第一行
12M移至视窗的中间一行
13L移至视窗的最后一行
14G移至该文件的最后一行
15nG移至该文档的第n行
16n+下移n行
17n-上移n行

3.3视窗移动

序号指令说明
1Ctrl + f视窗下卷一页
2Ctrl + b视窗上卷一页
3Ctrl + d视窗下卷半页
4Ctrl + u视窗上卷半页
5Ctrl + e视窗下卷一行
6Ctrl + y视窗上卷一行

3.4删除操作

序号指令说明
1x删除游标所在字元
2X删除游标前一字元
3dw从游标当前位置开始向后删除一个单词
4db从游标当前位置开始向前删除一个单词
5d0从行首删除至当前游标位置
6d$从游标当前位置删除至行尾
7dd删除游标所在行
8D同d$
8J删除⼀个换⾏符。在 Vim 中你可以把两⾏连起来,这意味着删除两⾏间的换⾏符。

3.5修改操作

序号指令说明
1s修改游标所在字元,修改完成后按Esc键结束
2S修改整行内容,修改完成后按Esc键结束
3r替换当前游标所在字元
4R进入替换状态,直至按Esc键结束
5cw修改一个单词(从游标位置至词尾)
6cb修改一个单词(从词首至游标位置)
7cc修改整行内容,完成后按Esc键结束,同S
8c0修改行首至游标位置的内容
9c$修改游标位置至行尾的内容
10~游标所在字元大小写切换

3.6指令重复

在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:

序号指令说明
1nx删除n个字元
2ndd删除n行
3ns修改n个字元

3.7取消前一动作(Undo)

序号指令说明
1u撤消上一指令的结果

3.8查找字符串

序号指令说明
1/字符串从当前游标向后查找该字符串
2?字符串从当前游标向前查找该字符串
3n从当前游标向后查找下一个字符串
4N从当前游标向前查找下一个字符串

3.9查看编辑状况

序号指令说明
1Ctrl + g显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改

4.保存与退出

序号指令说明
1:w保存,但不退出
2:wq保存并退出
3:x同:wq
4:q退出,如果当前文件没有保存,禁止退出
5:q!不保存退出
6:w file1将内容保存至文件file1中,注意:此时编辑的仍为原文件
7:w! file1将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行

5.环境设置

序号指令说明
1:set显示已设置的环境状况
2:set all显示所有的环境设置选项
3:set nu显示行号
4:set nonu不显示行号
5:set ts = n设置Tab键的长度为n

6. 执行指令

以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用".“代替,文件最后一行可用”$"代替。

序号指令说明
1: 10,20d删除第10行至第20行的内容
2:10d删除第10行的内容
3:%d删除全部内容
4: 10,20co30将第10行至第20行的内容复制到第30行之后
5: 10,20mo30将第10行至第20行的内容移动到第30行之后
6: 1,$s/old/new将第1行至最后一行中的old替换成new
7: 1,$s/^/new将第1行至最后一行的内容前面插入new
8: 10将游标移至第10行

7.重复指令

序号指令说明
1.重复上一条指令

8.切换到shell状态

序号指令说明
1:sh切换到shell状态,exit返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灬烟花易冷灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值