xdz0611
V2EX  ›  macOS

求助 mac 的 terminal 中自定义 ctrl-w 的分隔符

  •  
  •   xdz0611 · Dec 5, 2016 · 3600 views
    This topic created in 3622 days ago, the information mentioned may be changed or developed.

    我试了一下, mac 的终端,不管是 iterm2 还是 terminal , ctrl-w 删除词语时,会把 /作为分隔符。比如cd /var/log/apache2,此时按ctrl-w会变成cd /var/log/。我想变成跟 linux 一样, ctrl-w 就直接删除到 cd 那里。也就是说把 delimeter 中的"/"去掉。我谷歌没有找到搜索结果呢。

    7 replies  •  2016-12-05 22:32:04 +08:00
    thekoc
    thekoc
    Dec 5, 2016
    1
    感觉要从 shell 的层面去做
    imherer
    imherer
    Dec 5, 2016
    2
    不会啊,我刚刚用 terminal 和 iterm2 都试了, control+w 会删完的,只留下 cd 了
    introom
    introom
    Dec 5, 2016 via Android
    3
    你是什么 shell, 不同的 shell 绑定的函数可能不一样,很简单的问题,不要灰心,继续谷歌。
    kfll
    kfll
    Dec 5, 2016
    4
    是不是改 inputrc 了
    zhouzm
    zhouzm
    Dec 5, 2016
    5
    bash 和 zsh 不一样的行为。

    在 zsh 下可以通过修改 WORDCHARS 的值来达到 ctrl-w 和 bash 一样的效果,(注意: alt-backspace 也会同步被改)。

    http://unix.stackexchange.com/a/313812
    mfinal
    mfinal
    Dec 5, 2016
    6
    @zhouzm 说的没错,我试了原生 bash 会删到 cd , zsh 跟楼主说的一样只会到 log/。
    解决方法的话就配置一下就好了吧。
    xdz0611
    xdz0611
    OP
    Dec 5, 2016
    7
    对,没有提到我用的是 zsh ,而且是 on my zsh 插件。
    目测是这个插件各种胡搞导致我自定义的配置没有生效,试了下 WORDCHARS 和那个 autoload 都不行。
    暂时忍忍吧。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4583 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:33 · PVG 17:33 · LAX 01:33 · JFK 04:33
    ♥ Do have faith in what you're doing.