【问题标题】:zsh: stop backward-kill-word on directory delimiterzsh:在目录分隔符上停止向后杀死字
【发布时间】:2010-10-01 11:47:38
【问题描述】:

zsh 中,如何设置行编辑器以使backward-kill-word 在目录分隔符处停止?目前在我的 bash 设置中,如果我输入

cd ~/devel/sandbox

然后点击C-w 点将在devel/ 之后。在我的 zsh 设置中,点位于cd 之后。我想设置 zsh,使其行为类似于 bash。

【问题讨论】:

  • 这可能是 readline 问题,我应该补充...

标签: zsh


【解决方案1】:

对于最新版本的 zsh,您可以简单地添加:

autoload -U select-word-style
select-word-style bash

按照the zsh manual(也称为man zshcontrib)中所述发送到您的zshrc。

【讨论】:

  • 这可能是相当具体的,但如果这不起作用,可能是因为 zsh-syntax-highlighting 插件:github.com/zsh-users/zsh-syntax-highlighting/issues/67。确保在您的 zshrc 末尾获取该插件。
  • 这有效,但只是部分有效,即向前和向后跳转一个单词仍然认为/ 是一个单词的一部分。
  • 啊,我修好了,不管出于什么原因,这两行都应该在文件的开头。
【解决方案2】:

另一种选择是将WORDCHARS(非字母数字字符视为单词的一部分)设置为不包含/ 的内容。

如果您希望 ^w 在点、下划线等处中断,您也可以对此进行调整。在 ~/.zshrc 我有:

WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'

【讨论】:

  • 最简单、最灵活的选择。谢谢!
  • 我在手册中找不到明确提到的这一点,但是将WORDCHARS 设置为空字符串(即:将行WORDCHARS= 添加到.zshrc)具有相同的效果。
  • 空字符串不包含/?
  • 我不想硬编码$WORDCHARS,所以我用WORDCHARS=${WORDCHARS/\/} 去掉了斜线。
  • 只要WORDCHARS= imo 效果最好
【解决方案3】:

一个快速的谷歌揭示:

Backward Kill

或者,也许是更好的解决方法:

Bash Style Backward Kill

【讨论】:

  • 对于未来的读者:其他两个答案都更好,更容易。
  • 不鼓励仅链接的答案,因为链接可能会失效。请在您的答案中包含相关部分
  • 不是一个好的答案,而且还很尖刻“你所要做的就是用谷歌搜索解决方案”。我会投反对票。
猜你喜欢
  • 2021-05-21
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多