首页   æ³¨å†Œ   ç™»å½•
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  ç™»å½•
爱意满满的作品展示区。
V2EX  â€º  分享创造

👷自荐一个 oh-my-zsh 插件: gitcd

  •  
  •   viko16 · 115 天前用 Android 发布 · 2192 次点击
    这是一个创建于 115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能很简单:

    • 一键 git clone 到规则目录下,并 cd 过去那个目录
    • 如果已经存在了,直接 cd 过去

    好处是:

    1. 不用考虑是否曾经 clone 过了
    2. 不用考虑之前存到哪里了
    3. 直接 cd 过去,省时省力

    由于我有管理大量仓库的需要,所以写了这个小脚本来满足个人需求。如果你也有同样的需要,推荐你也尝试一下😌 整体实现也就 50 行不到~

    GitHub: https://github.com/viko16/gitcd.plugin.zsh

    目前作为 custom plugin 安装有点复杂,研究下怎么提交到原库🤔

    第 1 条附言  Â·  115 天前

    更新了一下安装文档,现在启用应该简单多了🤣,就两步走:(参考了 zsh-autosuggestions)

    1. Clone 到 $ZSH_CUSTOM/plugins 目录下 (默认是 ~/.oh-my-zsh/custom/plugins)

      git clone https://github.com/viko16/gitcd.plugin.zsh ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/gitcd
      
    2. 然后在 ~/.zshrc 的插件列表里加上 gitcd

      plugins=(gitcd)
      
    12 回复  |  ç›´åˆ° 2018-12-28 14:59:11 +08:00
        1
    Sunnyyoung   115 天前 via iPhone   ♥ 1
    不错,感谢分享
        2
    RYAN0UP   115 天前 via Android
    nice,感谢!
        3
    9527tech   115 天前 via Android
    不错,感谢
        4
    wubaiqing   115 天前
    不错。
        5
    yuanfnadi   115 天前 via iPhone
    projj 开源的 你可以试试看
        6
    yuanfnadi   115 天前 via iPhone
    projj add 添加项目到目录
    projj find 查找之前的项目

    https://github.com/popomore/projj
        7
    viko16   115 天前
    @yuanfnadi #6
    谢谢,贯高大佬 projj 我也用过,甚至还造过类似的轮子😂 https://github.com/viko16/tidy-repo

    只不过后来明白了 node script 是无法修改父进程环境的,也就是没办法通过 node 实现 cd 到指定目录的能力。
    所以我最终还是选择返璞归真用 zsh 简单实现了一遍最基础的功能(结果发现几十行就搞定了)

    参考文档: https://stackoverflow.com/a/37624361
        8
    yuanfnadi   115 天前 via iPhone
    @viko16 你说的那个功能我提交 PR 已经实现了。不过只支持 Mac。原理是 node 调用 app script 控制命令行。
        9
    yuanfnadi   115 天前 via iPhone
    @viko16 不过好像一直没有 push 新版本,需要自己 npm link。
        10
    viko16   115 天前
    @yuanfnadi #8
    思路一致😂https://github.com/viko16/tidy-repo/commit/2e61128eb29d6762d0ad86ccc91c1420b2c71e10

    如果 projj 没发版的话,在 PR 下问一下呗
        11
    yuanfnadi   114 天前
    @viko16 思路完全一致。不过你可以看一下 projj 的 pr 记录。tell application iterm。如果没有安装的话就会报错。
    后来我是通过 node -> bash -> applescript 才解决的问题。
        12
    viko16   114 天前
    @yuanfnadi #11 的确是考虑不周了,但是可以直接用 try catch 兜底?

    不过我后来放弃这种不完美方案了,感觉过于黑科技🙈
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3826 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 05:57 · PVG 13:57 · LAX 22:57 · JFK 01:57
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1