谷歌搜索,我只能找到如何在这两者之间切换,但没有描述它们是什么。
那么,什么是字符模式和行模式?常规 shell 通常处于什么模式?
答案1
正如在您链接的页面:
在行模式下,Term 的行为基本上类似于 Shell 模式(请参阅外壳模式)。在字符模式下,每个字符都直接发送到子shell,除了术语转义字符(通常是抄送)。
在行模式下,它读取整行并允许对其进行各种 emacs 编辑操作,然后在完成后立即将其发送到进程(按Enter)。在字符模式下,只要您按下按键,每个字符都会被发送 - 处理行、编辑等取决于终端中运行的进程,例如您的 shell。
为什么您可能想使用其中一种而不是另一种?行模式允许您对编写的内容执行 Emacs 编辑操作、累积多行以一次发送,以及在 Emacs 中对文件名执行制表符补全。请参阅shell模式下的命令列表了解详情。字符模式允许您使用底层进程的所有功能,例如它自己的(可能更好)制表符补全,而不是 Emacs 操作,并且还可以发送 Emacs 会解释为引用其自己的命令的输入(例如Ctrl-X)。如果您想vim
在里面运行,这也是您想要的模式emacs
。
普通终端的操作相当于字符模式。