Vim 这么多人使用,为什么开发 Vim 用的 perl 不再有人提起或谈论,个人觉得 perl 是 linux/unix 环境下的瑞士军刀,有着不小魅力 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
faywong8888
V2EX    Linux

Vim 这么多人使用,为什么开发 Vim 用的 perl 不再有人提起或谈论,个人觉得 perl 是 linux/unix 环境下的瑞士军刀,有着不小魅力

  •  
  •   faywong8888 2016 年 9 月 7 日 8208 次点击
    这是一个创建于 3423 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言    2016 年 9 月 7 日
    我孤陋寡闻了,我的原意是: Vim 为什么需要依赖 perl ?
    第 2 条附言    2016 年 9 月 9 日
    各位大神,我错了,再也不发起编程语言类的话题了。
    36 条回复    2016-09-09 09:15:02 +08:00
    metrue
        1
    metrue  
       2016 年 9 月 7 日
    小工具可以使用 Perl 写写,大项目 hold 不住啊。
    ChiangDi
        2
    ChiangDi  
       2016 年 9 月 7 日 via Android   7
    瑞士军刀也没有什么人用
    yjd
        3
    yjd  
       2016 年 9 月 7 日
    23333 ,普通人都用菜刀。。用不上瑞士军刀
    princelai
        4
    princelai  
       2016 年 9 月 7 日
    2007-2008 年我还特地买了 2 本 perl 的书看看,之后就用 python 替代了,反正要求不高足够用了,而且 3 年之间没用 perl ,我已经看不懂了。。。。
    skydiver
        5
    skydiver  
       2016 年 9 月 7 日 via Android
    Ruby is the new Perl
    itisthecon
        6
    itisthecon  
       2016 年 9 月 7 日
    perl 在小程序, 文本处理方面还是相当犀利的, 比 python 方便太多了
    wupher
        7
    wupher  
       2016 年 9 月 7 日
    写完之后除了作者没人能看得懂;过了三个月,作者也看不懂了……
    megatron
        8
    megatron  
       2016 年 9 月 7 日
    等 python 再发展一段时间,之后 perl 才有点儿可能“不再有人提起”。
    ericFork
        9
    ericFork  
       2016 年 9 月 7 日   3
    vim 是用 perl 写的?
    longdanie
        10
    longdanie  
       2016 年 9 月 7 日 via Android
    如果每天都能使用它码 100 行以上,它绝对比 python 好使,否则还是算了吧。
    lcc4376
        11
    lcc4376  
       2016 年 9 月 7 日
    哥有 Python 了,,,,.
    araraloren
        12
    araraloren  
       2016 年 9 月 7 日
    小脚本之类的用 perl 方便。。
    不过我现在已经完全转向 perl6 了,当然,什么时候能真正的用到生产环境中是个问题。。
    lcc4376
        13
    lcc4376  
       2016 年 9 月 7 日
    我以 Vim 是用 C 的
    mgna17
        14
    mgna17  
       2016 年 9 月 7 日
    这是要引发第三次世界大战了么
    odirus
        15
    odirus  
       2016 年 9 月 7 日
    反正 perl 的那些魔术符号能让 code review 的人吐血
    kikyous
        16
    kikyous  
       2016 年 9 月 7 日
    开发 Vim 用的 perl ?
    大哥你在搞笑吗
    airqj
        17
    airqj  
       2016 年 9 月 7 日
    第一次听说 vim 是 perl 写的
    是我孤陋寡闻还是真的是事实。。。。。
    asj
        18
    asj  
       2016 年 9 月 7 日
    哈哈,想起来很久以前看到有人说 Word 和 Excel 是 VB 写的
    fyibmsd
        19
    fyibmsd  
       2016 年 9 月 7 日
    开发 vim 的是 vimscript
    araraloren
        20
    araraloren  
       2016 年 9 月 7 日   5
    看了之前的楼层特意去 vim 的仓库看了下

    C 49.4%
    VimL 44.0%
    Groff 1.9%
    Makefile 1.7%
    C++ 0.8%
    PostScript 0.3%
    Other 1.9%
    willm
        21
    willm  
       2016 年 9 月 7 日
    Perl 的没落充分验证了一句话

    代码是写出来给人看的,顺便给计算机执行一下
    zhanglintc
        22
    zhanglintc  
       2016 年 9 月 7 日
    write only 的美誉不是白瞎的
    hack
        23
    hack  
       2016 年 9 月 7 日
    我记得五年前 poc 还是 perl 写,后来大多都转 python 流了
    Clarencep
        24
    Clarencep  
       2016 年 9 月 7 日   1
    "代码是写出来给人看的,顺便给计算机执行一下" +1

    程序猿的生命也是有限的, perl 那么多鬼符号太容易忘记了,还是 python 大法好
    josephshen
        25
    josephshen  
       2016 年 9 月 7 日 via iPhone   1
    吓得我直接就屏蔽楼主了,张嘴就胡说,是谁告诉你 vim 是 perl 写的?!
    snopy
        26
    snopy  
       2016 年 9 月 7 日
    哪位大神来解释下这个 Perl 脚本:
    use strict;
    use Time::Local;
    use Net::FTP;
    use Getopt::Long;
    use FileHandle;
    use POSIX ":sys_wait_h";
    use POSIX qw(strftime);
    my $year = strftime "%Y",localtime(time-24*3600 );
    my $day = strftime "%d",localtime(time-24*3600 );
    my $mOnth= strftime "%m",localtime(time-24*3600 );
    my $hour = strftime "%H",localtime(time() );
    my $min = strftime "%M",localtime(time() );
    my $sec = strftime "%S",localtime(time() );
    my $date = ($year.$month.$day);
    my $cmd;
    my $format_cmd;
    my $scan_start_time;
    my $script_list;
    my $usage =<<"EOS";
    Usage:$0 -t <scan_start_time>
    for: 1.$0 -t "20110419"
    -list <script_list>
    for: 2.$0 -s "DM_P2PQOE_SE_AREAL3_D DM_P2PQOE_SE_AREAL1_D ..."
    EOS

    GetOptions(
    "t:s" => \$scan_start_time,
    "s:s" => \$script_list
    );

    if (defined $scan_start_time)
    {
    $date = $scan_start_time;
    }

    if (defined $script_list) {

    my @script_list_names = split /\s+/, $script_list;
    print "@script_list_names\n";

    my $data_path = '/root/hadoop/pubdata/';
    my $ctl_path = '/root/hadoop/hadoop_cfg/';
    my $log_path = '/root/hadoop/hadoop_log/';

    foreach my $script (@script_list_names) {

    my $file_name = $data_path.$script.'-'.$date;

    my $ctl_name = $ctl_path.$script.'.ctl';
    my $log_name = $log_path.$script.'.log';

    $file_name = `ls $file_name*`;
    $format_cmd="perl -pi -e 's/\\\\N//g' $file_name";
    system($format_cmd);
    $cmd = "sqlldr userid=name/passwd\@ipms direct=true rows=1000000 bindsize=81920000 readsize=81920000 cOntrol=$ctl_name data=$file_name log=$log_name";
    print $cmd;
    system($cmd);
    }
    }
    faywong8888
        27
    faywong8888  
    OP
       2016 年 9 月 7 日
    @josephshen
    @kikyous
    @araraloren
    多谢你们指点。
    yxzblue
        28
    yxzblue  
       2016 年 9 月 7 日
    推广应该更直接点
    sampeng
        29
    sampeng  
       2016 年 9 月 7 日
    @wupher 这个是说出心声了。。
    perl 真心是可读性太差了
    zhidian
        30
    zhidian  
       2016 年 9 月 7 日
    Vim 可以录制键盘宏…… Perl 可以吗? Perl 可以处理文本, Vim 录制的键盘宏也可以处理文本,而且也可以保存起来随时运行,如此观之,处理文本,我用 Vim !

    不过所有的正则表达式不都差不多么?处理起文本来也都是差不多的。
    alcarl
        31
    alcarl  
       2016 年 9 月 7 日
    @snopy 这好像是把一个日期的所有指定名字前缀的文件导入到 oracle 里的脚本。。。。。。。
    alcarl
        32
    alcarl  
       2016 年 9 月 7 日
    学一点 perl 在文本数据处理较多的场合和 linux 系统运维的场合还是很能提高效率的哈。
    arakashic
        33
    arakashic  
       2016 年 9 月 8 日
    vim 不依赖 perl 啊,`--enable-perlinterp`不是默认选项
    jiangjun
        34
    jiangjun  
       2016 年 9 月 8 日
    Perl 只是用来写插件。 vim 支持的语言多了去了。现在用 Python 写 vim 插件是最方便的。
    bwangel
        35
    bwangel  
       2016 年 9 月 8 日
    这是 vim-common 的依赖,只有一个 libc 。
    ```
    /home/yundongx/Bundle/request $ apt-cache depends vim-common
    vim-common
    Depends: libc6
    Breaks: vim-gui-common
    |Recommends: vim
    vim-athena
    vim-gnome
    vim-gtk
    vim-nox
    |Recommends: vim-gnome
    |Recommends: vim-gtk
    |Recommends: vim-athena
    |Recommends: vim-nox
    Recommends vim-tiny
    Replaces: vim-gui-common
    ```

    这是 vim-gnome 的依赖,因为编译的时候开启了`--enable-perlinterp`,所以会依赖一个 libperl5.22 ,它和 libpython2.7 的作用基本相同!

    ```
    /home/yundongx/Bundle/request $ apt-cache depends vim-gnome
    vim-gnome
    Depends: vim-gui-common
    Depends: vim-common
    Depends: vim-runtime
    Depends: libacl1
    Depends: libbonoboui2-0
    Depends: libc6
    Depends: libgdk-pixbuf2.0-0
    Depends: libglib2.0-0
    Depends: libgnome-2-0
    Depends: libgnomeui-0
    Depends: libgpm2
    Depends: libgtk2.0-0
    Depends: libice6
    Depends: liblua5.2-0
    Depends: libpango-1.0-0
    Depends: libperl5.22
    Depends: libpython2.7
    Depends: libruby2.2
    Depends: libselinux1
    Depends: libsm6
    Depends: libtcl8.6
    Depends: libtinfo5
    Depends: libx11-6
    Depends: libxt6
    Suggests: cscope
    Suggests: vim-doc
    Suggests: fonts-dejavu
    Suggests: gnome-icon-theme
    ```
    Mithrandir
        36
    Mithrandir  
       2016 年 9 月 9 日
    perl 太老了,历史包袱深重,并且新版本开发不力
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5354 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 08:34 PVG 16:34 LAX 00:34 JFK 03:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86