V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
sunhang09
V2EX  ›  Linux

Linux 终端中从此告别枯燥频繁的 cd

  •  1
     
  •   sunhang09 · 2023-08-09 12:02:44 +08:00 · 4885 次点击
    这是一个创建于 499 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在 linux shell 终端上调试一些项目,要经常切换目录路径,频繁 cd 。 使用 C++和 shell 编写了一工具,该工具在 linux shell 终端上管理目录路径,自定义的 pa 命令方便快捷地到达某一指定的目录中,从此告别频繁枯燥地来回 cd 。

    https://www.bilibili.com/video/BV1TN411a7wM/?vd_source=a643cd4183fb58a03eec1afd594fa3f1#reply489385339

    代码仓库在评论区。欢迎提出各种问题。

    34 条回复    2023-08-19 22:46:37 +08:00
    k9982874
        1
    k9982874  
       2023-08-09 12:07:10 +08:00 via Android
    z???
    lixiang2017
        2
    lixiang2017  
       2023-08-09 12:08:57 +08:00 via Android
    auto-jump, j?
    sunhang09
        3
    sunhang09  
    OP
       2023-08-09 12:18:27 +08:00
    不是的,是自己写的命令。pa 命令。paths-mgr 的缩写
    @lixiang2017
    sunhang09
        4
    sunhang09  
    OP
       2023-08-09 12:18:42 +08:00
    @k9982874 这是啥?
    msg7086
        5
    msg7086  
       2023-08-09 12:22:15 +08:00
    @sunhang09 zsh-z
    chotow
        6
    chotow  
       2023-08-09 12:31:06 +08:00 via iPhone   ❤️ 5
    这个 pa ,我第一眼以为是……
    啪的一下就切换目录了,很快啊!
    lyyQAQ
        7
    lyyQAQ  
       2023-08-09 12:32:01 +08:00
    @sunhang09 #4 zsh 的一个自带插件,它会记录所有你去过的路径,下次再去的时候输入 `z [你去过的路径的一部分]`就可以直接过去
    比如我有一个目录
    `/home/ubuntu/tools/clash/`
    我 cd 进去过一次之后,下次不管我在哪里,我直接输入`z cl`就会跳过去。

    @lixiang2017 说的 autojump 也是一个 zsh 插件,功能和 z 类似
    nightwitch
        8
    nightwitch  
       2023-08-09 12:32:56 +08:00 via Android
    虽然发明轮子的精神可嘉。但是社区太多类似的久经考验的项目了。z.sh ,autojump 等等太有名了
    yarnom
        9
    yarnom  
       2023-08-09 12:33:53 +08:00 via Android
    挺好的,相当于常用路径,但是我可能会更倾向直接使用 ln 命令,或者 nnn 或 ranger 这类终端文件管理器
    israinbow
        10
    israinbow  
       2023-08-09 12:38:27 +08:00   ❤️ 2
    @sunhang09 #4 zoxide, 全平台的, 我在 windows 和 mac 上也在用. https://github.com/ajeetdsouza/zoxide
    deplivesb
        11
    deplivesb  
       2023-08-09 12:43:50 +08:00
    重复造轮子
    tool2d
        12
    tool2d  
       2023-08-09 12:54:15 +08:00
    挺好的,搞的我也想写一个了。

    主要是人懒,不想打字,就想用上下左右箭头。

    我发现自己的服务器上,bash_history 里重复的命令,能占到 80%,但是每次 ssh 后,都要重复输入一次。做成快捷方式就快多了。
    NessajCN
        13
    NessajCN  
       2023-08-09 13:13:00 +08:00
    alias zcl='cd ~/tools/clash' ?
    Alias4ck
        14
    Alias4ck  
       2023-08-09 13:24:30 +08:00
    重复造轮子精神可嘉 但是有可能别人的轮子,功能更多更好 比如 zoxide 哈哈哈🤣
    sunhang09
        15
    sunhang09  
    OP
       2023-08-09 13:35:12 +08:00
    @chotow 你这么一说,我感觉这个名字起错了,很污的感觉
    fxxkgw
        16
    fxxkgw  
       2023-08-09 13:37:03 +08:00 via Android
    pushd popd ?
    mineralsalt
        17
    mineralsalt  
       2023-08-09 13:43:35 +08:00
    zsh 有个 autojump 的插件, 和你的功能应该是一样的吧
    deepwaka
        18
    deepwaka  
       2023-08-09 13:57:52 +08:00
    @chotow 有 bear 来
    66z
        19
    66z  
       2023-08-09 15:02:38 +08:00
    学到了
    zoxide 很好用
    eggt
        20
    eggt  
       2023-08-09 15:53:16 +08:00
    @lyyQAQ 自带这个吗,为啥我这个提示
    ➜ Desktop z home
    zsh: command not found: z
    sunhang09
        21
    sunhang09  
    OP
       2023-08-09 16:53:31 +08:00
    @Alias4ck 收到了 1+打击,哈哈
    sunhang09
        22
    sunhang09  
    OP
       2023-08-09 16:53:54 +08:00
    @fxxkgw 这个感觉不太好用
    wildman9527
        23
    wildman9527  
       2023-08-09 20:33:21 +08:00
    @chotow #6 趁路径不注意, 偷袭~, 不讲武德!
    acerphoenix
        24
    acerphoenix  
       2023-08-09 23:23:08 +08:00
    我最早用 autojump ,然后用 z.lua, 现在用 zoxide ,主要是配合 lf 就它跑通了。
    proxytoworld
        25
    proxytoworld  
       2023-08-10 02:17:24 +08:00
    @eggt 手动安装
    james122333
        26
    james122333  
       2023-08-10 07:18:38 +08:00 via Android
    这种东西特地用其它语言写是不好的
    两种方法是不错的 一种是将目录位置存为变量 不论是命令呼叫还是参数补全皆可用(目录下目录或档案) 因为有 glob bash 通常用这种方式 虽然不是太好但可以接受 也可以使用 shopt -s direxpand 按下 tab 后将变量转为位置
    另一种是 zsh 有提供的 非常好的功能
    hash -d abc=/etc (将位置 hash 起来)
    hash -d (列出所有位置希哈过的)
    cd ~abc (这行与 bash 变量类似 命另呼叫参数皆可 自带 direxpand bash 无此功能因~指向/home)

    一堆搞 plugin 其实都做的太过头了 我也一直觉得那些 plugin 很烂
    james122333
        27
    james122333  
       2023-08-10 07:35:30 +08:00 via Android
    @james122333

    搞错没有自带 direxpand...
    eggt
        28
    eggt  
       2023-08-10 08:33:30 +08:00
    @proxytoworld 名字叫啥?
    lyyQAQ
        29
    lyyQAQ  
       2023-08-10 09:06:01 +08:00
    @eggt #20 zshrc 里,plugins 里面加上 z 呢,我记得这个是自带的
    proxytoworld
        30
    proxytoworld  
       2023-08-10 14:38:26 +08:00
    @eggt
    @lyyQAQ

    ohmyzsh z
    koebehshian
        31
    koebehshian  
       2023-08-10 23:38:47 +08:00
    不会多开几个 tab ?
    xddddx
        32
    xddddx  
       2023-08-10 23:42:47 +08:00
    zinit+zoxide 或者 ranger 之类的终端文件管理器
    wizardyhnr
        33
    wizardyhnr  
       2023-08-11 04:11:19 +08:00
    快速跳转目录执行命令还是用 ranger 吧,一步到位。另外如果要频繁在几个目录间切换执行命令,我更愿意多开几个 tab 。
    ihackevin
        34
    ihackevin  
       2023-08-19 22:46:37 +08:00
    ctrl+r ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5176 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:01 · PVG 17:01 · LAX 01:01 · JFK 04:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.