我是靠谱客的博主 光亮蛋挞,这篇文章主要介绍windows下在vim中搭建c语言开发环境的详细过程,现在分享给大家,希望可以做个参考。

1 代码格式化

C语言代码的格式化需要使用clang-format,而clang-format被集成在了llvm中,所以需要先安装llvm,点击此处下载

下载之后运行安装文件,将其中的bin目录添加到环境变量path中(需重启电脑使新添加的环境变量生效)。例如我安装后的目录为C:wsrLLVMbin,图中的clang-format就是格式化c代码需要的组件


1.1 clang-format初体验

test1.c

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h> int main(int argc, char *argv[]) { int a[2][2] = {{1,2} , {3,4}}; printf("Hello World!n"); printf("Hello World!n"); printf("Hello World!n"); printf("Hello World!n"); return 0; }

打开powershell或cmd,设置环境变量后没有重启电脑需要进入llvm的bin目录,运行如下命令:

复制代码
1
2
3
PS C:Usersfy> cd C:wsrLLVMbin PS C:wsrLLVMbin> .clang-format.exe -style=google -i C:UsersfyDesktoptest1.c PS C:wsrLLVMbin>

test1.c的源代码被格式化为

复制代码
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h> int main(int argc, char *argv[]) { int a[2][2] = {{1, 2}, {3, 4}}; printf("Hello World!n"); printf("Hello World!n"); printf("Hello World!n"); printf("Hello World!n"); return 0; }

命令解释

用法:clang-format -style=xxx -i ***.c

  1. -style 表示风格,可选项为 LLVM、Google、Chromium、Mozilla、WebKit 和 file,其中 file 指定参数文件。
  2. -i 表示将格式化后的内容写入原文件。

如:

复制代码
1
2
3
4
PS C:wsrLLVMbin> .clang-format -style=Chromium -i C:UsersfyDesktoptest1.c PS C:wsrLLVMbin> .clang-format -style=LLVM -i C:UsersfyDesktoptest1.c PS C:wsrLLVMbin> .clang-format -style=google -i C:UsersfyDesktoptest1.c PS C:wsrLLVMbin> .clang-format -style=WebKit -i C:UsersfyDesktoptest1.c

1.2 在vim中格式化c代码

1.2.1 为vim配置python

首先,打开vim,在命令行模式下输入:version,查看所使用的vim是否支持python,以及支持的python版本

从输出可以看出,我用的vim是32位的vim8.2,此版本支持python,且所用的python版本为python2.7及python3.6。由于配置环境过程中用到的插件与vim使用的python版本有关,所以下面先为vim配置python。

打开python官网,下载32位的python2.7及python3.6,我下载的为2.7.18和3.6.8
https://www.python.org/ftp/python/3.6.8/python-3.6.8.exe
https://www.python.org/ftp/python/2.7.18/python-2.7.18.msi
下载好之后将两个版本的python分别安装(若已安装过其他版本python不用卸载)。这里安装时自定义安装目录,不要为其设置环境变量

我的自定义安装目录如下所示:

复制代码
1
2
C:wsr (x86)pythonpython27 C:wsr (x86)pythonpython36

编辑vim的配置文件.gvimrc,在其中添加如下设置项(安装目录中有空格的话,在空格前添加一个):

复制代码
1
2
3
4
set pythondll=C:wsr (x86)pythonpython27python27.dll set pythonhome=C:wsr (x86)pythonpython27 set pythonthreedll=C:wsr (x86)pythonpython36python36.dll set pythonthreehome=C:wsr (x86)pythonpython36

然后在vim命令行模式执行:source $MYVIMRC,使改动生效。

1.2.2 安装代码格式化插件

安装代码格式化插件vim-clang-format,打开powershell,执行命令:

复制代码
1
PS C:Usersfyvimfilespackmy_pluginsstart> git clone https://github.com/rhysd/vim-clang-format.git vim-clang-format

