V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
viko16
V2EX  ›  分享创造

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

  •  
  •   viko16 ·
    viko16 · 2018-12-28 00:30:38 +08:00 via Android · 4663 次点击
    这是一个创建于 2162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能很简单:

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

    好处是:

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

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

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

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

    第 1 条附言  ·  2018-12-28 12:29:42 +08:00

    更新了一下安装文档,现在启用应该简单多了🤣,就两步走:(参考了 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
    Sunnyyoung
        1
    Sunnyyoung  
       2018-12-28 00:44:06 +08:00 via iPhone   ❤️ 1
    不错,感谢分享
    RYAN0UP
        2
    RYAN0UP  
       2018-12-28 01:08:46 +08:00 via Android
    nice,感谢!
    9527tech
        3
    9527tech  
       2018-12-28 08:43:58 +08:00 via Android
    不错,感谢
    wubaiqing
        4
    wubaiqing  
       2018-12-28 12:00:35 +08:00
    不错。
    yuanfnadi
        5
    yuanfnadi  
       2018-12-28 12:50:59 +08:00 via iPhone
    projj 开源的 你可以试试看
    yuanfnadi
        6
    yuanfnadi  
       2018-12-28 12:52:55 +08:00 via iPhone
    projj add 添加项目到目录
    projj find 查找之前的项目

    https://github.com/popomore/projj
    viko16
        7
    viko16  
    OP
       2018-12-28 13:12:02 +08:00
    @yuanfnadi #6
    谢谢,贯高大佬 projj 我也用过,甚至还造过类似的轮子😂 https://github.com/viko16/tidy-repo

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

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

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

    不过我后来放弃这种不完美方案了,感觉过于黑科技🙈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5787 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 03:24 · PVG 11:24 · LAX 19:24 · JFK 22:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.