查看源代码 tty - 命令行接口

tty 是一个简单的命令行界面程序,用于收集和解释按键。完成的行会被发送到 shell 进行解释。一个简单的历史记录机制会保存之前的行,这些行可以在发送到 shell 之前进行编辑。tty 在使用以下命令启动 Erlang 时启动

erl

tty 在几种不同的模式下运行

  • 正常模式,可以在其中编辑文本行并将其发送到 shell。
  • 搜索模式,用户可以在历史缓冲区中搜索以前的命令。
  • Shell 中断模式,允许用户终止当前 shell,启动多个 shell,等等。

正常模式

在正常模式下,用户的按键由 tty 收集和解释。支持大多数 Emacs 行编辑命令。以下是支持的行编辑命令的完整列表。

排版约定

  • C-a 表示同时按下 Ctrl 键和字母 a
  • C-S-a 表示同时按下 Ctrl 键、Shift 键和字母 a
  • M-f 表示依次按下 Esc 键和字母 f,或者同时按下 Alt 键和字母 f
  • HomeEnd 表示键盘上具有相同名称的键。
  • LeftRightUpDown 表示相应的箭头键。
  • 当一个功能有多个可能的按键序列时,它们会在 按键序列 列中单独列出。
按键序列功能
Home行首
C-a行首
C-b后退字符
C-LeftM-Left后退单词
M-b后退单词
C-d删除字符
M-d删除单词
End行尾
C-e行尾
C-f前进字符
C-RightM-Right前进单词
M-f前进单词
C-g进入 shell 中断模式
C-k删除整行
C-u向后删除整行
C-l清除屏幕
M-c清除当前表达式
M-l重绘行
C-n从历史缓冲区中获取下一行
C-oM-o使用环境变量 VISUALEDITOR 中指定的编辑器编辑当前行。如果需要,环境变量可以包含编辑器的参数,例如 VISUAL="emacs -nw"。在 Windows 上,编辑器不能是基于控制台的编辑器。
C-p从历史缓冲区中获取上一行
M-r使用 shell:format_shell_func/1 格式化当前表达式
C-r进入搜索模式,然后在 shell 历史记录中向后搜索
C-s在搜索模式下,在 shell 历史记录中向前搜索
C-t交换字符
C-w向后删除单词
C-y插入先前删除的文本
C-]插入匹配的右括号
C-UpM-Up在编辑多行时向上导航一行
C-DownM-Down在编辑多行时向下导航一行
M-Enter在光标处插入新行
M-<M-S-Up导航到当前表达式的开头
M->M-S-Down导航到当前表达式的末尾
TabC-i自动完成当前表达式,或显示完成建议
M-c清除当前表达式
M-h显示光标左侧最近的模块或函数的帮助信息。
PageUp向上滚动展开、搜索或帮助缓冲区 5 行。
PageDown向下滚动展开、搜索或帮助缓冲区 5 行。

表格:tty 文本编辑

Shell 中断模式

在此模式下,可以执行以下操作

  • 终止或挂起当前 shell
  • 连接到已挂起的 shell
  • 启动新的 shell