在 tcsh shell 中如何在命令提示符中找到特定单词?

在 tcsh shell 中如何在命令提示符中找到特定单词?

CTRL+A假设我的命令提示符中有以下行,并且光标位于该行的和处或使用 ( )位于该行的开头

[subhrcho@slc04lyo pcbpel]$ abc def ghi jkl

我如何导航到特定单词,例如 to def。我在用tcsh壳里操作系统我认为默认绑定是emacs模式。

MetaPS:我的键盘上没有按键。我可以CTRL+f分别使用 和 在单词之间向前或向后移动。所以我认为我的Meta钥匙就是Esc钥匙。请如果这个假设是错误的,请纠正我Alt 也不能用作元键.我看了一下emacs 文档但调用CTRL-s w然后按下Enter对我来说不起作用。它只是尝试通过首先w向其附加一个字符来执行提示中的任何内容,并且提示会显示:

[subhrcho@slc04lyo pcbpel]$ abc def ghi jklw
abc: Command not found.

答案1

ByMeta-x tcsh意味着它需要ESCASCII 字符(又名^[\e),后跟x。您始终可以通过按顺序快速按Escape和来完成此操作x,或者某些终端通过按 来完成此操作Alt-x

x其他一些终端按 时会发送第 8 位设置的字符Alt-x。使用xterm,您可以通过添加以下内容来更改:

XTerm*metaSendsEscape: true

到 X11 资源文件。

现在,为了在 中搜索tcsh,如果您想模拟emacs/zsh Ctrl-RCtrl-S模式emacs,则必须绑定i-search-backi-search-fwd小部件:

bindkey '^R' i-search-back
bindkey '^S' i-search-fwd

但请注意,对于终端驱动程序来说,通常^Sstop暂停终端输入和输出的字符(使用 恢复^Q)。因此,如果您想绑定^S,则必须通过禁用流量控制来禁用它:

stty -ixon

或者绑定stop到其他一些字符:

stty stop '^T'

相关内容