ホットキーは使用できません++matlabで実行 emacsで実行 画面で実行

ホットキーは使用できません++matlabで実行 emacsで実行 画面で実行

一般的な設定では、matlab-emacsを使用してEmacs GUIを介してMatlabを実行します。私はLinuxサーバーでMatlabとemacsを実行し、sshとX転送を使用しているので、これはすべてUbuntuノートブックにローカルで表示されます。

画面でemacsを実行してこの設定をより複雑にしたいと思います。これは、Matlabにコードブロックを実行するように指示するキーボードショートカット++が何もしないように見えるCtrl1つの注目すべき例外で主に機能します。このショートカットを自分のコンピュータのローカルのどこかに転送できますか?このコマンドを実行しようとしたときに、ラップトップ端末の上部にあるメニューバーが変更されたことがわかりました。AltEnter

CtrlMatlabコードブロックを期待どおりに実行するために++を取得する方法について賢明な提案がある人はいますか?AltEnter

答え1

端末はキーではなく文字を送信します。Ctrl+ +Altなどのキーまたはキーの組み合わせを押すと、Enter端末はそれを文字または文字シーケンスに変換する必要があります。すべてのキーを表す文字が不足しているため、これらの組み合わせのほとんどはエスケープ文字で始まる文字シーケンスであるエスケープシーケンスに送信されます。

いくつかの一般的な規則がありますが、エスケープシーケンスの普遍的な標準はありません。たとえば、Alt+ はkey通常、エスケープ文字の後に文字またはエスケープシーケンスを送信します。;しかし、Ctrl+が送信されることに対する標準はありませんEnter。一部の端末は設定可能で、一部の端末にはハードコードされたエスケープシーケンスがあります。

また、見ることができます端末使用時のキーバインディングの問題Xtermのより詳細な説明と可能な解決策を入手してください。

優先端末を介して++を送信できない場合は、Ctrl別のキーバインディングを選択できます。 GUI EmacsでMatlabを使用している場合は、[OK]を押してコマンド++を実行します。次に、コマンド名がどこにあるかを入力すると、どのキーがバインドされているかがわかります。簡単に入力できるバインディングがない場合は、初期化ファイルに次のように追加します。AltEnterCtrlAltEnterC-h c C-M-returnC-h w matlab-foo RETmatlab-foomatlab-foo

(defun my-eval-after-load-matlab ()
  (define-key matlab-mode-map [f9] 'matlab-foo))
(eval-after-load "matlab" '(my-eval-after-load-matlab))

の場合は、"matlab"コマンドを定義するLispファイルの名前に置き換えてくださいmatlab-foo。それが何であるかを調べるには;と入力してくださいC-h k C-M-return。これは、CM-returnが `matlab.el`でインタラクティブにコンパイルされたLisp関数であるmatlab-fooコマンドを実行します。 Lispファイルの名前は、その行の最後の数字からその.el部分を引いた数字です。の場合、matlab-mode-mapキーマップの名前を変更します。これは通常、最後にC-h v major-mode RET追加されたメインモード(「対応する値はmatlab-mode」)の名前です。-map

それとも本当にScreenを使うべきですか? Emacsが切断された状態でも生き残るためにこれを使用する場合は、実際にこれを行う必要はありません。 Emacsをデーモン()で起動し、emacs --daemonSSH経由でリモート接続するために実行して新しいGUIフレームを開きます。emacsclient -c複数のモニターでGUIフレームをオン/オフすることができ、モニターが行き来してもEmacsは引き続き実行されます。

1は実際にはバイトですが、ここでは重要ではありません。

関連情報