注:这里没有使用插件管理器安装插件

仍然以test1.c为例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h> int main(int argc, char *argv[]) { int a[2][2] = {{1,2} , {3,4}}; printf("Hello World!n"); printf("Hello World!n"); printf("Hello World!n"); printf("Hello World!n"); return 0; }

命令行模式下,执行:ClangFormat,则源文件就被格式化了

也可以在.gvimrc中为vim-clang-format设置快捷键

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let g:clang_format#style_options = { "AccessModifierOffset" : -4, "AlignConsecutiveAssignments": "true", "AlignConsecutiveDeclarations": "true", "AlignConsecutiveMacros": "true", "AlignOperands": "true", "AlignTrailingComments": "true", "AllowShortFunctionsOnASingleLine" : "Empty", "AllowShortIfStatementsOnASingleLine" : "true", "AllowShortLoopsOnASingleLine" : "true", "AlwaysBreakTemplateDeclarations" : "true", "BreakBeforeBraces" : "WebKit", "BreakBeforeTernaryOperators " : "true", "BreakStringLiterals" : "true", "ColumnLimit": 80, "MaxEmptyLinesToKeep": 1, "Standard" : "C++11"} " 使用 <Leader>cf 格式化代码 autocmd FileType c,cpp,objc nnoremap <buffer><Leader>cf :<C-u>ClangFormat<CR> autocmd FileType c,cpp,objc vnoremap <buffer><Leader>cf :ClangFormat<CR> " Toggle auto formatting: nmap <Leader>C :ClangFormatAutoToggle<CR>

2 代码自动补全

代码自动补全需要安装插件vim-snippets、 ultisnips

复制代码
1
2
PS C:Usersfyvimfilespackmy_pluginsstart> git clone https://github.com/honza/vim-snippets.git vim-snippets PS C:Usersfyvimfilespackmy_pluginsstart> git clone https://github.com/SirVer/ultisnips.git ultisnips

安装完成之后,就可以在vim中使用代码自动补全了。使用vim编辑test2.c

输入 inc、按Tab键
输入 main、按Tab键
输入 printf、按Tab键
……

如果想自定义代码片段的话,可以在c:usersusernamevimfiles文件夹中新建文件夹ultisnips,并在其中新建文件c.snippets、cpp.snippets……
c.snippets对应C语言、cpp.snippets对应C++……

其中文件夹的名字自定义,若有多个文件夹,可在.gvimrc添加如下设置

复制代码
1
let g:UltiSnipsSnippetDirectories=["ultisnips","ultisnips-1"]

其中自定义代码片段的格式为:

复制代码
1
2
3
4
5
snippet trigger_word [ "description" [ options ] ] snippet 缩写 [ “描述” [选项] ] code endsnippet

C:Usersfyvimfilesultisnipsc.snippets

复制代码
1
2
3
4
5
snippet if0 if ($1 == 0) { ${2} } endsnippet

定义上述代码片段之后,在C源文件中编辑代码时输入if0,再按下Tab就能添加代码了。

3 编译运行源程序

.gvimrc中添加如下设置:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
nnoremap <F5> :call CompileAndRun()<CR> func! CompileAndRun() exec "w" echo "Compiling..." if &filetype == 'c' exec "!gcc % -o %<" elseif &filetype == 'cpp' exec "!g++ % -o %<" endif echo "nRunning..." exec "!%<" "exec "! ./%<" endfunc

更改生效后,按下F5就能一键编译运行C程序了

到此这篇关于windows下在vim中搭建c语言开发环境的文章就介绍到这了,更多相关vim中搭建c语言开发环境内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是光亮蛋挞最近收集整理的关于windows下在vim中搭建c语言开发环境的详细过程的全部内容,更多相关windows下在vim中搭建c语言开发环境内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(125)

评论列表共有 0 条评论

立即
投稿
返回
顶部