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

如何在linux下写程序?

  •  
  •   Part · 2013-01-17 09:29:20 +08:00 · 6503 次点击
    这是一个创建于 4120 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人win下的PHPer,很好奇linux下的程序猿是如何在木有GUI下写程序的,特别是在团队里面,如何用纯vim(木有装插件的情况下)协助完成一个项目?
    55 条回复    1970-01-01 08:00:00 +08:00
    kingwkb
        1
    kingwkb  
       2013-01-17 09:30:02 +08:00   ❤️ 1
    openSUSE + Sublime Text 2
    ratazzi
        2
    ratazzi  
       2013-01-17 09:39:29 +08:00
    终端下面倒是可以用 tmux 虚拟几个窗口,但是 vim 不装插件的话还是很要命的

    但是我是不喜欢那样的,还是得要桌面环境,一般 浏览器,GVim, gnome-terminal, oh-my-zsh 这些
    quake0day
        3
    quake0day  
       2013-01-17 09:40:40 +08:00   ❤️ 1
    没有GUI和纯VIM 这两个限制没有道理。谁也不会用这两个组合来写程序,顶多是应急修改下程序。
    Part
        4
    Part  
    OP
       2013-01-17 09:43:56 +08:00
    @quake0day 这个问题的由来是,我听一个百度的PHPer说他们是在Redhat下terminal,用vim写PHP,我也很不理解。
    ljbha007
        5
    ljbha007  
       2013-01-17 09:54:00 +08:00
    php的话用 vim就够了呀 外加一个浏览器来查文档和调试前端
    C/C++用 vim+make也够了嘛
    同理 java用 vim+ant/maven也够了嘛
    aisk
        6
    aisk  
       2013-01-17 09:55:03 +08:00
    就跟在win下写代码没什么两样吧,命令行下vim即使不装任何插件,也是可以拿来用的,很多人用notepad++一类的不一样写代码吗,你需要的不过就是个代码高亮,自动缩进,括号匹配这些功能,不装第三方插件vim完全足够了。
    aisk
        7
    aisk  
       2013-01-17 09:56:55 +08:00
    “很好奇linux下的程序猿是如何在木有GUI下写程序的”
    楼主这样问难不成以为linux本来就木有GUI?linux下写代码,除了微软VS一类的不能跑外其他大部分都妥妥的,eclipse神马的超级流畅。
    zx1986
        8
    zx1986  
       2013-01-17 10:07:10 +08:00
    我想原po要問的是協同開發一個專案之類的吧,需要同時開許多檔案編修。
    需要的是 TagList 跟 CtrlP 這兩個 vim plugin
    lyric
        9
    lyric  
       2013-01-17 10:12:23 +08:00
    @quake0day 这在鄙公司是常态。

    所有人都是通过某种SSH Client连到服务器开vim写程序。
    fwee
        10
    fwee  
       2013-01-17 10:15:48 +08:00
    习惯而已。。装个NerdTree开搞
    jiazhoulvke
        11
    jiazhoulvke  
       2013-01-17 10:18:07 +08:00
    为什么一定要没有装插件的vim?无法理解。有人会嫌自己开发效率太高么?我的vim插件数一直在30个以上。
    wy315700
        12
    wy315700  
       2013-01-17 10:19:18 +08:00
    用文本编辑器+make 我一般用 sublime
    fkccp
        13
    fkccp  
       2013-01-17 10:21:34 +08:00
    @kingwkb suse + sublime
    +1
    wy315700
        14
    wy315700  
       2013-01-17 10:24:05 +08:00
    @lyric 可以在本机上写 然后同步到服务器上去啊
    saharabear
        15
    saharabear  
       2013-01-17 10:28:11 +08:00
    我们就完全是远程ssh到bsd/linux上面,开tmux或者screen,然后一个vim/emacs就完事了,其他不管啊.
    goool
        16
    goool  
       2013-01-17 10:30:29 +08:00
    应急的话可以这样,在本机写,保存到远程服务器:

    vim scp://user@host//var/www/html/somefile
    sodapanda
        17
    sodapanda  
       2013-01-17 10:36:15 +08:00
    @lyric 是腾讯吗?还么毕业的从来没给公司写过程序
    ufo22940268
        18
    ufo22940268  
       2013-01-17 10:52:23 +08:00
    @lyric oh,看到你了.我们在同一个clan里面,我叫做hongbosb, 哈哈
    你们公司在哪里
    quake0day
        19
    quake0day  
       2013-01-17 11:05:21 +08:00
    @lyric VIM啥插件也不装?
    Cadina
        20
    Cadina  
       2013-01-17 11:23:09 +08:00
    emacs+php-mode+auto-complete妥妥的
    alexrezit
        21
    alexrezit  
       2013-01-17 11:25:05 +08:00   ❤️ 1
    鄙人愚见: 用 Windows 做 web 开发简直是件惨绝人寰的事情...
    swulling
        22
    swulling  
       2013-01-17 12:13:15 +08:00
    php又不是做GUI程序,要啥IDE?
    imcj
        23
    imcj  
       2013-01-17 12:22:17 +08:00
    @saharabear
    @lyric
    为什么不在本地开发好以后上传服务器?
    lyric
        24
    lyric  
       2013-01-17 12:23:00 +08:00
    @quake0day
    嗯,好几个人啥都没装,开个syntax on 然后ctags。我装得比较多。

    @sodapanda
    没...还没毕业

    @ufo22940268
    北京啊
    udonmai
        25
    udonmai  
       2013-01-17 12:24:46 +08:00
    @Part 百度的测试机和开发机都是RedHat,本地SSH过去,当然Vim之类的了。。。很多公司都是这样吧。。。不过也有人是在开发机上架版本控制,本地开发再推上去,不过不管怎么样,即使本地开发如果用IDE的话还需要设置很多忽略文件,还要控制目录结构,反而增加成本了。
    udonmai
        26
    udonmai  
       2013-01-17 12:26:10 +08:00
    @imcj 测试机有权限控制,没法自己架各种环境,版本控制也不行。
    lyric
        27
    lyric  
       2013-01-17 12:27:17 +08:00
    @imcj 因为程序只能跑在Linux,有的还存在依赖。本地搭建起来会很麻烦,测试也麻烦,所以在服务器上写。
    openroc
        28
    openroc  
       2013-01-17 12:37:14 +08:00
    tmux + vim, 很好用哦~ :)
    join
        29
    join  
       2013-01-17 12:38:20 +08:00
    其实写代码什么都不是什么大的问题.碰到调试是个大问题.
    用vim写c/c++没有补全,没有错误检查,没有方便的文件跳转.这些我都能忍受,唯一不能忍受的是用gdb调试,这玩意调试c/c++真的很蛋疼.
    revlis7
        30
    revlis7  
       2013-01-17 12:54:34 +08:00
    本地windows,自己搭了个虚拟机然后做磁盘共享,windows下用sublime开发,完成后svn commit,这样修改的时候可以直接在本地看到结果。

    开发服务器是linux,定时脚本去取svn库更新,这样其他部门也能看到最新的版本修改。

    我觉得每个人都有自己习惯的方式没错,但是公司环境总是复杂的,比如你去线上服务器只能用vim,但是我们sa又绝不会让我拷一堆插件上去。还有既然开发是linux平台的,但是很多公司只配给你windows的机器,包括it都只支持windows。所以在公司我还是习惯用一些很容易就能找到或者配置的东西。
    alexrezit
        31
    alexrezit  
       2013-01-17 12:54:34 +08:00   ❤️ 1
    @lyric
    必须要用 zencoding 啊! 同 21 F, 鄙人愚见: 做 web 开发不用 zencoding 简直是件惨绝人寰的事情.
    lyric
        32
    lyric  
       2013-01-17 13:02:36 +08:00
    @alexrezit 纯C...哪来的web
    alexrezit
        33
    alexrezit  
       2013-01-17 13:04:11 +08:00
    @lyric 楼主不是 PHPer 么?
    lyric
        34
    lyric  
       2013-01-17 13:06:37 +08:00
    @join 实际上需要调试的时候不多。
    lyric
        35
    lyric  
       2013-01-17 13:07:42 +08:00
    @alexrezit 我没注意到Phper,他光说问程序员也没有问phper程序员。而且评论里面五花八门的程序员都有。
    ufo22940268
        36
    ufo22940268  
       2013-01-17 13:13:28 +08:00
    @join 觉得gdb很棒呀, 还有gdbscript
    alexrezit
        37
    alexrezit  
       2013-01-17 13:18:51 +08:00
    @lyric 诶? 你是我们 clan 的 lyric 咩?
    leejiangren
        38
    leejiangren  
       2013-01-17 13:27:04 +08:00
    没听说过开发机么。

    linux的vim下写代码几年了,正常。
    tioover
        39
    tioover  
       2013-01-17 13:29:08 +08:00 via Android
    其实我也很好奇怎么在win下写程序
    lyric
        40
    lyric  
       2013-01-17 14:00:18 +08:00
    @alexrezit 是啊是我
    reusFork
        41
    reusFork  
       2013-01-17 14:06:51 +08:00
    协同工作主要靠版本管理工具吧,跟编辑器关系不大

    以前在win下写php也是vim+浏览器搞掂,感觉跟linux差别不大,win下也可以装一些gnu工具包
    imcj
        42
    imcj  
       2013-01-17 14:44:14 +08:00
    @udonmai 权限管理?是代码的权限吗?
    imcj
        43
    imcj  
       2013-01-17 14:44:57 +08:00
    @lyric 什么语言没有管理依赖的东西?
    lyric
        44
    lyric  
       2013-01-17 14:48:02 +08:00
    @imcj C没有
    zetta
        45
    zetta  
       2013-01-17 14:52:32 +08:00
    嗯啊,ssh到开发机器上直接写代码就好了

    在公司在家里面对的环境都一样,省的同步了比较方便
    Part
        46
    Part  
    OP
       2013-01-17 15:00:39 +08:00
    @alexrezit 刚才install package,发现 zencoding for Sublime已经停止更新和支持了。sublimeer无语了...
    clww
        47
    clww  
       2013-01-17 15:06:28 +08:00   ❤️ 1
    @Part 已经改叫emmet了
    udonmai
        48
    udonmai  
       2013-01-17 15:07:30 +08:00
    @imcj 系统权限木有,比如什么都只有r,比如固定目录才可以wx,所以就别想自己配置环境了,网络环境也是。
    Part
        49
    Part  
    OP
       2013-01-17 15:08:10 +08:00
    @clww find it!
    vimac
        50
    vimac  
       2013-01-17 16:13:55 +08:00
    @tioover 同感,win下开发环境各种残废,怎么写程序……
    BigZ
        51
    BigZ  
       2013-01-17 16:38:51 +08:00
    我都在win上面用emeditor开发
    发布部署到linux即可
    reusFork
        52
    reusFork  
       2013-01-17 16:41:20 +08:00 via Android
    @lyric autotools
    wang2191195
        53
    wang2191195  
       2013-01-17 16:56:39 +08:00
    @jiazhoulvke 求推荐好用的插件~
    alexrezit
        54
    alexrezit  
       2013-01-17 17:54:20 +08:00
    @Part
    vim 一直用第三方的表示鸭梨不大... = =
    jiazhoulvke
        55
    jiazhoulvke  
       2013-01-17 19:25:16 +08:00   ❤️ 1
    @wang2191195
    我用的插件基本上也都是别人介绍过的。

    ctags 不算插件,但几乎所有vimer必备

    cscope 同上

    函数列表:taglist 虽然这货一直留着,不过还真很少用。

    自动补全:neocomplcache 应该算是目前我见过功能最强的补全插件。不过开发的项目比较大的时候补全会比较卡,算是个让人又爱又恨的家伙。目前弃用了。

    依然是补全:ultisnips 类似于snipmate。

    还是补全:zencoding 不用介绍了。

    代码搜索:ack 抛弃grep吧。

    代码注释:nerdcommenter 全语言支持,可以单行或代码段注释。

    字符串高亮:mark 阅读代码时很有用。

    buffer标签:tabbar 就像浏览器的标签一样,列出打开的所有buffer,可以按<A-1>、<A-2>组合键进行跳转,已弃用。

    buffer跳转:fuzzyfinder 它有很多功能,比如当前目录下所有文件的模糊查询、历史文件模糊查询等。不过我只用其中bufferlist功能,用来取代tabbar,又省了一行空间了。它虽然有文件模糊查找功能,不过在文件很多的情况下很卡。

    文件模糊查找:ctrlp 功能和fuzzyfinder极其类似。文件查找速度比fuzzyfinder快,不容易卡死。类似的插件还有command-t,ruby写的,我不用ruby,所以没装过。

    光标跳转:easymotion 比123gg然后f<a-z>这样的方式更快,不用再虐待自己的手指。

    贴代码:pastebin 想把自己的代码秀给别人看就可以装这个,可以直接把你正在编辑的代码贴到pastebin去。

    写博客:vimrepress 可以用markdown写博客,比直接在wordpress的后台里写博客舒服点。

    主题:solarized 我个人比较喜欢的一个主题,不伤眼

    还有很多其他有用的插件,不过比较偏门,比如conque、surround、visincr等,还有几个是自己写的狗粮型插件:myproject、googletranslate等,就不一一介绍了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1107 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 371ms · UTC 18:30 · PVG 02:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.