vi的基本使用

VI基本使用


基本知识

vi有三种模式

1.命令行模式
2.编辑模式(插入模式INSERT和替换模式REPLACE)
3.末行模式

按:从命令行模式切换到末行模式
按ESC从末行模式或编辑模式切回到命令行模式
按插入命令切换到插入模式


vi打开文件的命令选项

vi temp.txt +100
打开temp.txt 将光标定位到100行
不加行数只写+ 直接定位到文件末尾

vi命令行模式命令

插入
i:  切换到插入模式,从光标前开始插入
I:  切换到插入模式,从行首开始插入

a:  切换到插入模式,从光标后开始插入
A:  切换到插入模式,从行尾开始插入

o:  在光标所在行上面插入一个空行
O:  在光标所在行下面插入一个空行
移动光标
k j h l 分别对应上下左右

0: 移动到行首
$: 移动到行尾
^: 移动到第一个字符

gg:     移动到文件头(go)
G:      移动到文件末尾
数字gg: 移动到相应数字行
数字G:  移动到相应数字行
:数字:  移动到相应数字行

H:  移动到屏幕顶部(Head)
M:  移动到屏幕中间(Middle)
L:  移动到屏幕底部(Low)

(:  切换到上一段落首
):  切换到下一段落首
{:  切换到上一段落首前空行
}:  切换到下一段落首前空行

%: 切换到括号位置,对'()','[]','{}'有效 对'<>'无效

m+字母: 标记,将光标处标记为字母索引(Mark)
'+字母: 将光标切换到字母索引对应的位置

示例->
    将光标放在15行后,键入ma,将15行作为a标记
    将光标放到35行后,键入mb,将35行作为b标记
    
    此时无论光标在何位置,只需要键入'a就可以将光标定位到15行.键入'b就可以将光标定位到35行.
    
    注意:此命令只能定位到行,不能定位到具体行的某个位置
vi可视模式

可视模式:可以让操作员看到自己选择的内容

v:      进入一般可视模式,选中光标到起点间的所有内容
V:      进入可视行模式,选中光标行到起点行间的所有内容
ctrl+v: 进入可视块模式,选中光标与起点的一块内容
vi撤销与恢复撤销
u:      撤销命令的操作,可以一直撤销到文件最开始打开时的状态(undo)
ctrl+r: 恢复撤销命令(redo)
vi删除(剪切)

vi中的删除操作就是剪切操作

x:  删除光标所在位置的字符,或者选中的字符
d:  配合移动光标命令一起使用,
示例->
    dw可以删除后一个单词
    d0可以删除光标到行首
    d$可以删除光标到行尾
    d{可以删除光标到段位
    d7G可以删除光标到第七行
    d'a删除光标到a标记处
    
dd: 删除一整行,可以添加数字,
    例如使用2dd就可以连续删除之后的两行
    
D:  删除光标到行尾的所有文本
vi复制粘贴

vi的文本缓存区和剪切板不是共用的,所有不能使用ctrl+c 复制使用p粘贴.只有切换到编辑模式中才能粘贴剪切板的内容

y: 复制,需要配合移动光标命令一起使用
示例->
    yw复制后一个单词
    d0可以复制光标到行首
    d$可以复制光标到行尾
    d{可以复制光标到段位
    d7G可以复制光标到第七行
    d'a复制光标到a标记处
    
yy:复制一行,可添加数字
    例如使用2yy就复制了光标往下两行内容

p:粘贴,可添加数字
    例如5p就将连续粘贴五次文本缓存区的内容
vi替换
r:替换光标所在字符
    例如rH就将光标所在处替换成H字母
R:进入替换模式,相当于windows下的insert模式
缩排与重复执行
>>:行前增加缩进
<<:行前减少缩进

    在可视模式下使用一个'>'或'<'就可以

.:重复执行,重复执行上一次命令
查找命令
/:从光标处往下寻找内容
    例如 /test 就往下寻找与test匹配的文字
?:从光标处往上寻找内容
    
*:向上寻找光标所在单词
#:向下寻找光标所在单词

在查找到内容后使用如下命令可以切换到其他查找项
n:查找下一个
N:查找上一个
vi查找替换

vi查找替换只能在末行模式中使用,有以下固定格式
全局替换格式:
%s///g
可视范围替换格式:
s///g
确认替换格式
s///gc

末行模式下

%s/旧单词/新单词/g:全局替换文本

在可视范围内替换
使用v选中文本区域后使用

s/旧单词/新单词/g就可以在选中范围内替换了

%s/旧单词/新单词/gc将出现如下选项

y:同意
n:拒绝
a:替换所有
l:替换最后一个
^E:向下滚屏
^Y:向上滚屏
q:退出替换

数字与命令联用

如果要输入100个星号.可以执行以下命令
1.在命令行模式下输入100
2.输入i进入编辑模式
3.输入*插入星号
4:点击ESC退回命令模式
这样将重复执行100次2和3

  • 8
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值