Под "в терминале" я предполагаю, что вы имеете в виду, что вы используете встроенный в Emacs эмулятор терминала. Обычно эмулятор терминала передает большинство ключей в точности так, как они введены в процесс оболочки. Введите C-c C-j в буфере терминала, чтобы перевести его в состояние, в котором доступны обычные привязки клавиш Emacs. Вы увидите изменение строки режима с (Term: char run)
на (Term: line run)
.
Добавление:
Немного дергать текст, не выходя из режима char; соответствующая функция, однако, это term-paste
(не yank
, которая просто вставляет текст в буфер терминала, не отправляя его в подчиненный процесс). term-paste
немедленно отправит самое последнее уничтожение низшему процессу, но не предоставляет такую функциональность янки, к которой вы, вероятно, привыкли (например, M-y для циклического повторения предыдущих убийств). Вы можете запустить term-paste
как расширенную команду: C-c M-x term-paste RET .
Вероятно, самое простое решение - просто временно перейти в линейный режим ( Cc Cj ), когда вам нужно что-то вставить, а затем сразу же вернуться в режим символов ( Cc Ck ) , Или даже проще, просто оставайтесь в режиме линии все время. Я часто делаю это, когда терминал подключен к сеансу Oracle SQL * Plus. Я редко замечаю разницу, но получаю всевозможные удобные функции Emacs, например возможность набирать M-p для циклического выполнения длинного, ранее набранного SQL-оператора.
Я бы предположил, что вы всегда можете начать в линейном режиме, например:
(add-hook 'term-mode-hook 'term-line-mode)
... но у меня это не работает. Не знаю почему.