Shell:当你在屏幕内时如何去行首?

use*_*498 83 linux keyboard-shortcuts gnu-screen

我在屏幕内(屏幕 -Ra)。我有一个很长的命令,我在最后。而不是保持左箭头,你怎么能去到行的开头?

当我在普通窗口中时,CTRL-A 起作用,但是当我在屏幕内时,按 CTRL-A 会给我一条消息“没有其他窗口” - 似乎 CTRL-A 被分派到屏幕上。

你如何转到屏幕中一行的开头?

ang*_*gus 92

使用Ctrl- a a,或更改屏幕的转义键击(选项-e)。

  • 如果不清楚你按`Ctrl`-`a`,松开两个键,然后按`a`。不要犯我在按住 Ctrl 键时犯的同样的错误。这个和其他键绑定的好参考卡:http://aperiodic.net/screen/quick_reference (8认同)

Tan*_*n六四 12

Ctrl- x- Ctrl-x允许您转到任何与 readline 兼容的环境(如 Bash、python 和 mysql)的行的第一个字符。GNU SCREEN 安全地忽略了这一点。无需自定义配置。

如果你使用它而不是Ctrl- a- a,你使用的是一致的快捷键 - 你不必记住你是否在 GNU SCREEN 中。

对于任何感兴趣的人,如果您已经在开头,同样的快捷键还可以让您转到行尾。

  • 实际上,`Cx Cx` 是`exchange-point-and-mark`。默认情况下,标记恰好位于行的开头。您可以使用 `C-space` 在其他地方设置标记。 (8认同)

小智 6

您可以更改screen绑定,也可以更改 shell 的绑定。假设您的 shell 是bash, 的输出bind -p | grep \C-a应该为您提供绑定到的当前操作Ctrl+A。要将此操作绑定到其他操作,请使用以下形式:

$ bind '"\C-p": beginning-of-line'
Run Code Online (Sandbox Code Playgroud)

这将绑定Ctrl+P以将光标移动到行的开头。记住表达式中的双引号。要取消绑定,您只需将其设置为空即可:

$ bind '"\C-a": '
Run Code Online (Sandbox Code Playgroud)

要列出与操作关联的所有输入序列,请使用:

$ bind -p | grep beginning-of-line
Run Code Online (Sandbox Code Playgroud)

最后,要使绑定永久化,您可以将语句放在~/.bashrc文件中并发出source ~/.bashrc.