vim
vim的模式: 1.命令行模式 2.编辑模式 3.低行模式
命令行模式指令
--编辑
- yy:将当前光标所在的行,复制 nyy(n表示具体的数字)
- p:将复制行进行粘贴 np
- dd:将当前光标所在的行,剪切(删除) ndd(删除/剪切n行)
- u:撤销历史操作
- ctrl + r :撤销u操作
- shift + ~ :大小写切换
- shift + r:替换(进入替换模式)
- r:替换光标所在的字符,支持nr
- x or X(shift + x):删除光标所在的字符,包括之前或者之后 支持nx
--光标移动
- gg:光标定位到文件的最开始
- shift + g :光标定位到文件的结尾
- n + shift + g :光标定位到文件的任意行
- shift + 6(^):光标定位到当前行的最开始(上)
- shift + 4 ($):光标定位到当前行的最结尾(下)
- w,b:以单词为单位进行光标的前后移动(左右)
- h左,j下,k上,l 右
--底行模式
- set nu/nonu :调出行号,或者取消行号
- vs 文件名 :分批操作
- w:写入,w!(强制)
- q:退出, q!(强制)
- ctrl + ww :光标跳转
- ! + cmd:不退出vim执行对应的指令(执行命令,编译,运行,查看man手册)
- Esc : 回到命令模式
gcc/g++
一、程序翻译过程: 文本的C -->计算机二进制
- 1.预处理:(a.去注释 b.宏替换 c.头文件展开 d.条件编译)
- 2.编译 (做语法检查, C ->汇编)
- 3.汇编 (汇编 -> 可重定向二进制目标文件)
- 4.链接 (链接 -> 多个.o ,.. ,.obj ->合并成一个可执行).exe
二、动静态库
- 动态链接:将库中我要的方法地址,填入到我们的可执行程序中,建立关联(节省资源)
- 静态链接:将库中方法的实现,拷贝到我们的可执行程序中
-
Linux: .so(动态库) .a(静态库) windows: .dll(动态库) .lib(静态库)
三、gcc的使用
gcc 文件名 -o 新生成的文件名
- gcc test.c -o test
- gcc -E mytest.c -o mytest.i (预处理)开始翻译直到预处理完成
- gcc -S mytest.i -o mytest.s (编译)开始翻译直到编译完成
- gcc -c mytest.s -o mytest.o (汇编)开始翻译直到汇编完成
- gcc mytest.o -o mytest.o (链接) (mytest.o 可重定向目标文件)
四、g++的使用 : 在后面补上 -std=c++11 支持C++11特性
gdb
- gcc和g++默认形成的可执行程序是动态链接的
- gcc,g++默认形成的可执行程序式release的,所以无法直接调试. 需要加上 -g选项
使用: gdb 文件名
指令:
- l 0 --从第0行开始显示代码
- r --开始调试,如果没有设置断点,就直接运行结束
- b 行数 --打断点 (会形成断点编号,可用info查看)
- info b --查看断点
- d 断点编号 --删断点
- disable 断点编号 --使能(打开)
- enable 断点编号 -- 关闭
- p 变量名 --打印变量内容:
- n --逐过程 (相当于vs中的F10)
- s --进入函数(相当于vs中的F11)
- bt --查看当前调用的堆栈
- finish --函数跑完就停下
- display 名称 --设置常显示
- undisplay 编号 --取消常显示
- until 行数 (不建议) --跳到指定行数
- c --运行到下一个断点出就停下来
- quit --退出
- 回车 --执行上一次指令
- set var 变量 = 数值 --修改特定变量(vs中监视窗口,可以给变量赋值查看)
git
概念: git是管理代码管理代码的工具. 支持多人协作开发
预备:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
指令:
- git clone : 克隆你的仓库
- git add 你的文件 #添加我们的代码到本地仓库
- git commit -m "这里必须写提交日志"
- git push
- git log #查看提交记录
- git pull #同步仓库
- git rm 文件 #删除本地仓库的文件