r
:替换当前字符
nx
:删除n个字符
ndG
:剪切到第n行
ndd
:剪切n行
nyy
:拷贝n行
dt指定符号
:删除到指定位置
daw
:删除光标位置单词
大I
:行首插入
大A
:行尾插入
大O
:上一行插入
:e 文件名
:打开新文件
:bn
:换到下一个文件、:bp
:换到前一个文件、:bd
:关闭当前文件
:sp
/:vsp
:分屏显示新文件
ngcc
:注释n行
ctrl + v
: 竖选多行、h
向上、k
向左、l
向右、j
向下 + 大I
插入
ctrl + n
:快速补全
gg、shift+v、shift+g、=
:代码格式化
shift + 8
、n
:跳转函数
ctrl + d
:下跳半页
ctrl + u
:上跳半页
zz
:光标跳到屏幕中间
ctrl + o
:跳到光标上次所处位置
ctrl + i
:回退上述跳动光标操作
shift + k
:查找系统函数定义
%s/oldStr/newStr/g
:用newStr替换oldStr
linux查询
find ./ -name "xx.cc"
:在当前目录下寻找文件
grep -rn "xx"./
:在当前目录下寻找内容中包含xx的文件
其他命令
ps -elLf | grep 程序名
:查看进程和线程的状态
netstat -apno | grep 端口号
:查看网络进程状态
echo $?
:查看进程返回值
gdb的使用
查看bug位置
g++ main.c -o main -g
// 加-g选项,编译生成可执行程序gdb ./main
run
// 让程序运行起来- 输入,等待发生bug
bt
// 打印堆栈信息,从下向上查看程序运行顺序,找到自己代码的最后一步,就是bug的位置q
// 退出gdb
断点的设置
b 行号
或b 函数名
// 在行号/函数名处打断点info b
// 查看断点信息step
// 单步调试代码,会进入函数next
// 让本文件代码一行一行执行disable 断点索引
// 使断点失效d 断点索引
// 删除断点c
// 运行到下个断点
栈
f 栈索引
// 栈帧的切换