“在终端中”我假设您的意思是您正在运行 Emacs 的内置终端仿真器。通常,终端仿真器将大多数键完全按照键入的方式传输到 shell 进程。键入C-c C-j终端缓冲区以将其置于普通 Emacs 键绑定可用的状态。您会看到模式行从(Term: char run)
变为(Term: line run)
。
附录:
在不离开 char 模式的情况下拖动文本有点棘手;然而,相关函数是term-paste
(not yank
,它只是将文本插入终端缓冲区而不将其发送到下级进程)。 term-paste
将立即将最近的 kill 发送到下级进程,但不提供您可能习惯的花哨的 yank 功能(例如M-y循环通过先前的 kill)。您可以term-paste
作为扩展命令运行:C-c M-x term-paste RET.
可能最简单的解决方案是当您有要粘贴的内容时暂时进入行模式 ( C-c C-j),然后立即回到字符模式 ( C-c C-k)。或者更简单,只需始终保持在线模式即可。当我将终端登录到 Oracle SQL*Plus 会话时,我经常这样做。我很少注意到差异,但我得到了各种方便的 Emacs 功能,比如能够键入M-p以循环通过以前键入的长 SQL 语句。
我会假设你总是可以像这样以线路模式开始:
(add-hook 'term-mode-hook 'term-line-mode)
...但这对我不起作用。不知道为什么。