tcsh 快捷方式将光标移回上一个空间

tcsh 快捷方式将光标移回上一个空间

我正在寻找一个键盘快捷键,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,您有三个选择:

  1. 使用与上述定义等效的bashin~/.cshrc或 in/etc/csh.cshrc.local来为所有用户带来好处。

    bindkey '\e[1;5D' backward-word
    bindkey '\e[1;5C' forward-word
    
  2. 使用vi模式(带有bindkey -v),并在正常模式下使用BW键,就像在中一样vi

  3. emacs模式(默认,使用 重新启用bindkey -e)中,如 for bash,绑定相应的小部件(vi-word-backvi-word-fwd):

    bindkey '\e[1;5C' vi-word-fwd
    bindkey '\e[1;5D' vi-word-back
    

请注意,这些类似于vi'sBW,因此它们用于在空白分隔的单词之间跳转,而不是像bash上面的解决方案中那样的 shell 标记(如带引号的字符串)。

答案2

我想你想要CTRL-B在 bash 中将光标向后移动一个字符。CTRL-f然后会让你向前移动。这是一个快速参考对于这些快捷方式。

答案3

“ESC-左箭头:转到左单词的开头”bindkey ^[^[[D vi-word-back

例如: cd a/b/c/d ESC+left 会将您从行尾带到“cd”和“a”之间的空格

相关内容