VI编辑器

Linux vi 命令也就是指 vi 编辑器。vi 编辑器是 Linux/UNIX 环境下经典的编辑器。Linux vi 命令可以高效的编辑代码,配置系统文件等。

VI三种模式

命令模式:进入后默认状态,可输入某些操作命令
编辑模式:命令模式下按 i 键可进入编辑模式,编辑模式下按 ESC 回到命令模式
底行模式:先进入命令模式,然后按 shift+:

命令模式命令

删除光标所在字符

剪切光标所在行:前面可以加数字
将当前行拷入剪贴板:前面可以加数字

将剪贴板中的内容粘贴在光标后
撤销编辑
恢复编辑
<32G> 定位到32行
/ 进入搜索状态

底行模式命令

<:q> 不保存退出
<:q!> 不保存强制性退出
<:w> 保存编辑
<:wq> 保存并退出
<:wqa> 保存退出所有
<:vsp> 分屏
<:vsp 文件名> 分屏打开新文件
<:2,1y> 复制第2行到第4行的内容
<:2,4d> 删除第2行到第4行的内容
<:/字符串> 高亮显示查询到的字符串 N:向上 n:向下
<:noh> 取消高亮显示
<:6> 光标定位到第6行
<:set nu> 显示行号
<:set nonu> 取消行号
<:%/s/字符串1/字符串2/g> 将全文中的字符串1替换为字符串2
%:全文 s:替换 g:一行中所有 不加g只替换了每一行的第一个

特征 指令 作用
新增 a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动
A 从光标所在列最后面的地方开始新增资料
插入 i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动
I 从光标所在列的第一个非空白字符前面开始插入资料
开始 o 在光标所在列下新增一列,并进入插入模式
O 在光标所在列上方新增一列,并进入插入模式
特征 指令 作用





剪切
nx 剪切从光标所在的字符开始的n个字符
ncb 剪切光标所在的前n个字符
ncw 剪切光标所在的后n个字符
c$ 剪切从光标所在的字符到行尾的所有字符
ndd 剪切自光标所在的行开始的n行,若到文章结尾不够n行,则剪切到最后一行
s 删除光标所在的字符,并进入输入模式
S 删除光标所在的行,并进入输入模式
修改 r待修改字符 修改光标所在的字符,键入r后直接键入待修改字符
R 进入取代状态,可移动光标键入所指位置的修改字符,该取代状态直到按[ESC]键才结束



复制
nyb 复制光标所在的前n个单词
nyw 复制光标所在的后n个单词
y$ 复制从光标所在的字符到行尾的所有字符
nyy 复制光标自所在的行开始,向下的n行
p 将缓冲区内的字符粘贴到光标所在位置
u 取消上一次的文本编辑操作
指令 作用 指令 作用
0 移动到光标所在行的最前面 h 光标向前移动一个字符
$ 移动到光标所在行的最后面 l 光标向后移动一个字符
Ctrl+d 光标向下移动半页 k 光标向上移动一行
Ctrl+f 光标向下移动一页 j 光标向下移动一行
H 光标移动到当前屏幕的第一行第一列 e 移动到下一个字的最后一个字母
gg 光标移动到当前屏幕的第一行第一列 ^ 移动到光标所在行的第一个非空白字符
M 光标移动到当前屏幕的中间行第一列 n- 向上移动n行
l 光标移动到当前屏幕的最后行第一列 n+ 向下移动n行
b 移动到上一个字的第一个字母 nG 移动到第n行
w 移动到下一个字的第一个字母 :n 光标移动到第n行
特征 指令 作用


查找
/<要查找的字符> 向下查找要查找的字符
?<要查找的字符> 向上查找要查找的字符




替换



:range
s/string1/string2/gc
range:要替换的范围
s:转入替换模式
string1:这是要查找的一个正则表达式
string2:这是希望把匹配串变成的模式的正则表达式
g:可选标志,带这个标志代表替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串
c:可选标志,表示替换前询问

关于替换范围,有很多种写法,其中:
百分号(%)表示所有行
点(.)表示当前行
美元符号($)表示最末行

编译C代码文件,生成计算机可以识别的二进制文件
gcc xxx.c 编译默认生成a.out可执行二进制文件
a.out:可执行文件实现功能
gcc xxx.c -o xxx 编译指定生成xxx可执行二进制文件
./xxx 执行可执行文件实现功能