vim的使用
命令模式
光标移动
1. 与光标移动相关的命令
2. 一旦退出文件编辑,就无法进行进行撤销操作了,但是只是保存,没有q退出,是可以进行撤销的
gg:快速定位到第一行
yy:复制
p:粘贴
n+yy,n+p
dd:剪切当前行,或者以行为单位进行删除
n+dd
x:删除光标所在的字符,从右向左删除,左侧光标不动,右侧删除
shift+x:光标右侧不动,左侧删除,从左向右删除
shift+g:快速定位到最后一行
u:撤销历史操作
ctrl+r:撤销u操作
ctrl+r和u互为对方的撤销
r:替换为光标所在字符,r + 替换字符
n+r
shift+~:进行大小写切换
h:左
j:下
k:上
l:右
n+h,j,k,l表示可以向上左下右移动n个单位
w:以单词为单位向后移动
b:以单词为单位向前移动
n+w,b:w,b也可以加n
视图模式和替换模式
3. shift+r:进入替换模式,可以进行批量化的替换
4. ctrl+v:进入视图模式,hjkl可以进行区域的选择,shift+i可以进入到插入模式
5. 首先在视图模式下进行区域的选择,按shift+i,进入到插入模式,进行注释一行,再按esc进入到命令模式,就可以进行刚才的区域的注释
6.进行全部的注释:ctrl + v -> gg -> shift + g:全部的区域选择 -> shift + i -> // + esc
7. gg:向上进行区域选择,shift+g:进行全部的区域选择
8. n + shift + g:可以进行指定的区域选择,只能从当前行向下选择区域
9. 保存退出后还有之前注释的行,不能用u进行撤销了,可以进入视图模式,进行区域选择,然后用d进行删除注释10. 视图模式不仅可以进行批量化注释,还可以进行批量化补充代码,和第6点差不多的步骤
shift+3 = #,选中单词,高量出来,可以进行查找,n:逆向查找
i,o,a都可以进入插入模式,i保证光标在原来的行,o光标换行新起一行,a光标定位到下一个字符的位置
底行模式
- 底行模式下:shift+zz退出,wq!,保存并强制退出,set nu:设置行好,set nonu:撤销行号
1. :!命令,可以在底行模式下进行命令的输入并且执行命令
2. :%s/dst/src:可以将dst的字符串替换为src
3. vim进入底行模式,vim 文件名 -> wq会保存并退出,生成一个空文件,如果不保存的话,不会生成文件
4. 在底行模式下,vs (新或旧)文件名:会分屏操作
光标在哪个窗口下,操作哪个窗口
必须在命令模式下,光标在两个窗口之间切换:ctrl+ww
5. vim + 文件名 + +20:光标会定位到20行
vim code.c +20
6. !v 会搜索最近的以v开头的历史命令并执行这个命令
vim的配置
1. 进入 ~/.vimrc文件中,set number保存并退出可以永久设置行号
- 双引号可以注释配置的命令
- vim etc/vimrc:可以进行全局的配置,影响的是所有的用户,.vimrc自己的配置只影响当前的用户
- 显示版本信息
- 一键化vim配置
centos下载链接
ubuntu可以使用vimplus(插件),如果下不了,也可以到github上搜vimplus
ubuntu下载链接 - vim .vimrc进入配置文件,/2搜索回车的缩进,将回车的缩进的2改成4,回车就会缩进4个字符
gcc/g++
背景知识
1. gcc 形成可执行文件,./可执行文件:运行程序
2. 形成可执行程序 mycode
- 预处理
头文件展开
去注释
宏定义替换
条件编译
gcc -E code.c -o code.i
gcc code.i -o exe
可以直接生成可执行程序
- 编译(生成汇编)
gcc -S code.i -o code.s
- 汇编(生成机器可识别代码)
gcc -c code.s -o code.o
生成.obj
- 连接(形成可执行文件或库文件)
gcc code.o -o code
3. 记忆:ESc 预处理,编译,汇编形成的选项,.iso分别是形成的文件后缀,iso是镜像文件
- 将所有的目标文件形成一个可执行程序
库
1. 可执行程序code需要链接C标准库才能执行程序
- ldd code:查看可执行程序依赖哪些库
库的分类:
1.动态库:Linux(.so),windows(.dll)
2.静态库:Linux(.a),windows(.lib)