Vim编辑器
- vim编辑器本质上是一个文本编辑器,可编辑代码。
- vim是 vi 的升级版本。
- 使用方式:
- vi filename
- vim filename
vim界面介绍
默认进入命令行模式,按 i 进入插入模式。
插入模式 按ESC 进入命令行模式。
vim编辑区分为:文本编辑区,文件名,底行命令编辑区,命令编辑区。
命令行模式
识别命令,执行命令(复制粘贴,剪切......)
vim+文件名:默认进入命令行模式。
任意模式下 按ESC进入命令行模式。
命令详解:
光标调整命令:
G 光标跳转到结尾行;
gg光标跳转到文件开头;
上下移动->上下箭头即可;
w 光标移动到下一个单词;
大小写字母转换:shift + ~
复制粘贴:
yy 复制光标所在行内容;
p 在光标所在行下面粘贴;
P 在算光标所在行上面粘贴;
np 向下粘贴n次;
nP 向上粘贴n次;
nyy 复制n行;
剪切:
dd 剪切光标所在行的内容;
ndd 剪切n行;
dG 删除光标后面所有行内容;
gg dG 删除文件中所有内容;
撤销:
u 撤销上一步操作;
ctrl r 撤销上一步的撤销操作;
代码对齐:
全局对齐:底层命令行输入gg=G按回车即可;
局部对齐:文本编辑区,点=再点要对齐的行即可;
查找:
/word回车 查找到的word高亮显示,(nohl 取消高亮);
n 跳转到下一个高亮的词
N 跳转到上一个高亮的词
插入模式
编辑文本
1.进入插入模式:
1.1 在命令行模式下:使用 i I o O a A
i 在光标所在位置的 前面 插入
I 在光标所在行 行首 插入
o 在光标所在行 下一行 插入
O 在光标所在行 上一行 插入
a 在光标所在位置的 后面 插入
A 在光标所在行 行尾 插入
底行模式
保存并退出文件等操作;
1.在命令行按下 shift : 进入底行模式
2.详解:
2.1 保存退出:
:w 保存文件
:q 退出文件
:wq 保存并退出
:! 强制 一般配合wq使用 :wq!
:wqa 保存全部并退出;
2.2 分屏文件
:vsp 文件名 左右分屏打开文件
:sp 文件名 上下分屏打开文件名
2.3 行号显示
set nu 显示行号
set nonu 取消行号
2.4高亮显示
nohl 取消高亮
/word 高亮显示word
2.5底行模式下的复制,剪切
复制: m,ny回车 复制m到n行的内容
剪切: m,nd回车 剪切m到n行的内容
3.6替换
局部替换:%s/原字符串/目标字符串 回车 将每一行第一个原字符串替换成目标字符串
全局替换:%s/原字符串/目标字符串/g 回车 将文件中所有原字符串替换成目标字符串
指定行替换:
m,ns/原字符串/目标字符串 回车 将m到n行的第一个原字符串替换成目标字符串
m,ns/原字符串/目标字符串/g 回车 将m到n行的所有原字符串替换成目标字符串
计算机体系
C语言
计算机语言:二进制语言 0/1 即高低电平
GCC编译工具:将C语言编译生成一个二进制文件;
第一个C语言:
c语言文件: 以 .c结尾的文件
#include <stdio.h>
//# 预处理符号
//include 包含头文件的关键字
//<> 去系统的库里寻找头文件 /usr/incude
//stdio.h 只要用到输入输出就要用到此头文件
int main()//int 函数的返回值类型 整型
{ //main 主函数 C语言的入口函数
//() 存放形式参数列表
//{} main函数的代码块,{} 里面的内容全部属于main
// printf 输出函数,向终端中输出一个字符串
printf("hello world!\n"); //"hello world!\n" 需要输出的字符串
//\n 换行
// ; C语言的一个语句结束
return 0; //return 函数结束,开始返回
//0 程序执行成功
}
GCC编译器
gcc编译功能:
将c语言文件编译生成一个 可执行的二进制文件;
一步到位编译法:
gcc xxx.c -o 生成的二进制文件名 生成一个指定名字的可执行文件
gcc xxx.c -o 默认生成名为a.out可执行文件
linux程序执行:
./可执行文件
gcc编译器分步编译
预处理: 头文件展开,去除注释,宏替换(不会进行检错)
gcc -E hello.c -o hello.i
编译:语法分析,词法分析,语义分析(生成一个汇编文件)
gcc -S hello.i -o hello.s
汇编:将文件生成一个二进制文件
gcc -c hello.s -o hello.o
链接:链接库文件,生成可执行文件
gcc hello.o -o hello
进制详解
十进制
十进制:计数时,逢十进一
功能:方便人类标识
组成:0 1 2 3 4 5 6 7 8 9
前缀:无前缀
二进制
十进制:计数时,逢二进一
功能:方便计算机识别
组成:0 1
前缀:0b
进制之间的转换:
十进制转二进制:辗转相除法
二进制转十进制
八进制
十进制:计数时,逢八进一
组成:0 1 2 3 4 5 6 7
前缀:0
进之间的转换:
八进制转二进制:一个八进制数字 转为 3个二进制数字
二进制转八进制:三个二进制数字 合成 一个八进制数字(从右向左合成)
十六进制
十进制:计数时,逢十六进一
组成:0 1 2 3 4 5 6 7 8 9 A B C D E F
前缀:0x
进制之间的转换:
十六进制转二进制:一个十六进制数字 可以转换成 四个二进制数字
0xaf -> 0b1010 1111
二进制转十六进制:四个二进制数字 可以合成 一个十六进制数字(从右向左合成)
0b1111 1010 1011 -> 0xfab
非数字类型计算机表示方法
计算机只能识别二进制数字,实际编程会遇到人名,企业名,网址等信息,科学家发明一种ascii码,让字符与数字一一对应。
linux中察看ascii吗:
man ascii -> 查看ascii码
常见的ascii码(十进制):单引号内是字符
'A' -> 65 大小写转换 +/- 32
'a' -> 97
'\n'-> 10
'\0' -> 0 字符串的结尾表示
'0' -> 48 字符1转换为数字1 -> '1'-'0'即可
C语言
C语言的本质:对计算机内存的操作。
数据类型
数据类型:类似于模具,数据类型决定了每一个变量在内存中申请多大的空间。
1.基础类型
char short int long float double
2.构造类型
数组 结构体struct 共用体union 枚举enum
3.指针类型
int* char* ......
4.空类型
void
基础类型
char类型
内存:1字节
存储:存储字符
符号位:char 默认是有符号的数据
有符号char类型数据:最高位是符号位 , 0正 1负
范围:[-128,127] 127=2^7-1
规定1000 0000 为-128,最高位既是符号位也是数字位;
unsigned char 无符号数据 八位全用来放数字
范围:[0,255] 255=2^8-1
short类型
内存:2字节
存储:short存储短整型,小型数字,例如年龄,电量等;
符号位:short 默认是有符号的数据
有符号short类型数据:最高位是符号位 , 0正 1负
范围:[-(2^15),2^15-1 ] [-32767,32767]
规定1000 0000 0000 0000为-32767,最高位既是符号位也是数字位
unsigned short 无符号数据 十六位全用来放数字,都是正数
范围:[0,2^16-1 ] [0,65536]