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

给 MacVim 增加了些类似 TextMate 的功能,求帮忙测试

  •  
  •   ratazzi · 2011-05-29 17:19:27 +08:00 · 6824 次点击
    这是一个创建于 4926 天前的主题,其中的信息可能已经有所发展或是发生改变。
    rt,增加了类似 Project Drawer 和 Go to File 的功能

    下载地址: http://linode.ratazzi.org/macvim.zip
    md5sum: 265c1ca1712d914daddf9e2059a27780
    sha1sum: ddb51db7eb0345a878c4bbd55101a78bca599f09

    测试前请阅读文档: http://github.com/ratazzi/macvim/wiki

    Screenshot:
    http://www.yupoo.com/photos/ratazzi/81211497/
    http://www.cl.ly/3L271X3V0y2p2X2D2x1m

    非常感谢。
    18 条回复    1970-01-01 08:00:00 +08:00
    miles
        1
    miles  
       2011-05-29 17:40:02 +08:00
    不错,支持
    yugushen
        2
    yugushen  
       2011-05-29 18:14:28 +08:00
    在我机子上,无法打开窗口。Log 如下:

    Dyld Error Message:
    Library not loaded: /gentoo/lib/libiconv.2.dylib
    Referenced from: /Users/username/Downloads/macvim/MacVim.app/Contents/MacOS/Vim
    Reason: Incompatible library version: Vim requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
    ratazzi
        3
    ratazzi  
    OP
       2011-05-29 19:02:46 +08:00
    @yugushen 非常感谢提供的错误信息,原来是我编译时受环境变量影响用到了非标准的系统库所致,已经重新编译,下载地址不变,如果有时间的话再帮忙测下,不胜感激。

    md5sum: 5cb1bb1a3754aac2a84255bc34783d4b
    sha1sum: 70de165e6acdbf9df9b3acc3160048a1143c22f2
    fanzeyi
        4
    fanzeyi  
       2011-05-29 19:05:55 +08:00
    做成插件多好.......
    ratazzi
        5
    ratazzi  
    OP
       2011-05-29 19:12:29 +08:00
    @fanzeyi 这两个功能都是用 objc 写的,是脚本无法完成的功能,如果可能的话后面会改成插件
    fanzeyi
        6
    fanzeyi  
       2011-05-29 20:16:14 +08:00
    @ratazzi 额 主要是插件一般情况下可以跨平台..... =v=
    daqing
        7
    daqing  
       2011-05-29 21:34:09 +08:00
    我在用vim-cocoa,楼主要是能把这些功能移植到vim-cocoa就好了!
    ratazzi
        8
    ratazzi  
    OP
       2011-05-29 21:40:46 +08:00
    @daqing 暂时没有这个想法,抱歉。
    yugushen
        9
    yugushen  
       2011-05-29 22:46:49 +08:00
    @ratazzi 新版本运行正常。简单测试了 Go to File 和 Project Drawer,都没什么问题,功能和限制基本跟 Wiki 上说的一样。

    有个想法,是否有可能做成 SIMBL 插件的形式?因为 Vim 对于添加这种非跨平台的功能非常谨慎,所以你的代码估计很难合并到 MacVim 主支里。做成插件的好处,一个是用户不必重新安装“另一个版本”的 MacVim,还有是每当主版本有更新,插件不需要重新编译。
    ratazzi
        10
    ratazzi  
    OP
       2011-05-30 14:23:38 +08:00
    @yugushen 非常感谢,如果有可能做成插件话那最好不过了,不过现在对 Cocoa 还不熟,目前的两个功能基本也是拼出来的,还不完善,做成插件是下个阶段的任务
    Livid
        11
    Livid  
    MOD
       2011-05-30 14:44:07 +08:00
    非常好。

    如何能够设置忽略的文件扩展名呢?

    比如我不想在 Project Drawer 里显示 *.pyc 和 *.pyo 结尾的文件。
    Livid
        12
    Livid  
    MOD
       2011-05-30 14:48:00 +08:00
    当我打开了 4 个文件时,在 File 菜单下面出现了四个 Go to File。
    ratazzi
        13
    ratazzi  
    OP
       2011-05-30 15:00:47 +08:00
    @Livid 暂时还不可以,后面会加入,感谢报告 bug
    walleve
        14
    walleve  
       2011-06-14 00:11:40 +08:00
    @ratazzi @yugushen
    其实插件是最好的选择,实在不行,做并行的发布包也不是没可能,呵呵,只是维护成本相对比较高
    noahasm
        15
    noahasm  
       2011-06-15 09:39:12 +08:00
    楼主这个 project drawer 很赞, 国外也有人做了类似的修改,但是他的 drawer 是内嵌在 vim window 里的,没有楼主的赞. 可以借鉴参考一下:

    https://github.com/alloy/macvim/
    ratazzi
        16
    ratazzi  
    OP
       2011-06-15 11:00:03 +08:00
    @noahasm alloy 已经发邮件给我,希望我跟它们合并,协作开发,我还没想好
    noahasm
        17
    noahasm  
       2011-06-15 12:31:19 +08:00
    原来 alloy 的 fork 里面有个 file-drawer 的分支, 这个分支最新的版本已经把 drawer 移除改成内嵌的侧边栏了, 但是它以前的版本里面还有, 所以只要:

    git clone git://github.com/alloy/macvim.git
    cd macvim

    git checkout -b file-drawer origin/file-drawer
    git reset --hard d0babab6fd1c48c1cb5f

    修改 src/MacVim/MMFileDrawerController.m
    在第 547 行: [drawer open]; 下加上一行

    [drawer openOnEdge:NSMinXEdge];

    保存, 然后

    ./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --enable-perlinterp --enable-cscope

    make

    然后 open src/MacVim/build/Release/, 把里面的 MacVim.app 拖到你的 Application 文件夹就可以运行它了, 调出 file drawer 可以从 MacVim 的菜单 Window -> Open File Brwoser, 也可按快捷键(菜单里有提示)

    效果如: http://min.us/lEse6
    alloy
        18
    alloy  
       2011-06-17 05:53:42 +08:00
    @noahasm I hope the translation I have is correct :)

    * I understand that you dislike the browser in a sidebar instead of in an actual window drawer. I think a drawer is nicer as well, however, it becomes a problem when using MacVim in fullscreen mode. This will be especially noticeable when Lion comes out, which encourages fullscreen usage.

    * To get the drawer on the left edge of the window you don't need to change the source, but instead set the preference like so: $ defaults write org.vim.MacVim MMDrawerPreferredEdge 1

    Hope this helps :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1391 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:28 · PVG 01:28 · LAX 09:28 · JFK 12:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.