我有一个像这样的zle:
function _ctrl-shift-left() {
((REGION_ACTIVE)) || zle set-mark-command # Selection
zle backward-word
}
zle -N _ctrl-shift-left
bindkey '^[[1;6D' _ctrl-shift-left # Ctrl+Shift+Left to select till the beginning of the previous word.
例如下面的命令
$ curl -s "https://samplesite.com/101146/07/data-processing/13/?#/101146-132519042909.html" | grep -oP 'https://dl\d*\.samplesite\.com/Files/[^"]+\.rar' | sed 's/\?nocache=[^&]*//g'
当我按下时ctrl-shift-left,我想将光标停在'
和处"
。
我怎样才能做到这一点?
默认情况下,对于
backward-word
所有单词运动/动作小部件,单词都是字母数字字符加上中的字符$WORDCHARS
(类似于$wordchars
tcsh 的),但您也可以使用select-word-style
自动加载功能来更改单词的定义。将会改变单词的定义:
所以在你的
backward-word
将带您前往上面标有的地方⇑
。这不完全是你想要的,因为它不会停止,
"
但[^"]
我怀疑这可能是你真正想要的。还可以使用该
select-word-style
函数制作一个小部件并将其绑定到某些组合键以交互方式选择单词样式:然后按Alt+z将显示此提示:
更多详细信息:
或者,您可以指定在 zle 小部件
shell
的上下文中使用 word-style_ctrl-shift-left
:或者可能更接近你的要求:
仅跳转到
'
和"
字符。楼主在这里。与此同时,我已经想出了一个解决方案,如何使用“如何让 zsh vi 风格的命令尊重 WORDCHARS?”
代码如下: