超详细的vi的常用命令
1.使用vi命令打开或新建一个文件
指令
1 | vi test.c |
如果该文件存在则打开,该文件不存在则新建
1.1使用vi可以定位到指定的位置比如我们有一行出错了,就可以快速的定位到该行
指令:
1 | vi test.c +16 |
该指令会打开,并跳转到test.c的第16行,如果只有+号,而没有16,则会直接定位到文件末尾。
1.2 vi的异常处理,如果vi修改了文件但为保存就退出,这时磁盘上就会存在.swp的文件如下:
再次使用vi编辑该文件时会看到如下信息,这时我们按下字母d删除交互文件即可。
2.vi的三种工作模式
2.1命令模式:打开文件首先进入的就是命令模式,通过命令对vi进行常规的编辑工作,如定位,翻页,复制、删除等。
2.2.末行模式:执行保存退出等操作。:q退出,:q!强制退出,:w保存,:w强制保存,:wq!强制保存退出(:x)
2.3.编辑模式:对文件进行编辑操作
2.4.三者之间的关系如下:
3.vi的常用命令
3.1.重复指令:用vi打开文件,在命令模式下输入重复的次数,然后再进入编辑模式,输入所想要重复的内容,然后按下ESC这时该指令就会复制你输入的次数。
3.2.移动光标,j向下,k向上,h向左,l向右。
3.2.1.光标的行内移动:w向前移动一个单词,b向后移动一个单词。0移动到行首,^移动到第一个不是空白子的位置,行首。$移动到行尾。
3.2.1.光标行内移动的第二种方法:gg 文件顶部,G 文件末尾,数字gg 移动到数字对应的行数,数字G 移动到数字对应的行数。:数字移动到数字对应的行数。
3.3.屏幕移动
Ctrl+b 向后翻页,Ctrl+f向前翻页
H 屏幕顶部
M 屏幕中间
L 屏幕底部
3.4.段落移动
{ 上一段
} 下一段
3.5.使程序在()和[]之间的快速切换
指令
1 | % |
3.6.给某一代码标记
指令
1 | ma//给一代码标记为a |
m后面的值可以使a-z或A-Z.
4.1.选中文本的三种方式
v 可视模式 从光标位置开始按照正常模式选择文本
V 可视行模式 选中光标经过的完整行
Ctrl+v 可视块模式 垂直方向选中文本
4.2.撤销和恢复撤销命令
u 恢复上次的命令
Ctrl+r 恢复撤销的命令
4.3.删除文本
x 删除光标所在的字符
d+移动命令 删除移动命令中对应的内容
dd 删除光标所在的整行
ndd 删除从光标所在的行开始的n行
D 从光标位置开始删除到行尾
5.1.复制和粘贴
y 复制一个字符
yy 复制光标所在的一整行
nyy 复制光标所在的行复制n行
p 进行粘贴
注意:vi中的文本缓冲区与系统中的剪贴板不是同一个
在其他软件中用Ctrl+c复制的内容不能通过p来张贴
可以在编辑模式中通过右键粘贴
5.2.替换命令
r 替换当前字符
R 替换当前行光标前的字符 会进入替换吗模式,替换完成后按ESC回到命令模式
5.3 缩进和重复执行
1 | << //向右缩进 |
5.4 查找命令和替换
1 | /str //注意str为你所要查找的内容 |
确定替换命令
1 | :%s/旧文本/新文本/gc //会提示是否替换命令 |
y替换,n不替换,a全部替换,q退出替换,l替换最后一个
5.5 插入命令
i 在光标所在字符前插入文本
I 在行首插入文本
a 在光标所在字符后插入文本
A 在行尾插入文本
o 在当前行后面插入一个空行
O 在当前行前面插入一个空行
6.1 常用的末行命令
:e 文件名 打开并编辑这个文件
:e . 会打开内置的文件浏览器,可以打开自己想要的文件
:n 文件名 新建文件
:w 文件名 另存为,但是仍然编辑当前文件,不会切换
6.2 分屏命令
:sp[文件名] 横向增加分屏
:vsp[文件名] 纵向增加分屏
切换分屏窗口
先按Ctrl+w再依次进行切换
w 切换到下一个窗口
r 互换窗口
c 关闭当前的窗口
q 退出当前窗口,如果使最后一个窗口则关闭vi
o 关闭其他窗口
转载请标明出处