没有智能提示,完全没法写代码了

2013-08-28 11:22:08 +08:00
 refresh
XCode有点问题了,智能提示失效了,删除索引也没有用,然后我发现完全不会写代码了。
没有智能提示没有Google,估计最简单的程序我也做不出来

有点奇怪,新建的文件不会自动建立索引,所以导致智能提示无效,重启也不能解决问题。
12975 次点击
所在节点    程序员
53 条回复
keyman
2013-08-29 10:25:02 +08:00
好吧,我来说说我不用智能补全的经历.
我用了个破IDE(QT Creator),这个IDE有个插件叫fakevim.但是fakevim和智能补全两者不能兼容.
所以我选择了fakevim.
不用智能补全产生了如下症状:
1.命名非常规范,真会非常规范.单词拼写根本不会错,即使错了也会马上改回来.
2.刚开始速度是慢了点,但写着写着写代码的速度就上来了,比用了智能补全要快.
3.你会非常熟悉api的返回指和传入参数,以及代码.

不信你们可以用一段时间试试.
nil
2013-08-29 11:56:23 +08:00
@luikore
对于cocoa开发来说,就是一棒子。没有一棒子又棒子的说法:)这棒子包括objective-c, Xcode, cocoa framework。应该算是一揽子的解决方案吧。有点smalltalk环境的意思,但可能没有做的那么好,没有repl,没有交互式的编程体验,似乎只有智能补全做的还不错。

智能补全做的好不好,感觉上和编程语言还是息息相关的。ruby不能做出这种体验,这本身怎么也算不上优点,也许是动态语言的特性导致的?

对于OC来讲用“冗余”来形容似乎是有些冤枉的,甚至对于编程语言来说是一种侮辱,代表她抽象能力不足;OC和ruby抽象能力的对比,感觉上就是没有eval。但是谁都不能阻止你在应用中内嵌一个解释器,然后调用OC的runtime。

我觉得刘核心可能说的是cocoa的api比较啰嗦,api的设计就是一种convention的事情了,即使拿ruby来做cocoa的应用也是如此,而且看起来会更丑陋一些。如果打字不算问题,对于可读性应该是有好处的,我一个完全不懂oc的同事,居然也很容易看懂我写的代码,因为基本上只要懂英语就行了。

智能补全对任何语言的编程都是有用的,有智能补全意味着编程时,机器已经理解了开发中的程序,并为程序员提供帮助,这不单单是节省了编辑的时间,而且也避免了很多的错误(低级的,简单的错误交给机器搞定,何乐而不为呢)。

如果纯粹的追求抽象能力,那就嵌入一个lisp解释器好了。。。
另外提供强大IDE的语言,似乎运行效率都不错。。。。
鱼和熊掌,看取舍了,不过对于cocoa编程,取舍的余地似乎很小,意味着上面说的都是废话。。。
ydhydh
2013-08-29 12:33:09 +08:00
@refresh 项目路径里有没有中文?有中文的话有时候会有问题
refresh
2013-08-29 14:37:41 +08:00
@ydhydh 完全没有,不过我用XCode4.5建一个新项目好了,感觉有可能是XCode5的问题
@favormm 这方法已经试过了,不管用
@luikore 再优雅的语言,也要有市场才行,对于99.9%甚至更多的程序员来说,谋生是优先的,平庸的人是绝大多数。某些语言可能很优雅,但曲高和寡,程序员也得吃饭对不,市场决定一切。
Obj-c很垃圾,C#也很垃圾,Java也垃圾,PHP也是很垃圾,几乎任何一种语言,我们都可以找到它不好的地方。XXX很优雅很屌,所有程序员都去学XXX,谁来付钱,市场能接受吗
eggcaker
2013-08-30 07:10:33 +08:00
我就见过用Emacs(只有语法高亮支持)写所有的平台所有的语言,带的我也跳进这个坑里了。Emacs + builer for all !
sinxccc
2013-08-30 07:39:12 +08:00
@cxe2v 首先我不用 VIM。

没啥好呵呵的,这么干的大有人在。我现在这个项目组的默认开发环境就是 Emacs + etags。之前项目里还见过有人用 nedit 的…
kran
2013-08-30 07:58:01 +08:00
@eggcaker
@sinxccc
请教一下两位emacs的tab缩进配置和项目管理相关配置
尤其是项目管理,每次emacs打开一个文件cwd就会是当前文件所在目录
如果同时编辑两个项目会比较混乱。
我emacs用的不多,这两点一直是不满意的地方。
FrankFang128
2013-08-30 08:16:23 +08:00
命名有问题吧。
eggcaker
2013-08-30 08:29:19 +08:00
晕死,现在v2ex有点不稳定了啊,刚写完了回复,一点提交,打不开了。白打了!

@kran
1. tabs缩进 ,不用tabs,用spaces.
https://github.com/eggcaker/pelm/blob/master/plugins/pelm-c.el#L12

2. project management ,我也从来不用
https://github.com/bbatsov/projectile
http://www.emacswiki.org/emacs/CategoryProject
sinxccc
2013-08-30 10:32:10 +08:00
@kran tab 缩进在文件开头的注释里控制,-*- tab-width: 4 -*- 这样。同一个项目大家用同样的文件模板就没问题。

Emacs 的项目控制确实比较弱。cwd 的控制我一般是一个项目标记一个到项目根目录的书签,需要打开另一个项目文件的时候先用书签跳过去。
mengzhuo
2013-08-30 11:29:26 +08:00
写Python没有Jedi我觉得也活不下去了……
darasion
2013-08-30 11:38:29 +08:00
@zhujinliang 两手都要抓,两手都要硬。用什么会什么才是王道。
kran
2013-08-30 12:49:40 +08:00
@eggcaker
@sinxccc
感谢两位, projectile看起来非常不错
缩进好像没有像vim那样方便, 需要逐个按照语言来配置,不过其实默认的缩进也不是不可忍受。

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

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

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

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

© 2021 V2EX