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 执行可执行文件实现功能