hai*_*mon 4 keyboard-shortcuts tcsh line-editor
我正在寻找一个键盘快捷键tcsh
来将光标移回前一个空白处:不是ESC+B它将我带回一个单词(例如,在路径参数中,到上一个路径组件)-我想回到上一个空间或当前路径的开始。
如果您指的是交互式bash
shell提示下的键盘快捷键,您可以将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'
Run Code Online (Sandbox Code Playgroud)
请注意,它不会从空白跳到空白,而是考虑 shell 引用。所以例如在一行中
echo "foo 'bar baz' blah/bleh bloh
^ ^ ^ ^
Run Code Online (Sandbox Code Playgroud)
它会跳到上面标记的位置。
编辑: for tcsh
,您有三个选择:
使用与上述bash
定义等效的in~/.cshrc
或 in/etc/csh.cshrc.local
来为所有用户提供好处。
bindkey '\e[1;5D' backward-word
bindkey '\e[1;5C' forward-word
Run Code Online (Sandbox Code Playgroud)使用vi
模式(with bindkey -v
)并在正常模式下使用B
和W
键,就像在 中一样vi
。
在emacs
模式(默认,重新启用bindkey -e
)像 for bash
,绑定相应的小部件(vi-word-back
和vi-word-fwd
):
bindkey '\e[1;5C' vi-word-fwd
bindkey '\e[1;5D' vi-word-back
Run Code Online (Sandbox Code Playgroud)请注意,它们类似于vi
'sB
和W
,因此它们用于在空白分隔的单词之间跳转,而不是像bash
上面的解决方案那样的 shell 标记(如带引号的字符串)。