在刚开始使用linux的时候,我们需要在系统上写一些简单的代码,来熟悉环境以及各种指令
并且熟悉属于linux的一套开发的环境,而这对于c++来说需要三个软件就可以进行简单的编码
和使用,让我们来认识一下下列工具,以及工具的使用。
我所使用的系统是centos 7
文章目录
- 1.yum
- 2.vim
- 1). vim的模式
- a. 命令模式
- 命令模式的各种操作
- b. 底行模式
- c. 视图模式
- d. vim开发环境的配置
- 3.gdb
1.yum
yum是centos中的下载软件的一个软件,它相当于我们手机中的应用商店,当我们需要下载一个需要的工具时,我们只需要输入"yum install 软件名"即可他就会帮我们从对应操作系统版本提供的服务器上,下载到我们的系统中。需要在root账户中下载,或者使用sudo提高账号权限
yum install 软件名(命令也可以比如tree)
-y选项,下载过程中默认一路yes
yum remove 软件名
yum update 更新软件
yum update 更新特定的软件
yum list 软件名 展示出目标软件的版本
2.vim
vim是一款是十分强大的文本编辑器,我们编代码的环境就是使用它。
1). vim的模式
vim有着许多的模式,但是我们只需要学会其中的几种就可以很熟练的编写代码。
a. 命令模式
当我们输入"vim 文件名"时我们就会使用vim打开这个文件,进入我们不按任何键的状态下,我们所处于的就是命令模式。
我现在这里面输入一个简单的程序
命令模式的各种操作
命令模式中大多数操作都跟我们的光标位置有关。
gg:光标快速定位到最开始
n + shift + g:光标快速定位到n行,不输入n时,默认定位到最后一行
hjkl:这四个键控制光标的移动,h向左移,j向下移,k向上移,l向右移
下列缩进过的都可以在输入命令前输入数字,以表示操作的行数,以光标当前行开始。
dd:剪切当前行
yy:复制当前行
p:粘贴剪贴板内的内容
行内的操作:
shift + '`'(也就是波浪号):将光标所在处的字母大小写替换
r:替换光标更所在位置字符,前面也可以加数字,往后替换
x:删除字符
shift + x: 往前删除
#:查找同名单词(跳到第一个),n向下翻高亮同名单词
u:撤销
ctrl + r:撤销对撤销的撤销,也就是对u的行为进行撤销
处于底下所有模式都可以按下返回键esc回到命令模式
b. 底行模式
底行模式是为了让我们实现对文件外部的操作,在命令模式下输入分号’:'进入底行模式。
w:保存,w!:强制写入
q:退出,wq:保存并退出,q!:强制退出
set nu:调出行号,set nonu:去掉行号
可以运行命令:! + 命令,在不退出vim的情况下查看编译、运行等工作。
/:搜索关键字,n表示下一个
调出行号
多文件操作(依旧底行模式):
vs:分屏打开其他文件
ctrl + ww可以将光标在文件之间切换
c. 视图模式
这个模式是方便我们进行一些批量化操作,如注释/取消注释代码。命令模式下ctrl + v进入视图模式
注释多行代码:
首先我们的光标要到开始注释行的开始:
进入视图模式->使用hjkl移动光标选中区域->输入shift + i->输入//进行注释->输入返回键->完成注释
d. vim开发环境的配置
在刚开始使用vim的过程中,我们会发现这个软件编写代码极其的不舒服,没有自动匹配括号,关键词联想,自动缩进等等。其实,这些都可以来由使用人员配置。我们需要在我们的账户目录下找到一个隐藏文件’.vimrc’,如果没有我们可以自己创建一个。
使用vim打开这个文件,我们输入set nu也就是显示行号
我们会发现我们再使用vim打开文件就会自动带上行号。而配置一个合适的环境,会大大的提高我们的开发效率,想了解如何配置的话可以自行上,网上搜索相关的配置代码,个性化定制自己的开发环境。
3.gdb
gdb是用来调试c/c++代码的软件,需要注意的是只有在debug版本编译出的可执行程序才能被调试。
而gcc/g++默认编译好的可执行程序是release版本,想要debug版本
gcc/g++ 文件名 -g (debug版本)
list(l) + 数字:从数字行开始显示代码,回车下翻
run(r):F5的作用,调试
breakpoint(b) + 行号:打断点
多个.c文件时,言明文件名+冒号+行号
info b:显示断点
delete breakpoint(d) + 断点num:删除断点
退出调试状态时,断点全部清除
dis/en able + 编号:禁用/启用断点
n:逐过程,相当于F10
s:逐语句,相当于F11
display/undisplay:查看/删除(编号)变量和变量的地址属性
until:跳转到指定行
finish:运行到当前函数的结尾
continue,c:从一个断点跳到下一个断点
bt:查看调用堆栈
set var 变量 = 某数值(可能会影响结果,导致结果不同)