导航:首页 > 源码编译 > vi编译c

vi编译c

发布时间:2022-10-16 16:56:39

⑴ 我想在vim中直接编译C语言请问怎样配置vimrc啊

python">"------------------------------------------------------------------------------
" < 编译、连接、运行配置 >
"------------------------------------------------------------------------------
" F9 一键保存、编译、连接存并运行
map <F9> :call Run()<CR>
imap <F9> <ESC>:call Run()<CR>
" Ctrl + F9 一键保存并编译
map <c-F9> :call Compile()<CR>
imap <c-F9> <ESC>:call Compile()<CR>
" Ctrl + F10 一键保存并连接
map <c-F10> :call Link()<CR>
imap <c-F10> <ESC>:call Link()<CR>
let s:LastShellReturn_C = 0
let s:LastShellReturn_L = 0
let s:ShowWarning = 1
let s:Obj_Extension = '.o'
let s:Exe_Extension = '.exe'
let s:Sou_Error = 0
let s:windows_CFlags = 'gcc -fexec-charset=gbk -Wall -g -O0 -c % -o %<.o'
let s:linux_CFlags = 'gcc -Wall -g -O0 -c % -o %<.o'
let s:windows_CPPFlags = 'g++ -fexec-charset=gbk -Wall -g -O0 -c % -o %<.o'
let s:linux_CPPFlags = 'g++ -Wall -g -O0 -c % -o %<.o'
func! Compile()
exe ":ccl"
exe ":update"
if expand("%:e") == "c" || expand("%:e") == "cpp" || expand("%:e") == "cxx"
let s:Sou_Error = 0
let s:LastShellReturn_C = 0
let Sou = expand("%:p")
let Obj = expand("%:p:r").s:Obj_Extension
let Obj_Name = expand("%:p:t:r").s:Obj_Extension
let v:statusmsg = ''
if !filereadable(Obj) || (filereadable(Obj) && (getftime(Obj) < getftime(Sou)))
redraw!
if expand("%:e") == "c"
if g:iswindows
exe ":setlocal makeprg=".s:windows_CFlags
else
exe ":setlocal makeprg=".s:linux_CFlags
endif
echohl WarningMsg | echo " compiling..."
silent make
elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
if g:iswindows
exe ":setlocal makeprg=".s:windows_CPPFlags
else
exe ":setlocal makeprg=".s:linux_CPPFlags
endif
echohl WarningMsg | echo " compiling..."
silent make
endif
redraw!
if v:shell_error != 0
let s:LastShellReturn_C = v:shell_error
endif
if g:iswindows
if s:LastShellReturn_C != 0
exe ":bo cope"
echohl WarningMsg | echo " compilation failed"
else
if s:ShowWarning
exe ":bo cw"
endif
echohl WarningMsg | echo " compilation successful"
endif
else
if empty(v:statusmsg)
echohl WarningMsg | echo " compilation successful"
else
exe ":bo cope"
endif
endif
else
echohl WarningMsg | echo ""Obj_Name"is up to date"
endif
else
let s:Sou_Error = 1
echohl WarningMsg | echo " please choose the correct source file"
endif
exe ":setlocal makeprg=make"
endfunc
func! Link()
call Compile()
if s:Sou_Error || s:LastShellReturn_C != 0
return
endif
let s:LastShellReturn_L = 0
let Sou = expand("%:p")
let Obj = expand("%:p:r").s:Obj_Extension
if g:iswindows
let Exe = expand("%:p:r").s:Exe_Extension
let Exe_Name = expand("%:p:t:r").s:Exe_Extension
else
let Exe = expand("%:p:r")
let Exe_Name = expand("%:p:t:r")
endif
let v:statusmsg = ''
if filereadable(Obj) && (getftime(Obj) >= getftime(Sou))
redraw!
if !executable(Exe) || (executable(Exe) && getftime(Exe) < getftime(Obj))
if expand("%:e") == "c"
setlocal makeprg=gcc -o %< %<.o
echohl WarningMsg | echo " linking..."
silent make
elseif expand("%:e") == "cpp" || expand("%:e") == "cxx"
setlocal makeprg=g++ -o %< %<.o
echohl WarningMsg | echo " linking..."
silent make
endif
redraw!
if v:shell_error != 0
let s:LastShellReturn_L = v:shell_error
endif
if g:iswindows
if s:LastShellReturn_L != 0
exe ":bo cope"
echohl WarningMsg | echo " linking failed"
else
if s:ShowWarning
exe ":bo cw"
endif
echohl WarningMsg | echo " linking successful"
endif
else
if empty(v:statusmsg)
echohl WarningMsg | echo " linking successful"
else
exe ":bo cope"
endif
endif
else
echohl WarningMsg | echo ""Exe_Name"is up to date"
endif
endif
setlocal makeprg=make
endfunc
func! Run()
let s:ShowWarning = 0
call Link()
let s:ShowWarning = 1
if s:Sou_Error || s:LastShellReturn_C != 0 || s:LastShellReturn_L != 0
return
endif
let Sou = expand("%:p")
let Obj = expand("%:p:r").s:Obj_Extension
if g:iswindows
let Exe = expand("%:p:r").s:Exe_Extension
else
let Exe = expand("%:p:r")
endif
if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou)
redraw!
echohl WarningMsg | echo " running..."
if g:iswindows
exe ":!%<.exe"
else
if g:isGUI
exe ":!gnome-terminal -e ./%<"
else
exe ":!./%<"
endif
endif
redraw!
echohl WarningMsg | echo " running finish"
endif
endfunc

