V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
refresh
V2EX  ›  程序员

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

  •  
  •   refresh · 2013-08-28 11:22:08 +08:00 · 12954 次点击
    这是一个创建于 4111 天前的主题,其中的信息可能已经有所发展或是发生改变。
    XCode有点问题了,智能提示失效了,删除索引也没有用,然后我发现完全不会写代码了。
    没有智能提示没有Google,估计最简单的程序我也做不出来

    有点奇怪,新建的文件不会自动建立索引,所以导致智能提示无效,重启也不能解决问题。
    53 条回复    1970-01-01 08:00:00 +08:00
    wwqgtxx
        1
    wwqgtxx  
       2013-08-28 11:27:08 +08:00 via Android
    用notepad++和google写代码的飘过
    refresh
        2
    refresh  
    OP
       2013-08-28 11:34:29 +08:00
    @wwqgtxx 没有一个好ide我活不下去
    iYu
        3
    iYu  
       2013-08-28 11:36:04 +08:00
    把 ~/Library/Developer/Xcode/DerivedData/ 底下全部东西删掉试试
    cxe2v
        4
    cxe2v  
       2013-08-28 11:37:40 +08:00
    这个问题好像以前在Eclipse遇到的问题
    PS:离了智能提示对于项目很大的工程来说,确实写不下去了
    楼上的每个工程代码量不大吧?@wwqgtxx
    refresh
        5
    refresh  
    OP
       2013-08-28 11:40:44 +08:00
    @iYu 试过了,不知道是不是装了XCode 5的原因,试着重建一个新的项目,看能不能解决问题
    refresh
        6
    refresh  
    OP
       2013-08-28 11:43:42 +08:00
    汗,改用XCode 4.5,再重建一个新项目,结果没问题了,或者是XCode 5不稳定么,也可能是其它原因。
    zhujinliang
        7
    zhujinliang  
       2013-08-28 11:53:34 +08:00
    不知道大家偏向哪种观点:
    A. 自力更生艰苦奋斗,基本的编辑器就足够了,不羡慕ide
    B. 有好的工具为啥不用,与其折磨自己,不如找个好IDE;与其多记几个单词,不如多记几个快捷键
    sinxccc
        8
    sinxccc  
       2013-08-28 11:57:27 +08:00
    @cxe2v 结构合理的话,项目大小不是问题。
    akira
        9
    akira  
       2013-08-28 12:32:01 +08:00   ❤️ 1
    人类的进步 ,不就是不断的学习掌握使用新工具么。
    wang2191195
        10
    wang2191195  
       2013-08-28 12:33:23 +08:00 via iPhone
    @zhujinliang 不要和自己作对……虽然我是用vim+基本的简单补全 只是因为懒得本地写完svn回去编译
    有IDE挺好的
    qingfeng
        11
    qingfeng  
       2013-08-28 12:40:38 +08:00
    @zhujinliang 偏向使用IDE,一个好用的IDE能让你多活好几年。vim只拿来写写简单的文件,工程里还是非常不方便。程序员也需要用户体验啊!
    ETiV
        12
    ETiV  
       2013-08-28 12:48:21 +08:00
    无论用"好用的IDE" 或者是VIM+"好用的插件", 提高工作效率, 提高生产力都是最终的目标.

    同样是出产HTML, 手工纯写tag, 跟使用Emmet写, 效率完全不一样.
    cxe2v
        13
    cxe2v  
       2013-08-28 13:25:11 +08:00
    @sinxccc 当项目里有上千个的方法的时候,没有智能提示能记得住?
    luikore
        14
    luikore  
       2013-08-28 13:40:00 +08:00
    语言的不足只能靠 IDE 补, 同样是出产 html, 在任何 IDE 写 tag 都没有在文本编辑器写 slim 快
    refresh
        15
    refresh  
    OP
       2013-08-28 16:06:17 +08:00
    @zhujinliang
    @ETiV
    @luikore

    我觉得,在这个信息爆炸的年代,我们只需要记住key就行了,剩下的事,还是交给机器比较好,让机器做机器的事,人做人的事,过目不忘博闻强记的人毕竟是少数
    PrideChung
        16
    PrideChung  
       2013-08-28 16:08:03 +08:00
    写Ruby没有自动补全没关系,写Objective-C没了自动补全能要人命。
    refresh
        17
    refresh  
    OP
       2013-08-28 16:09:17 +08:00
    @PrideChung 我表示,javascript也可以不需要自动补全,因为有和没有结果都差不多
    moxuanyuan
        18
    moxuanyuan  
       2013-08-28 16:13:03 +08:00
    wwqgtxx
        19
    wwqgtxx  
       2013-08-28 16:30:38 +08:00 via Android
    @refresh 那就换一个好的ide呗
    wity_lv
        20
    wity_lv  
       2013-08-28 16:43:57 +08:00
    换AppCode, Objective C没自动补全,太自虐了。
    luikore
        21
    luikore  
       2013-08-28 16:59:53 +08:00
    @refresh ruby 之类的命名 sense 很好的, 根本不用记就自然写出代码了, 良好的语法设计也使做很多事情不用绕来绕去写一大坨, 你不用写那一大坨了哪里还需要自动完成那一大坨?

    IDE 也是一种语言, 记住 IDE 的操作也是记忆负担, 先做一个很烂的语言, 然后用一个 IDE 来配套说 IDE 多厉害, 还不如直接做个好点的语言...
    luikore
        22
    luikore  
       2013-08-28 17:05:07 +08:00
    OC 那个命名实在是, 有时想找一个功能, 自动完成文档搜索找破脑袋都搜不到, 但是它偏偏有, 就是起了个正常人根本不会联想到的坑爹名字...
    whuhacker
        23
    whuhacker  
       2013-08-28 18:51:49 +08:00
    出去面试要被虐惨
    虽然记住那么多函数调用确实没必要
    refresh
        24
    refresh  
    OP
       2013-08-28 19:28:38 +08:00
    @luikore 没有烂的语言,只有烂的程序员
    favormm
        25
    favormm  
       2013-08-28 19:32:05 +08:00 via iPhone
    Clear target.
    重启Xcode
    happypy1
        26
    happypy1  
       2013-08-28 20:14:30 +08:00 via iPad
    其实我觉得eclipse可以能查语法就极大地提高我开发的效率了
    sinxccc
        27
    sinxccc  
       2013-08-28 21:48:22 +08:00
    @cxe2v 几千个不是很多。如果合理规划的话,这几千个方法会被划分到功能相对独立的若干个子集里,有自己的名称前缀/类,加上统一的命名规则的话,对项目熟悉一点之后记住,或者更准确说猜到当前要用的是哪个方法的名字其实没啥难度。
    ultragtx
        28
    ultragtx  
       2013-08-28 21:52:47 +08:00
    基本解决流程就是(到哪步好用了就不用再往下走了):
    1.重启xcode
    2.clean
    3.删DerivedData
    4.复制整个项目到一个地方,打开,删旧的,把复制的改名放回原来位置
    goocarlos
        29
    goocarlos  
       2013-08-28 21:57:19 +08:00
    我的 PHPStorm 的代码提示今天也抽了,正在无奈中。
    luikore
        30
    luikore  
       2013-08-28 22:05:01 +08:00
    @refresh 这不是用来当井底之蛙的借口...
    chisj
        31
    chisj  
       2013-08-28 22:22:34 +08:00
    那些说不用IDE的,你不用IDE做iOS开发吗?
    如果是一两百行py代码,当然vim足够了。
    nil
        32
    nil  
       2013-08-28 23:21:03 +08:00
    跟楼主同感,现在觉得没有xvim插件也没办法写代码~
    @luikore OC不算差了,代码写出来像英语,有补全写代码应该不比ruby慢,语法不同,对象模型上看分明就是近亲啊。。。 大牛今天怎么也激动了~
    luikore
        33
    luikore  
       2013-08-29 00:37:38 +08:00
    @nil 这就好像: 先打一棒子让你要多写 10 倍代码, 然后给个糖告诉你用 IDE 可以 3 倍速打字... 你可以 3 倍速打字就是因为语言里包含大量重复冗余的东西, 用很笨的程序都能填上, 没有冗余的话, 自动补全就根本没有作用了...
    yantze
        34
    yantze  
       2013-08-29 00:54:55 +08:00
    为什么没有以*vim为中心,开发出来的ide,如果这样就强了
    cxe2v
        35
    cxe2v  
       2013-08-29 09:07:05 +08:00
    @sinxccc 如果你真用VIM之流做过你说的这种事的话,我不得不佩服你
    如果没做过空想的话,那就呵呵你一下了!
    ciaoca
        36
    ciaoca  
       2013-08-29 09:16:59 +08:00
    同感,如果编辑器没有自动补全,真是受不了
    solo7net
        37
    solo7net  
       2013-08-29 09:32:58 +08:00
    这都成月经贴了
    文本编辑器 和IDE之间的争论
    想起了个笑话如何让程序员吵起来:PHP是最好的语言!没有之一
    zhuzhai
        38
    zhuzhai  
       2013-08-29 09:40:13 +08:00
    不管用Vim还是用IDE,用Windows还是Linux,它们仅仅是工具,用工具高效率的完成要做的事情才是最重要的,比如修改几行代码、配置文件之类就没什么必要启动庞大的IDE,每个人都有每个人的习惯的适合他们自己更高效率的完成任务的工具,无所谓优劣
    oloopy
        39
    oloopy  
       2013-08-29 09:56:45 +08:00
    @zhujinliang 选B,一大恶习就是重复造轮浪费时间,避免之
    RobinFai
        40
    RobinFai  
       2013-08-29 09:56:47 +08:00
    我只能说,我属于脑子不好使,IDE来补。
    keyman
        41
    keyman  
       2013-08-29 10:25:02 +08:00   ❤️ 1
    好吧,我来说说我不用智能补全的经历.
    我用了个破IDE(QT Creator),这个IDE有个插件叫fakevim.但是fakevim和智能补全两者不能兼容.
    所以我选择了fakevim.
    不用智能补全产生了如下症状:
    1.命名非常规范,真会非常规范.单词拼写根本不会错,即使错了也会马上改回来.
    2.刚开始速度是慢了点,但写着写着写代码的速度就上来了,比用了智能补全要快.
    3.你会非常熟悉api的返回指和传入参数,以及代码.

    不信你们可以用一段时间试试.
    nil
        42
    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
        43
    ydhydh  
       2013-08-29 12:33:09 +08:00
    @refresh 项目路径里有没有中文?有中文的话有时候会有问题
    refresh
        44
    refresh  
    OP
       2013-08-29 14:37:41 +08:00
    @ydhydh 完全没有,不过我用XCode4.5建一个新项目好了,感觉有可能是XCode5的问题
    @favormm 这方法已经试过了,不管用
    @luikore 再优雅的语言,也要有市场才行,对于99.9%甚至更多的程序员来说,谋生是优先的,平庸的人是绝大多数。某些语言可能很优雅,但曲高和寡,程序员也得吃饭对不,市场决定一切。
    Obj-c很垃圾,C#也很垃圾,Java也垃圾,PHP也是很垃圾,几乎任何一种语言,我们都可以找到它不好的地方。XXX很优雅很屌,所有程序员都去学XXX,谁来付钱,市场能接受吗
    eggcaker
        45
    eggcaker  
       2013-08-30 07:10:33 +08:00
    我就见过用Emacs(只有语法高亮支持)写所有的平台所有的语言,带的我也跳进这个坑里了。Emacs + builer for all !
    sinxccc
        46
    sinxccc  
       2013-08-30 07:39:12 +08:00
    @cxe2v 首先我不用 VIM。

    没啥好呵呵的,这么干的大有人在。我现在这个项目组的默认开发环境就是 Emacs + etags。之前项目里还见过有人用 nedit 的…
    kran
        47
    kran  
       2013-08-30 07:58:01 +08:00
    @eggcaker
    @sinxccc
    请教一下两位emacs的tab缩进配置和项目管理相关配置
    尤其是项目管理,每次emacs打开一个文件cwd就会是当前文件所在目录
    如果同时编辑两个项目会比较混乱。
    我emacs用的不多,这两点一直是不满意的地方。
    FrankFang128
        48
    FrankFang128  
       2013-08-30 08:16:23 +08:00
    命名有问题吧。
    eggcaker
        49
    eggcaker  
       2013-08-30 08:29:19 +08:00   ❤️ 1
    晕死,现在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
        50
    sinxccc  
       2013-08-30 10:32:10 +08:00   ❤️ 1
    @kran tab 缩进在文件开头的注释里控制,-*- tab-width: 4 -*- 这样。同一个项目大家用同样的文件模板就没问题。

    Emacs 的项目控制确实比较弱。cwd 的控制我一般是一个项目标记一个到项目根目录的书签,需要打开另一个项目文件的时候先用书签跳过去。
    mengzhuo
        51
    mengzhuo  
       2013-08-30 11:29:26 +08:00
    写Python没有Jedi我觉得也活不下去了……
    darasion
        52
    darasion  
       2013-08-30 11:38:29 +08:00
    @zhujinliang 两手都要抓,两手都要硬。用什么会什么才是王道。
    kran
        53
    kran  
       2013-08-30 12:49:40 +08:00
    @eggcaker
    @sinxccc
    感谢两位, projectile看起来非常不错
    缩进好像没有像vim那样方便, 需要逐个按照语言来配置,不过其实默认的缩进也不是不可忍受。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1251 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:13 · PVG 02:13 · LAX 10:13 · JFK 13:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.