Vi 使用命令

普通模式

进入插入模式

命令说明
i从光标所在位置前开始插入文本
I将光标移动到当前行的行首,然后在其前插入文本
a用于在光标当前所在位置后追加新文本
A将光标挪到所在行的行尾,从那里开始插入新文本
o将在光标所在行的下面开一行,并将光标置于该行的行首,等待输入文本
O在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本

普通模式光标定位

命令说明命令说明
G将光标移至最后一行行首$移动到光标所在行的行尾
nG光标移至第n行首^移动到光标所在行的第一个字符(非空格)
n+光标下移n行h, j, k, l分别用于光标左移,下移,上移,右移一个字符
n-光标上移n行H将光标移至当前屏幕首行的行首(即左上角)
n$光标移至第n行尾M将光标移至屏幕显示文件的中间行的行首
0(数字0)移动到光标所在行的行首L将光标移至当前屏幕的最底行的行首

普通模式下的替换和删除

命令说明命令说明
rc用字符c替换光标所指向的当前字符nrc用字符c替换光标所指向的前n个字符
x删除光标处的字符nx删除从光标位置开始向右的n个字符
dw删除一个单词,光标移至词首ndw删除n个指定的单词
db删除光标所在位置之前的一个词ndb删除光标所在位置之前的n个词
dd删除光标所在的整行ndd删除当前行及其后n-1行的内容
dG删除光标位置到最后一行的所有内容d1G删除光标所在位置到第一行的所有内容
d$删除光标位置到当前行的末尾的内容d0删除光标位置到当前行的开始的内容

普通模式下的复制和粘贴

命令说明
yy将当前行的内容复制到缓冲区
nyy将当前开始的n行内容复制到缓冲区
yG将当前光标位置到最后一行的所有内容复制到缓冲区
y1G将当前光标位置到第一行的所有内容复制到缓冲区
y$将当前光标位置到当前行尾的内容复制到缓冲区
y0将当前光标位置到当前行开始的内容复制到缓冲区
p将缓冲区的内容写出到光标所在的位置

普通模式下的字符串搜索

命令说明命令说明
/str往右移动到有str的地方n向相同的方向移动到有str的地方
?str往左移动到有str的地方N向相反的方向移动到有str的地方

普通模式下的撤销和重复

命令说明
u取消前一次的误操作或不合适的操作对文件造成的影响,使之恢复到这种误操作或不合适操作被执行之前的状态
.再执行一次前面刚完成的某个命令

普通模式下退出 Vi

命令说明
ZZ存盘退出
ZQ不保存退出

命令模式

命令模式下跳行

命令说明
:n直接输入要移动的行号即可实现跳行

命令模式下搜索和替换字符串

命令说明
:/str/从当前光标开始往右移动到有str的地方
:?str?从当前光标处开始往左移动到有str的地方
:/str/w file将包含有str的行写到文件file中
:/str1/,/str2/w file将从str1开始到str2结束的内容写入file文件中
: s/str1/str2/将找到的第一个str1替换为str2
: s/str1/str2/g将找到的所有str1替换为str2
:n1,n2s/str1/str2/g将从n1行到n2行找到的所有的str1替换为str2
:1,s/str1/str2/g将从第1行到当前位置的所有的str1替换为str2
:.,$s/str1/str2/g将从当前位置到结尾的所有字符串str1替换为str2
:1,$s/str1/str2/g将从第1行到最后一行的所有字符串str1替换为str2

命令模式下复制,移动和删除文件行(块)

命令说明
:n1,n2 co n3将从n1开始到n2为止的所有内容复制到n3后面
:n1,n2 m n3将从n1开始到n2为止的所有内容移动到n3后面
:d删除当前行
:nd删除从当前行开始的n行
:n1,n2 d删除从n1开始到n2为止的所有内容
:.,$d删除从当前行到结尾的所有内容
:/str1/,/str2/d删除从str1开始到str2为止的所有内容

命令模式下的文件相关命令

命令说明
:w将当前编辑的内容存盘
:w file将当前编辑的内容写到file文件中
:n1,n2w file将从n1开始到n2结束的行写到file文件中
:nw file将第n行写到file文件中
:1,.w file将从第1行起到光标当前位置的所有内容写到file文件中
:.,$w file将从光标当前位置起到文件结尾的所有内容写到file文件中
:r file打开另一个文件file
:e file新建file文件
:f file把当前文件改名为file文件

命令模式下执行Shell命令

命令说明
:!Cmd运行Shell命令Cmd
:n1,n2 w ! Cmd将n1到n2行的内容作为Cmd命令的输入,如果不指定n1和n2,则将整个文件的内容作为命令Cmd的输入
:r ! Cmd将命令运行的结果写入当前行位置

命令模式下设置 Vi环境

命令说明
:set autoindent缩进每一行,使之与前一行相同
:set noautoindent取消缩进
:set number在编辑文件时显示行号
:set nonumber不显示行号
:set ruler在屏幕底部显示光标所在的行,列位置
:set noruler不显示光标所在的行,列位置
:set tabstop=value设置显示制表符的空格字符个数
:set wrapmargin=value设置显示器的右页边。
当输入进入所设置的页边时,编辑器自动回车换行
:set显示设置的所有选项
:set all显示所有可以设置的选项

命令模式退出 Vi

命令说明
:q退出vi
:wq保存退出 vi
:q!不保存退出vi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值