关于 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 条回复
billlee
2015-03-26 00:14:09 +08:00
如果是写 Java, 还是要 IDE 的,不然那么多包根本记不住。
但是写 C 的时候就感觉 IDE 带来的便利不如直接在 shell 下工作方便
yxzblue
2015-03-26 00:17:28 +08:00
月经
vjnjc
2015-03-26 00:20:31 +08:00
个人感觉存活下来的阶段已经够用了,主要用在登陆服务器(别人的机器)看log或者简单操作。
我已经投奔sublime了。
JAVA还是要IDE,比如Intellij idea
9hills
2015-03-26 00:39:49 +08:00
见过不会用GDB的rd 也是谁都敢招……

IDE 开发无所谓,但是命令行还是要熟的
twl007
2015-03-26 02:08:29 +08:00
就像latex 问教授用这东西写论文么 教授说早就改word了 只有在很早的时候才用过…… vim额可以看作是Linux底下没有好的IDE大家就去用vim了 实际上要是有更好的选择完全可以不用vim

其实IDE说白了只是工具 你爱用什么就用什么 又不是说你换了IDE然后ACM水平立马飞涨 完全两码事……

感觉题主的意思就是请问我买了一个500多的游戏鼠标适合拿来办公么 打cs的话可以有效提升水平么
xhacker
2015-03-26 02:15:48 +08:00
Linux 下同推荐 Geany。
ericls
2015-03-26 02:45:26 +08:00
楼主 我希望你坚持下来
本人不是学计算机的 所以很多东西也不是很懂

本人用vim 刚开始的时候 说实话感觉不如一些文本编辑器 更别说IDE了

后来就越来越爽 其实最爽的 还是navigation和selection 相当方便 yyp ddp 神码的

现在基本上写点小东西 还是vim方便

大点的东西 尽量用支持vim键位的插件的IDE

不要管别人怎么说 自己用起来就是快 就是爽 就行了

另外 sublime的vintage 不错
ericls
2015-03-26 02:46:35 +08:00
还有一个原因 你想 你坐在沙发上 笔记本放腿上

如果用 IDE 会很不方便 但是vim emacs 就会很合适
Andiry
2015-03-26 05:39:40 +08:00
@twl007 写论文从Latex转向Word,你们教授是来搞笑的吗
canautumn
2015-03-26 06:14:36 +08:00
@Andiry 这个看个人习惯了,反正一般编辑都提供两种模板。我就遇见过有教授公开表示对现在有些学生居然『倒退』到用他们几十年前用的latex的『鄙视』,他们很熟练的应用word和excel完成学生们用latex和matlab完成的工作。

有的人天生对代码有感觉,有的人则对图形界面更能接受。比如我可以记下10个latex命令,但也无法记住一个word命令在某个对话框的某个位置。而有的人思维和我相反。另外latex可以精确、精准的实现很多操作,word不是不能实现,而是很麻烦,可能需要多个步骤。还有就是很多『设置』是隐藏在图形界面下的,你可能永远不会想到某页的页边距被不小心改了0.1in,而肉眼很难发现。latex则给我掌控全局的感觉。但我不否认有人用word可以轻易避免这些问题——因为word太容易上手,反而给很多人一种会用的假象,而实际上能用好的人不多。
lxdestiny
2015-03-26 07:21:08 +08:00
@twl007 很负责任的告诉你、我系里的所有教授写论文都还在用latex,我有几门作业也是要用latex写的。
comicfans44
2015-03-26 07:36:01 +08:00
本人现在日常使用vim,之前也曾参加ACM,个人的建议是,如果你主攻的是ACM的算法编程,那最好不要急着学习vim,原因很简单,vim的学习曲线比IDE陡,只有配上插件,再加上很多自定义才能达到很高的使用效率,但是ACM参赛环境一般都是断网封usb的,难道比赛前先配一遍vim? 要是你现在用vim用习惯了,在比赛使用还得用IDE,结果反而觉得束手束脚,那不是很崩溃...
patrickstar
2015-03-26 08:02:53 +08:00
现在好多应用都要求跨平台,而linux是必须的之一,特别是高性能计算、服务等方面。
本人主要在大控制系统软件方向,平台主要就是linux和win,语言主要是c/c++,现在编辑器主力是sublime text,少量也用Qt这个IDE,把编辑器和编译器分离一是解决多平台问题,第二就是一般IDE都太大,第三就是可以逐步了解掌握make过程及项目相关工程控制等等相对底层的一些知识。

