「ターミナル内」とは、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。
おそらく最も簡単な解決策はC-c C-j、貼り付けるものがあるときに一時的に行モード()に切り替えてから、すぐに文字モード()に戻ることC-c C-kです。または、さらに簡単に、常にラインモードを維持します。これは、端末をOracle SQL*Plusセッションにログインさせているときによく行います。違いに気付くことはめったにありませんがM-p、以前に入力した長いSQLステートメントを循環するように入力できるなど、あらゆる種類の便利なEmacs機能を利用できます。
私はあなたがいつでもこのようなラインモードで始めることができると仮定したでしょう:
(add-hook 'term-mode-hook 'term-line-mode)
...しかし、それは私にはうまくいきません。理由はわかりません。