Shell(zsh) 变量来定义中断 ctrl+arrow 跳转到

Shell(zsh) 变量来定义中断 ctrl+arrow 跳转到

我可以发誓我曾经看到过一个 zsh 环境变量,它允许你定义休息或者标点Ctrl+RightArrow使用 shell 快捷方式(按单词向前移动)或Ctrl+LeftArrow(按单词向后移动)时将用于跳转到。

为了帮助解释,假设我们有以下命令:
dig A +noall +nocmd some.random.long.domain.us @8.8.8.8 +answer^
我位于该行的末尾,我的光标由 表示^

多次按下Ctrl+Left Arrow快捷键时,光标会跳转到以下每个标记:^
^dig ^A +^noall +^nocmd ^some.random.long.domain.us @^8.8.8.8 +^answer^

现在我不能在我的个人资料中定义一些东西来决定它的期望吗结尾或者开始一个词?

例如,我希望快捷方式能够将句点识别为可以跳转到的点,如下所示:
^dig ^A +^noall +^nocmd ^some.^random.^long.^domain.^us @^8.^8.^8.^8 +^answer^

任何人都熟悉这个变量(如果存在)或者甚至可能是实现此功能的替代方法?

答案1

环境变量名称 可由环境中运行的任何命令访问的字符串变量。 Shell 确实将其中一些映射到其内部变量,perl将它们映射到其%ENV关联数组,awk映射到其ENVIRON关联数组等等。

您通常只为之间共享的内容设置环境变量命令(注意我没有说过程),通常这些是众所周知的变量,对于大多数命令(例如PATH, TZ, LANG...

因此,仅用于自定义当前命令的变量,无论是 shell 还是其他任何东西都应该不是是一个环境变量。

zsh确实有一个特殊的变量,用于指定什么构成单词关于backward-word和小部件在模式下forward-word默认绑定到Alt+bAlt+ ,并且有些人也绑定到+和+ 。femacsCtrlCtrl

这就是WORDCHARS变量(受 cshwordchars变量的启发)。

info zsh WORDCHARS告诉我们:

WORDCHARS<S>
被行编辑器视为单词一部分的非字母数字字符的列表。

也就是说,alnums 始终被视为单词字符,并$WORDCHARS完成该列表。

默认情况下,它具有:

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

您可以使用以下方法删除一些:

WORDCHARS=${WORDCHARS//[\;\/]}

例如删除;/

或者添加一些像你+这样的:

WORDCHARS+=+

另请参阅info zsh select-word-style在不同文字样式之间切换以进行导航的更简单方法。

相关内容