如果只是在win平台下工作,我绝对选择VS IDE,效率和学习曲线也是很重要的。
linux40
2015-03-26 08:05:22 +08:00
寒假折腾了一下vim,然后滚回了code::blocks。。。
znoodl
2015-03-26 08:20:19 +08:00
如果接触Linux编程的话,IDE不是必须的,但vim,gcc,gdb是必须的
wangyunok
2015-03-26 08:38:28 +08:00
linux属于生产环境,熟悉是必须得,但开发不一定非要在linux上做,利用ssh、git等工具完全可以交互。目前的开发模式基本上都是云服务器,所以,一个远程终端足以。

不过若是真的对linux很感兴趣,喜欢玩,那是很好的,linux这个东西总是了解越多越好,因为其是现在一个计算机技术的来源。

再说说平台区别。主要在于系统调用,这是linux下的概念,从用户态到内核态。不同平台所提供的系统接口是不一样的,所以,若你用C或者C++做系统级编程,就是有平台差异的。但若做java以及现在流行的各种脚本语言,都是平台无关的(但平台无关这件事情也是相对的,每种语言了解到一定程度以后,都会有关于平台的各种坑,当被坑了很多次之后,你就会自动远离windows向unix系系统靠近)
Panic
2015-03-26 08:42:02 +08:00
linux 本身的桌面性能太弱, 没办法, 只好将就着用 vim 之流了。其他 IDE 加上vim 插件比使用vim然后加上一堆扩展强多了,真不知道在 youcompleteme 之前vimer是怎么代码补全的。而且 youcompleteme 使用的是 clang 而不是传说中的 gcc。。。

牛逼的程序员不是因为用的工具nb, 而是因为他写出来的代码 nb。
reeco
2015-03-26 08:43:19 +08:00
我很少见到有人是ssh到远程服务器,然后开个Vim在那写的。难道不是本地写好再提交上去的吗?生产服务器有一条基本原则,不必要的东西都不要装,难道你们每回都要把自己的Vim配置传到服务器上?
zhouzm
2015-03-26 08:48:55 +08:00
其实就是一个熟练度的问题,当你熟练度一般的时候,使用 IDE 会感觉非常爽,大大提高你的学习工作效率,但当你熟练度达到一定程度的时候,你会发现这些通用的 IDE 已经没法再提供你更大的效率的提高了,你就会有自己的特定需求,这时候 vim/emacs 的强大之处就体现出来了,它们还能为你提供进一步提升的空间。
jianghu52
2015-03-26 08:53:53 +08:00
作为一个半路出家入行的人,我给楼主的建议是,如果你最开始想熟悉程序,那么就用IDE开始。现在的IDE非常的智能,能帮你简化很多的东西,使你真正的只关注程序思想本身,而不用在乎什么缩进啦,变量类型啦。(IDE会自动辨别)
什么情况下使用VIM。我的理解是,当你需要快速的修改某个东西,或者突然有了灵感需要写某些代码的后死后,那个时候你再打开慢吞吞的IDE当然是不现实的了。
另外,当你远程操作某些服务器的时候,里面当然不会装IDE,这个时候vim是标配,自然需要学习了。
王垠的这篇文章我觉得写的很好 [http://www.yinwang.org/blog-cn/2013/04/20/editor-ide/]
vim甚至emacs 的学习曲线相当陡峭,但是老实说,你把他们玩得再溜,如果写出来的程序本身像一坨屎,那又有什么用呢。所以你的首要精力应该是学习好程序。

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

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

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

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

© 2021 V2EX