私はemacsを使うたびに、カーソルを動かすために矢印キーを使います。しかし、私が画面内でemacsを実行しているときに、emacsをバックグラウンド(ctrl-Z)に押してからフォアグラウンドに戻すと、矢印キーは機能しません。「スクリーン」は、^ Zの後でemacsの矢印キーをどうにか解きます。
M-[ a is undefined
この現象は、画面外でemacsを実行しているときには発生しません。
アイデア?これは画面の設定ですか?
私はemacsを使うたびに、カーソルを動かすために矢印キーを使います。しかし、私が画面内でemacsを実行しているときに、emacsをバックグラウンド(ctrl-Z)に押してからフォアグラウンドに戻すと、矢印キーは機能しません。「スクリーン」は、^ Zの後でemacsの矢印キーをどうにか解きます。
M-[ a is undefined
この現象は、画面外でemacsを実行しているときには発生しません。
アイデア?これは画面の設定ですか?
スクリーン(と他のほとんどすべての端末エミュレータ)がエミュレートするvt100端末には、通常モードとアプリケーションモードという2つのモードがあります。通常モードは、行単位アプリケーションとフルスクリーンアプリケーションのアプリケーションモードで使用されます。モードの違いの中で、矢印キーがdifferent control sequences(私にはわからない)を送信するということです。全画面モードではESC O A
、通常モードではESC [ A
です。 Ctrl + Zを押すと、Emacsは端末を通常モードに戻しますが、フォアグラウンドに戻すと、再びフルスクリーンモードに切り替わりません。あるいは、画面がEmacsに反応しないようですコマンドが正しく実行されます。
可能な回避策の1つは.screenrc
の両方のモードでbind the same character sequencesです。
bindkey -k ku stuff ^[OA
bindkey -k kd stuff ^[OB
bindkey -k kr stuff ^[OC
bindkey -k kl stuff ^[OD
もう1つの考えられる回避策は、Emacsに、ターミナルの内容にかかわらず、両方のキーシーケンスを解釈するように指示することです。いくつかの端末がこれらのキーシーケンスを異なるキーに使用する可能性があるため、これは原則として悪い考えですが、私はこのような互換性のない端末に遭遇したことはありません。
(define-key function-key-map "\eOA" [up])
(define-key function-key-map "\e[A" [up])
(define-key function-key-map "\eOB" [down])
(define-key function-key-map "\e[B" [down])
(define-key function-key-map "\eOC" [right])
(define-key function-key-map "\e[C" [right])
(define-key function-key-map "\eOD" [left])
(define-key function-key-map "\e[D" [left])
真の解決策には、問題の原因を見つけることが含まれます。これはScreenのバグ、Emacsのバグ、Screenが実行されている端末(エミュレータ)のバグ、termcapやterminfoデータベースのバグや設定ミスかもしれません。これを調べるには、オペレーティングシステム、何の端末(エミュレータ)のスクリーンが実行されているのか、スクリーンを入手したのか(それをどうコンパイルしたのか、それが何であるのか)、そしてバージョンEmacsは、Screenの外で同じ問題が発生したかどうかに関係なく、Screen内にecho $TERM
とecho -E "$TERMCAP"
の出力を出力します。何が価値があるために
、これはちょうど私に起こった、と私は画面から切断してから再接続して、それを修正することができました:
はCtrl + A、D
画面-R
それは魅力的です。私のために働いた。 –
Worked for me too(Debian Wheezy + LXTerminal + emacs 23) –
これは私がemacsを終了して画面から切り離し、画面に再接続してemacsを再起動した場合にのみ私にとってはうまくいきました。あなたがemacsにいる場合は、画面を終了するときに動作しません(私のためではなかった) – juacala
私は自分のxtermウィンドウをフルスクリーンで表示していましたが、これが起こりました。 私はxtermの枠をダブルクリックしてフルスクリーンから出ました。 Ctrlキーを押しながらzキーを押して背景をemacsにします。次にfgを押して戻してから、矢印キーが働きました。私は何の問題もなくフルスクリーンに入ることができました。私はprolyすべてのEmacsのナビゲーションコマンドが、矢印キーへの移行の私の古い習慣を学ぶべき
は、ハード死ぬ:/
私のために働いた –
ない答えが、tmuxは上のGNU Emacsの実行時に説明した動作も発生していることは注目に値しますUbuntuのターミナルまたはxtermで
すぐに回避するには、tmuxでemacsを実行しないでください。
バージョン
のEmacs: GNU Emacsの24.3.1のDebianによって修飾ブラウニーに2014年6月6日の(x86_64の-PC-LinuxベースのGNU))
TMUX: 1.9
のUbuntu: 14.10
私はそれが誰かを助けるかもしれないかわからないが、私は同じ問題がある(ubutu + tmux + emacs):ウィンドウの全画面の状態を循環させ、Ctrl-zを押して、すべてが完璧に機能しました... – Rick77
@ Rick77あなたは人生の節約者です。 ubuntu 12.04で。 –
ここでは、一回(14.04 Ubuntuの、24をemacsの壊れ壊れないように私のために働いたソリューションです.1)。画面から切り離すことなく、次のように試してください:
1)Ctrl-zを押してemacsを終了します。
2)を起動し、別のEmacs:emacs -nw
3)第二のemacsにはCtrl-Z、出来上がり!最初のEmacsが再び動作します。 (次に、2番目のemacsを開き、Ctrl-x Ctrl-cを押して閉じます)。
我々は、見つかった(しかし、我々はまだ、問題の原因を見つける必要がある)回避策はemacsの中から手動で「アプリケーションのシーケンス」を設定することで、ここでは同じ問題を抱えている:
(send-string-to-terminal "\e[?1h")
M-x eval-buffer
出来上がり:あなたの*scratch*
バッファ
また、簡単なC-z
fg
は十分であり、þ
私はこれを私の.emacsに加えました: '(defun term-send-application-sequence()(対話型)(send-string-to-terminal)\ e [?1h") ' fg'私は 'Mx term-send-application-sequence'をフォローアップし、すべてがうまくいきます。 – mvanbem
ファーストを入力する高速ですが、背景にはemacsをプッシュすることができます。
Ctrl+z
さらに先に進む。
「[アップ]」ではなく「[Cアップ」]にマッピングするべきではありませんか? (そして他の指示と同じですか?) – robert
@robertどうしてですか? '\ e [A]は多くの端末で' up'が送信するものです。 'C-up'が' \ e [A'を送るが、 'up''は何かを送る場所に遭遇しましたか?それは何ですか? – Gilles
最初は私のために働いたが、私は他の問題があった。これにより、これらのすべてが修正されました:https://stackoverflow.com/questions/15445481/mapping-arrow-keys-when-running-tmux – robert