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

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
huoteihj
帖子: 340
注册时间: 2010-11-25 20:44

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

#1

帖子 huoteihj » 2013-04-29 22:03

我一直觉得很郁闷...
为什么我在vs里面写好的C语言的文件可以在不保存的情况下直接就可以可以编译执行(就是CTRL F5)

不过我在VIM里面总是要保存退出,然后gcc或者make...我觉得这样很麻烦,到底应该怎样才可以解决?
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: 在VIM里面是怎样编译C语言的文件?

#2

帖子 cjxgm » 2013-04-29 22:08

你绑定个快捷键就可以了嘛……
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
huoteihj
帖子: 340
注册时间: 2010-11-25 20:44

Re: 在VIM里面是怎样编译C语言的文件?

#3

帖子 huoteihj » 2013-04-29 22:35

cjxgm 写了:你绑定个快捷键就可以了嘛……
那执行后的结果呢???
比如说错误提示之类的东西
floodliu
帖子: 6
注册时间: 2012-06-19 10:20

Re: 在VIM里面是怎样编译C语言的文件?

#4

帖子 floodliu » 2013-04-30 0:27

huoteihj 写了:我一直觉得很郁闷...
为什么我在vs里面写好的C语言的文件可以在不保存的情况下直接就可以可以编译执行(就是CTRL F5)

不过我在VIM里面总是要保存退出,然后gcc或者make...我觉得这样很麻烦,到底应该怎样才可以解决?
vs里面只不过是帮你自动保存了而已,其实直接看gcc的错误提示,再用vi改代码也还不错,可能的确没有ide那么方便。其实如果喜欢ide的话,楼主为什么不用codeblocks、eclipse等等呢。
凌云七风
帖子: 130
注册时间: 2012-01-16 13:37

Re: 在VIM里面是怎样编译C语言的文件?

#5

帖子 凌云七风 » 2013-04-30 10:05

在vimrc里面写函数,配合map调用。
木有Some
帖子: 3
注册时间: 2011-05-05 19:19

Re: 在VIM里面是怎样编译C语言的文件?

#6

帖子 木有Some » 2013-04-30 10:19

VIM只是一个文本编辑器,而VS是一个IDE。
IDE包括了编辑器,自动为你做了很多事情。就像你如果在WIN下用editplus等编辑器写代码,也要你保存之后再用编译器编译文件。
linux下也有很多IDE。。。vim也可以通过配置打造成IDE
头像
huoteihj
帖子: 340
注册时间: 2010-11-25 20:44

Re: 在VIM里面是怎样编译C语言的文件?

#7

帖子 huoteihj » 2013-04-30 10:28

floodliu 写了:
huoteihj 写了:我一直觉得很郁闷...
为什么我在vs里面写好的C语言的文件可以在不保存的情况下直接就可以可以编译执行(就是CTRL F5)

不过我在VIM里面总是要保存退出,然后gcc或者make...我觉得这样很麻烦,到底应该怎样才可以解决?
vs里面只不过是帮你自动保存了而已,其实直接看gcc的错误提示,再用vi改代码也还不错,可能的确没有ide那么方便。其实如果喜欢ide的话,楼主为什么不用codeblocks、eclipse等等呢。
ide有些大,小容量的硬盘不想装
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: 在VIM里面是怎样编译C语言的文件?

#8

帖子 lainme » 2013-04-30 11:31

不是有给VIM添加IDE功能的文章么,找来看看。比如 http://www.vimer.cn/

大致就是插件-》快捷键这样。编译结果,可以显示到quickfix窗口。
floodliu
帖子: 6
注册时间: 2012-06-19 10:20

Re: 在VIM里面是怎样编译C语言的文件?

#9

帖子 floodliu » 2013-04-30 12:53

huoteihj 写了:
floodliu 写了:
huoteihj 写了:我一直觉得很郁闷...
为什么我在vs里面写好的C语言的文件可以在不保存的情况下直接就可以可以编译执行(就是CTRL F5)

不过我在VIM里面总是要保存退出,然后gcc或者make...我觉得这样很麻烦,到底应该怎样才可以解决?
vs里面只不过是帮你自动保存了而已,其实直接看gcc的错误提示,再用vi改代码也还不错,可能的确没有ide那么方便。其实如果喜欢ide的话,楼主为什么不用codeblocks、eclipse等等呢。
ide有些大,小容量的硬盘不想装
那就找些插件吧,可以打造一个简单一点的ide,我也不喜欢装ide,有洁癖 :em04
头像
温习江湖
帖子: 580
注册时间: 2012-06-06 18:20

Re: 在VIM里面是怎样编译C语言的文件?

#10

帖子 温习江湖 » 2013-04-30 13:39

在.vimrc添加如下内容

:set makeprg=gcc % -Wall -o %<
noremap <F5> <esc>:make<cr>

之后按f5就可编译
上次由 温习江湖 在 2013-04-30 14:36,总共编辑 1 次。
Vimwiki建的小博客 wweir.org

历史的车轮压过一切,任何人或事物都留在了车辙里,只有思想和智慧或附在车辄上走上那么一段时间
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: 在VIM里面是怎样编译C语言的文件?

#11

帖子 cuihao » 2013-04-30 13:49

=。= 开俩终端……
一个开vim,一个编译调试。
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
b33e
帖子: 3864
注册时间: 2011-06-07 14:20
系统: Mint18

