Vim
- 三种模式
- 复制,剪切,删除基本操作
复制:
复制n行则:nyy
复制当前光标所在的位置到行尾:y$
复制当前光标所在的位置到行首:y^
剪切:
剪切n行:ndd
剪切当前行光标所在的位置到行尾:d$
剪切当前行光标所在的位置到行首:d^
粘贴:
用v选中文本之后可以按y进行复制,如果按d就表示剪切
按p进行粘贴到光标所在行的下面
按P进行粘贴到光标所在行的上面
撤销与恢复:
‘u’ : 撤销上一个编辑操作
‘ctrl + r’ : 恢复,即回退前一个命令
‘U’ : 行撤销,撤销所当前所在行的全部编辑操作
- 修改和替换
C: 替换光标所在位置之后的至行尾所有数据内容
S: 替换当前光标所在行
r: 替换单个字符
R: 替换从光标开始,直到Esc结束多个字符
- 保存与退出
:w!
:w ——保存当前文件
:wq —— 存盘退出(与指令 :x 功能相同)
:q —— 直接退出,如已修改会提示是否保存
:q! ——不保存直接退出
- EX命令
多行复制
:line#1,line#2 co line#3 // 复制到3行之后
移动文本行
:line#1,line#2 m line#3 // 移动到3行之后
删除文本行
:line#1,line#2 d
检索
| 命令 | 命令描述 |
|---|---|
| :/str | 从当前光标开始检索给定的字符串 |
| :?str | 从当前位置开始,方向检索给的字符串 |
| n | 从当前位置,检索下一个匹配字符串 |
| N | 从当前位置,反向检索下一个匹配字符串 |
| / | 同n,但是需按enter确定 |
| ? | 同N |
| :/pat/+n | 将光标移动到与字符串匹配所在行的之后的第n行 |
| :?pat?+n | 将光标移动到与字符串匹配所在行的之前的第n行 |
另外:可以在:下标模式下设置额外选项
如: set ic // 忽略大小写的差异
替换
[g] /search-string/s/ /replace-string/ [g] [c]
解释:
第一个g表示全文检索
s表示替换
第二个g表示替换所有匹配的字符串
c 表示在替换前需经用户确认
y 同意 n 不同意
Ctrl+C 终止替换
gcc & g++
gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步:
1、预处理,生成 .i 的文件[预处理器cpp]
2、将预处理后的文件不转换成汇编语言, 生成文件 .s [编译器egcs]
3、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as]
4、连接目标代码, 生成可执行程序 [链接器ld]
gcc [options] [filenames] || g++ [options] [filenames]
使用:
-x none filename
关掉上一个选项,让gcc根据文件名后缀,自动识别文件类型
例:
gcc -x c hello.cpp -x none hello2.c
-c
编译生成目标文件
-E
只做预处理而不编译
-g
在生成的目标文件中添加调试信息
-o outfile
outfile输出文件的文件名
-S
编译生成汇编代码
-Wall
打印所有的警告信息
多线程
gcc xxx.c -o xxx.out -lpthread
g++ xxx.c -o xxx.out -lpthread