我正在寻找一个键盘快捷键,tcsh
将光标移回上一个空白:not ESC+B这会让我返回一个单词(例如,在路径参数中,到上一个路径组件) - 我想到达上一个空间或当前路径的开始。
答案1
如果您指的是交互式 shell 提示下的键盘快捷键bash
,则可以将shell-backward-word
和绑定shell-forward-word
到在按下某个键或组合键时发送的某些字符序列。
就像如果按在终端上Ctrl-Left发送序列\e[1;5D
一样xterm
,您可以这样做:
bind '"\e[1;5D": shell-backward-word'
bind '"\e[1;5D": shell-backward-word'
请注意,它不会从一个空白跳转到另一个空白,而是考虑 shell 引用。例如,在这样的行中
echo "foo 'bar baz' blah/bleh bloh
^ ^ ^ ^
它将跳转到上面标记的位置。
编辑:对于tcsh
,您有三个选择:
使用与上述定义等效的
bash
in~/.cshrc
或 in/etc/csh.cshrc.local
来为所有用户带来好处。bindkey '\e[1;5D' backward-word bindkey '\e[1;5C' forward-word
使用
vi
模式(带有bindkey -v
),并在正常模式下使用B
和W
键,就像在中一样vi
。在
emacs
模式(默认,使用 重新启用bindkey -e
)中,如 forbash
,绑定相应的小部件(vi-word-back
和vi-word-fwd
):bindkey '\e[1;5C' vi-word-fwd bindkey '\e[1;5D' vi-word-back
请注意,这些类似于vi
'sB
和W
,因此它们用于在空白分隔的单词之间跳转,而不是像bash
上面的解决方案中那样的 shell 标记(如带引号的字符串)。
答案2
我想你想要CTRL-B
在 bash 中将光标向后移动一个字符。CTRL-f
然后会让你向前移动。这是一个快速参考对于这些快捷方式。
答案3
“ESC-左箭头:转到左单词的开头”bindkey ^[^[[D vi-word-back
例如: cd a/b/c/d ESC+left 会将您从行尾带到“cd”和“a”之间的空格