Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
faywanghq
V2EX  ›  Linux

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

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

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

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

    程序猿的生命也是有限的, perl 那么多鬼符号太容易忘记了,还是 python 大法好
    josephshen
    josephshen
    Sep 7, 2016 via iPhone❤️1
    25
    吓得我直接就屏蔽楼主了,张嘴就胡说,是谁告诉你 vim 是 perl 写的?!
    snopy
    snopy
    Sep 7, 2016
    26
    哪位大神来解释下这个 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);
    }
    }
    faywanghq
    faywanghq
    OP
    Sep 7, 2016
    27
    @josephshen
    @kikyous
    @araraloren
    多谢你们指点。
    yxzblue
    yxzblue
    Sep 7, 2016
    28
    推广应该更直接点
    sampeng
    sampeng
    Sep 7, 2016
    29
    @wupher 这个是说出心声了。。
    perl 真心是可读性太差了
    zhidian
    zhidian
    Sep 7, 2016
    30
    Vim 可以录制键盘宏…… Perl 可以吗? Perl 可以处理文本, Vim 录制的键盘宏也可以处理文本,而且也可以保存起来随时运行,如此观之,处理文本,我用 Vim !

    不过所有的正则表达式不都差不多么?处理起文本来也都是差不多的。
    alcarl
    alcarl
    Sep 7, 2016
    31
    @snopy 这好像是把一个日期的所有指定名字前缀的文件导入到 oracle 里的脚本。。。。。。。
    alcarl
    alcarl
    Sep 7, 2016
    32
    学一点 perl 在文本数据处理较多的场合和 linux 系统运维的场合还是很能提高效率的哈。
    arakashic
    arakashic
    Sep 8, 2016
    33
    vim 不依赖 perl 啊,`--enable-perlinterp`不是默认选项
    jiangjun
    jiangjun
    Sep 8, 2016
    34
    Perl 只是用来写插件。 vim 支持的语言多了去了。现在用 Python 写 vim 插件是最方便的。
    bwangel
    bwangel
    Sep 8, 2016
    35
    这是 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
    Mithrandir
    Sep 9, 2016
    36
    perl 太老了,历史包袱深重,并且新版本开发不力
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2922 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 11:54 · PVG 19:54 · LAX 03:54 · JFK 06:54
    ♥ Do have faith in what you're doing.