Windows配置gcc和vim的开发环境(避坑指南)
1、概述
在Linux系统中,安装Vim和gcc非常简单,使用两条语句即可进行安装,在ubuntu中安装的命令如下:
sudo apt install vim//安装vim
sudo apt install gcc//安装gcc
体验过后发现这个vim和gcc是真的很好用,而且是开源软件,不存在破解一说。在Windows中安装这两个软件,一切就变得复杂起来,走了不少弯路。特把安装方法写下来。
2、软件安装
2.1 gvim安装
记住不要去第三方网站下载,第三方软件下载方要么是一些过时的版本,要么是一些奇奇怪怪的版本。安装会出现各种各样的问题。进入官方下载页面,下载82版本,下载页面如下,点击链接gvim82.exe。
下载完成后,打开软件进入安装页面
后续的选项有一个默认没选的选项要选择,否则在命令行中打不开vim,建议全选
安装完成后,在桌面和开始菜单中就可以见到软件图标了
2.2 mingw安装
这个即为大名鼎鼎的GCC,同样进入官网下载,进入下载页面。
进入下载页面,点击链接,记住上面一个带图标的列表中的全部都不是!选择红框框中的链接。
点击链接,记住选择离线版本,如果选择在线版本会导致安装失败,除非你可以挂梯子。
如果是在线安装打开软件安装页面,点击Next。
按照如下图进行选择版本,这里选择Windows版本,后续会在线下载,没有梯子的情况下下载会失败。
离线下载的软件包是绿色版本,需要自行添加环境变量,gcc.exe在bin文件夹内。环境变量设置完成后,即可在命令行中打开gcc了。环境变量按照绿色离线包解压位置进行设置。离线包的大小大概有50MB。
3、vim设置以及运行结果
3.1 Vim设置
vim个性化设置,打开_vimrc。
在文档末尾增加下述内容,这些为定制化的,可以按照自己需求进行修改,在对vim的命令不太熟悉的情况下不建议设置太多,否则会云里雾里,设置完成后此文档建议保存一个备份,这样在不同电脑不同平台可以使用,从而延续同一种使用习惯。命令我就不一一解释了,学会了VIM这些基本都会认识。
set nocompatible
syntax on
set showmode
set showcmd
set autoindent
set cindent
set tabstop=4
set softtabstop=4
set number
set cursorline
set hlsearch
set incsearch
colorscheme evening
3.2 运行结果
在文件夹中,安装shift+单击鼠标左键,即可打开powershell命令行。
使用gvim创建一个hello world,使用gcc进行编译,打开编译后的可执行文件,显示结果如下。能正确打印hello world。这里打开exe文件为.\,这个和Linux的./有区别。
3.3 不同主题对颜色的影响
Windows的powershell默认背景是蓝色,cmd默认背景是黑色,gvim默认背景是白色,给GVIM设置不同主题在其三个终端上的表现不同,如果设置主题为desert的,对应的显示情况如下。
cmd界面如下图:
在gvim显示颜色如下:
在POWERSHELL显示颜色如下:
#include都没有显示出来,其实是颜色和背景相同,所以看起来没显示出来
综上,主题设置时特别留意,对不同的终端显示效果不一样。
推荐主题设置为industry,这样会比较折中的显示效果。
3.4 Vim下常见的快捷命令
1、在标准模式下,按==可以实现自动格式对齐;
2、安装ctags后,可以生产tags文件;
sudo install ctags
生成tag文件
ctags *
生成tag后,多个项目的文件,可以对函数定义进行跳转等操作
ctrl+] 跳转到函数定义
ctrl+t 跳回原来的函数
3、多标签编辑命令。
vim -p *.c *.h//编辑当前目录下所有的c和h文件
gt跳转到下一个标签
gT跳转到上一个标签
4、编译多个c文件
gcc *.c
4、调整格式
vim具备自动调整格式的功能,可以使用它结合IDE开发软件,实现格式的快速调整
1、查看keil软件中Table设置的宽度,通常默认为2
2、打开空格显示,结尾符号显示
实际显示效果如下,箭头是Table键,点号是空格,CRLF是结束标志,可以看到下述代码中使用了Table键,使用了空格,结尾还有多余空格。这种会导致代码在其他编辑器(Table设置为4或者8)显示异常,没有缩进四字节。
3、我们在vim的配置文件_vimrc中,设置tab按键的宽度为2(与keil中保值一致,这样在对Table进行替换时,不会改变原来的缩进),再打开C文件,然后使用空格替代Table键。
set tabstop=2 //设置Table宽度
set softtabstop=2 //设置软Table宽度
set expandtab//使用空格替代Table
打开文件后,我们输入如下list命令查看Table键以及结束的位置
:set list
显示效果如下,其中^I是Table键,$是结束符
然后我们将全部的Table键替换掉,输入如下的命令
:%retab //替换全部的Table键
替换后的效果如下图所示,此时Table全部被空格替代了
4、删除行末多余的空格按键
%s/\s*$//g
说明:这是一个替换命令(%s),将行末(*$)的space键(\s)全部替换没有(//),全局生效(g)
实现的效果,行末多余的空格全部删掉了
5、对全部的代码进行自动缩进对齐,调整其它代码
gg=G //跳转到文件开头(gg),自动对齐(=),到文件结尾(G)
6、调整前后的效果对比
调整前的效果
调整后效果示意图,手动调整了注释的对齐
7 多行注释统一缩进
当多行注释想往右侧或者左侧增减缩进量时,可以进入可视块模式
1)vim 打开文件,并移动光标到要添加列的起始行;
2)按下ctrl+v,打开visual 块模式;
3)通过光标向下选中你要添加内容的位置,如果是要减少缩进,就选中你要删除的空格,然后按delete按键;
4)按下I(即shift+i)键,然后输入你要插入的内容(如果是注释代码就加//,如果是增加缩进就加空格);
5)按下ESC键,屏幕会刷新,你就能看到内容加上了。
所有STM32官方库文件以及FreeRTOS的代码,都没有使用任何Table按键,都是使用的空格键,另外行末也没有多余的空格,我们自己写的代码也要养成这么一个良好的习惯。