Re: 在VIM里面是怎样编译C语言的文件?

#12

帖子 b33e » 2013-04-30 14:00

terminator这样的终端就可以,终端分成几个区域,不用退出vim就行。
其实推荐awesome平铺 :em04
levee
帖子: 3030
注册时间: 2009-10-03 23:31

Re: 在VIM里面是怎样编译C语言的文件?

#13

帖子 levee » 2013-04-30 15:23

以下内容引自王垠的博文《编辑器与IDE》
无谓的编辑器战争

很多人都喜欢争论哪个编辑器是最好的。其中最大的争论莫过于 Emacs 与 vi 之争。vi 的支持者喜欢说:“看 vi 打起字来多快,手指完全不离键盘,连方向键都可以不用。”Emacs 的支持者往往对此不屑一顾,说:“打字再快又有什么用。我在 Emacs 里面按一个键,等于你在 vi 里面按几十个键。”

其实还有另外一帮人,这些人喜欢说:“对于 Emacs 与 vi 之争,我的答案是 {jEdit, Geany, TextMate, Sublime...}”这些人厌倦了 Emacs 的无休止的配置和 bug,也厌倦了 vi 的盲目求快和麻烦的模式切换,所以他们选择了另外的更加简单的解决方案。

临时解决方案 - IDE

那么我对此的答案是什么呢?在目前的情况下,我对程序编辑的临时答案是:IDE。

写程序的时候,我通常根据语言来选择最能“理解”那种语言的“IDE”(比如 Visual Studio, Eclipse, IntelliJ IDEA 等),而不是一种通用的“文本编辑器”(比如 Emacs, vi, jEdit, ...)。这是因为“文本编辑器”这种东西一般都不真正的理解程序语言。很多 Emacs 和 vi 的用户以为用 etags 和 ctags 这样的工具就能让他们“跳转到定义”,然而这些 tags 工具其实只是对程序的“文本”做一些愚蠢的正则表达式匹配。它们根本没有对程序进行 parse,所以其实只是在进行一些“瞎猜”。简单的函数定义它们也许能猜对位置,但是对于有重名的定义,或者局部变量的时候,它们就力不从心了。

很多人对 IDE 有偏见,因为他们认为这些工具让编程变得“傻瓜化”了,他们觉得写程序就是应该“困难”,所以他们眼看着免费的 IDE 也不试一下。有些人写 Java 都用 Emacs 或者 vi,而不是 Eclipse 或者 IntelliJ。可是这些人错了。他们没有意识到 IDE 里面其实蕴含了比普通文本编辑器高级很多的技术。这些 IDE 会对程序文本进行真正的 parse,之后才开始分析里面的结构。它们的“跳转到定义”一般都是很精确的跳转,而不是像文本编辑器那样瞎猜。

这种针对程序语言的操作可以大大提高人们的思维效率,它让程序员的头脑从琐碎的细节里面解脱出来,所以他们能够更加专注于程序本身的语义和算法,这样他们能写出更加优美和可靠的程序。这就是我用 Eclipse 写 Java 程序的时候相对于 Emacs 的感觉。我感觉到自己的“心灵之眼”能够“看见”程序背后所表现的“模型”,而不只是看到程序的文本和细节。所以,我经常发现自己的头脑里面能够同时看到整个程序,而不只是它的一部分。我的代码比很多人的都要短很多也很有很大部分是这个原因,因为我使用的工具可以让我在相同的时间之内,对代码进行比别人多很多次的结构转换,所以我往往能够把程序变成其他人想象不到的样子。

对于 Lisp 和 Scheme,Emacs 可以算是一个 IDE。Emacs 对于 elisp 当然是最友好的了,它的 Slime 模式用来编辑 Common Lisp 也相当不错。然而对于任何其它语言,Emacs 基本上都是门外汉。我大部分时间在 Emacs 里面是在写一些超级短小的 Scheme 代码,我有自己的一个简单的配置方案。虽然谈不上是 IDE,Emacs 编辑 Scheme 确实比其它编辑器方便。R. Kent Dybvig 写 Chez Scheme 居然用的是 vi,但是我并不觉得他的编程效率比我高。我的代码很多时候比他的还要干净利落,一部分原因就是因为我使用的 ParEdit mode 能让我非常高效的转换代码的“形状”。

当要写 Java 的时候,我一般都用 Eclipse。最近写 C++ 比较多,C++ 的最好的 IDE 当然是 Visual Studio。可惜的是 VS 没有 Linux 的版本,所以就拿 Eclipse 凑合用着,感觉还比较顺手。个别情况 Eclipse “跳转定义”到一些完全不相关的地方,对于 C++ 的 refactor 实现也很差,除了最简单的一些情况(比如局部变量重命名),其它时候几乎完全不可用。当然 Eclipse 遇到的这些困难,其实都来自于 C++ 语言本身的糟糕设计。
头像
k9288k
帖子: 792
注册时间: 2012-02-21 22:27
系统: Ubuntu12.04

Re: 在VIM里面是怎样编译C语言的文件?

#14

帖子 k9288k » 2013-04-30 21:22

:em11
lainme 写了:不是有给VIM添加IDE功能的文章么,找来看看。比如 http://www.vimer.cn/

大致就是插件-》快捷键这样。编译结果,可以显示到quickfix窗口。
回复