怎么用有注释,直接放到你vimrc文件的最后就可以

⑵ 在VIM里面是怎样编译C语言的文件

首先,VIM只是Linux下的一个编辑器,不带有源文件编译功能,如果你说怎么编辑,详细查看vim编辑器;
其次,如果你是希望在Linux下实现文件的编译,请采用gcc或者g++编译器;
最后,如果你希望很好的管理项目文件进行编译,请参考
makefile,cmake。

⑶ 试了一下用vim编译了一个c文件,但是打开提示权限不够怎么办

hello.c应该是起的名字 编译生成的程序是hello 运行直接./hello就行

⑷ 怎么在linux下用vim编写一个C程序

一楼的回答很好,在编译的时候,其实可以不用退出VIM的,按ESC退出插入模式,在正常模式下输入:w保存,然后输入:!gcc /path/to/your/file.c就可以编译文件了,如果有错误,直接就在VIM中修改,要不然为什么VIM会被称为神器级的编辑器呢!

⑸ 在VIM里面是怎样编译C语言的文件

VIM只是文本编辑,不能编译,你需要调用外部命令来编译,如果你的path里有gcc的话在vim里输
:!gcc -otest 你的c文件名

⑹ linux中如何用gcc编译用vi写的c文件

方法/步骤

1、进入linux系统,创建C文件“vim test.c”同时进入vim编辑界面也可以利用指令“touch test.c”创建后,然后“vim test.c”进入vim编辑界面。

⑺ 在VIM里面是怎样编译C语言的文件

IDE包括了编辑器,自动为你做了很多事情。就像你如果在WIN下用editplus等编辑器写代码,也要你保存之后再用编译器编译文件。
linux下也有很多IDE。。。vim也可以通过配置打造成IDE

⑻ linux怎么使用vi编辑c程序并执行

如果你已经安装了gcc还出现这个问题的话,就可能是是PATH环境变量的问题,输入PATH:/usr/bin
PATH:/usr/sbin如果还不行就看你你gcc的安装目录在哪里,用find命令查找到gcc命令的目录,然后PATH:/gcc命令目录

⑼ 在VIM里面是怎样编译C语言的文件

一、首先要会使用vim编写一个c文件
1.在linux终端下输入:
vi
test.c
表示生成了一个test.c的c语言文件
2.此时时命令模式,按"a"键或者"i"进入输入模式,然后就是输入C语言代码
3.保存文件,再次回到命令模式,按"ESC“键,然后按":"键再输入"wq”表示保存退出
二、然后在用gcc编译test.c文件
直接输入
gcc
-o
mytest
test.c即可
表示直接生成mytest执行文件

阅读全文

与vi编译c相关的资料

热点内容
录像免压缩 浏览:502
总结所学过的简便算法 浏览:358
南昌哪些地方需要程序员 浏览:758
三台服务器配置IP地址 浏览:173
如何用命令方块连续对话 浏览:277
win7linux共享文件夹 浏览:304
命令符打开本地服务 浏览:599
android应用程序源码 浏览:702
安卓开发工程师简历怎么写 浏览:60
热水器水量服务器是什么意思 浏览:117
stk卫星编译 浏览:480
对后台程序员的要求 浏览:761
ios大文件夹图标 浏览:626
生的计划pdf 浏览:714
oppoa93加密便签在哪查找 浏览:21
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297
移动端微信商城源码 浏览:446
编程猫下一个背景在哪里 浏览:359