12

Emacsで実行されているターミナルにテキストをヤンクできません。

これが私の手順です:

あるバッファから文字列「date」を強制終了し、別のバッファの端末にヤンクしてreturnキーを押しました。

端末は、何も入力していないかのように動作します。プロンプトを返すだけです。

OSX10.5.8とEmacs23.1を使用しています。Aquamacs、Carbon Emacs、およびhttp://emacsformacosx.com/からのリリースでこの手順を試しました。.emacsファイルが空のデフォルト構成でも、これらはすべてこの奇妙な動作を示します。何がこれを引き起こしている可能性がありますか?

4

3 に答える 3

16

「ターミナル内」とは、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)

...しかし、それは私にはうまくいきません。理由はわかりません。

于 2010-06-05T03:54:10.793 に答える
1

ターミナルが実行されているバッファで、 を使用してターミナルをライン モードにしC-c C-jます。テキストを貼り付けるには、ここで押しますS-Insert(Shift-Insert です)。後で端末を char モードに戻す必要がある場合は、C-c C-k.

于 2010-08-17T11:39:29.540 に答える
-1

他のすべてが失敗した場合、テキストを強調表示して[編集]-> [コピー]をクリックし、次に他のemacsバッファーを右クリックして[貼り付け]をクリックします。

于 2010-06-05T04:30:29.700 に答える