关于 Linux 系统下编程的一些疑惑

2015-03-25 19:22:24 +08:00
 gzxultra

本科计算机在读,原来感觉平平,现在倒是越来越有兴趣了~
看到许多人说以后去公司,程序开发在linux环境比较多,vim/emacs是主流。
于是搭建了一个centOS的虚拟机,努力学习vim...(还在所谓的“活下来”的阶段挣扎。。。)

学归学,但其实不是很理解,为什么不老老实实用dev c++,eclipse,intelij甚至是VS这类的IDE环境呢?他们的代码补全,调试之类的功能已经很完善了不是么(vim我还不会调试。。。)

有没有大大愿意跟我们这些后辈分享一下,你们是怎么接触到linux,vim这类环境并学习的呢?

还有个问题,如果我暂时只写acm的题目,在linux下我应该用哪些开发工具呢?

能说说经验,给出经典教程最好了,
万分感谢。

7282 次点击
所在节点    Linux
62 条回复
DIYgod
2015-03-25 20:34:29 +08:00
vim前期不会配置可以用一些别人封装好的 比如: https://github.com/spf13/spf13-vim
bigeagle
2015-03-25 21:43:45 +08:00
装个 code::blocks 写就行了,大家用 vim/emacs 是因为适用范围广,如果你 **只是** 为了写 acm 题的话,用 code::blocks 乃至 eclipse 都好。
lusyoe
2015-03-25 21:45:47 +08:00
你一般的编程当然可以用IDE啦,但是在Linux下你很难不修改各种配置文件等,这是因为Linux下有句:一切皆文件。。。而且大牛们一般都是玩终端的,没有图形界面,你IDE怎么吊?
jokester
2015-03-25 21:46:59 +08:00
vim和emacs确实可以扩展得很牛逼
然后linux软件往往是好用的要钱, 不要钱的没那么好用
devc++很久没更新了, eclipse cdt也就那样

acm规模的我觉得有个语法高亮就行了...
jokester
2015-03-25 21:47:57 +08:00
接上一条
我错了 devc++还很活跃
shippo7
2015-03-25 21:52:27 +08:00
说说我的理解

linux是个系统内核,各种IDE需要跑在桌面环境上,并不是所有linux发行版都带有图形桌面。vim,emacs这样的基于命令行的编辑器并不需要装载桌面环境,熟练之后更为轻巧。

其实用什么编辑器都是个人喜好,IDE也是个带有更多辅助功能的编辑器。如果你需要语法检查和更多的辅助功能,就用IDE。如果你已经是个熟练的程序员,语法检查对你没什么意义了,在linux上自然就不想装载桌面然后使用沉重的IDE了。
fds
2015-03-25 22:02:51 +08:00
没人说写代码一定要用vim。只是如果你经常跟服务器打交道的话,熟练掌握vim是水到渠成的。因为很多情况下没有图形界面,又要改各种配置、脚本……

如果你只是开发应用的话,windows上用VS,mac上用Xcode,没见有人在vim里写的。
popu111
2015-03-25 22:04:47 +08:00
同上。。。从来不用vim写代码,只是改改小文件罢了
em70
2015-03-25 22:06:30 +08:00
莫把一些人的个人喜好当必备技能!

linux是程序员的玩具,如果对linux有兴趣爱折腾,自己就能精通vim.但世界需要多元化,不是非要爱好linux才能当程序员,mac,win都是很好的系统,你喜欢哪个,觉得有兴趣就专研哪个,不用模仿别人.
reeco
2015-03-25 22:09:03 +08:00
新手还是推荐IDE吧,能少走很多弯路。
Linux下图形编辑器我推荐geany,不折腾
sunsol
2015-03-25 22:19:04 +08:00
用IDE方便是方便,但不利于理解一些底层的概念,而且关键是IDE约束很大,
而命令行像make脚本的灵活性是IDE很难做到的,在掌握之后就会觉得其方便性远超IDE.
编程是用计算机来做一些事情,而命令行是用计算机来控制计算机的一种方式,
由于其由文本构成,而且在linux有许多辅助工具来构成脚本实现自动化,
所以同时就是最简单的控制计算机方式,学会之后对编程自然就有很大帮助。
毕竟编程的一大部分就是在管理程序文件、文档文件、数据文件
或者自动编译、自动测试、自动XXX等等,写程序只是编程的一部分。
lvvj
2015-03-25 22:36:07 +08:00
本人的情况跟楼主基本一样,ACMer,CS大一在读。
至于LZ提到的问题,这是我的观点:
1.不管你打算以后做怎么,Linux都是必须的。运维就是Linux打主力;就算做开发,你也不要想着写好程序就直接扔给运维。
2.对于VIM嘛,这些就见仁见智了。毕竟我们是利用这些工具来提升我们的效率,如果你能熟练地使用其他软件达到同样的效果,也没有必要换。我就喜欢在WIN下用Notepad++,在Linux用Sublime Text。
3.至于IDE,我觉得这是好东西,能不切终端就能编写、调试好代码,ICPC不是也用code::blocks吗?所以毫无疑问是对效率有正作用的。不过gcc、gdb...之类的工具还是需要熟悉的。所以还是建议你在熟悉的情况下再使用IDE。就像我高中的时候选发行版,在CSDN上看到的回复:用Ubuntu的不是菜鸟,就是大神。

纯手打,希望对你有些帮助。
frankzeng
2015-03-25 22:57:28 +08:00
服务器上没有xwindow,你说的那些没有办法运行的,只好用vim了,习惯了命令更高效。
手打的代码不是更有味道吗,纯手工的哦,价格更贵。
nicai000
2015-03-25 23:02:01 +08:00
"写代码"必须推荐IDE, 虽然我是用Vim, 因为实在是"编辑"得太爽快了
Monad
2015-03-25 23:07:59 +08:00
vim+youcompleteme虽然没有vs给力但是也很酸爽了
另外提醒楼主不要变成工具党
lingxi27
2015-03-25 23:28:13 +08:00
你可以试试从qtcreator的fakevim开始
20015jjw
2015-03-25 23:39:27 +08:00
学校里所有CS Lab里电脑都是ubuntu
sublime我觉得好蠢
所以就vim了xd
加上自己的vps也要维护 总不能x tunnel过去sublime把xd
sleeperqp
2015-03-25 23:43:42 +08:00
作为一个退役的acmer, 你还在刷水题的阶段 用codeblocks
已经开始有实力过中等题 用vim+gcc吧
再往高就不用人推荐了 对什么感兴趣就用它的ide吧
bigzhu
2015-03-25 23:59:20 +08:00
楼主可以参看这篇 : 为什么要学 vim http://www.jianshu.com/p/cdab0f6a2e5b
noli
2015-03-26 00:10:15 +08:00
为什么要会 vim emacs 之类?
很简单,都是 ssh过去,远程写代码,远程跑测试的。
有些生产环境你的机器就别指望模拟什么的了。

不光vim,什么GDB, PDB 最好都会,理由同上,ssh过去哪有那么多选择?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179322

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX