2

何らかの理由で、「Cz」はsuspend-or-iconify-emacsにマップされており、煩わしくないものに再バインドすることはできないようです。(私は元に戻すためにctrl-zを使用するのが好きですが、何もしない方が、誤ってキーを押すたびに一時停止するよりも少なくとも良いでしょう)

私はそれをインタラクティブにやってみました: M-x global-set-key、そしてSet key C-z to command: undo
M-x describe-key-briefly私にくれますC-z runs the command suspend-or-iconify-emacs

私はスクラッチバッファに行き、: (global-set-key (kbd "C-z") 'undo)とを評価しようとしました(global-set-key "\C-z" 'undo)、そしてそれはもちろん私の.xemacs/init.elファイルにあります。

実際にキーを再バインドするものはないようです。

これは、XEmacs21.5のファンダメンタルモードで発生しています。これをトラブルシューティングする方法についてのアイデアはありますか?

編集:OKここに、サスペンド関数を再定義して元に戻すことで問題を回避するハックがあります:

(defun suspend-or-iconify-emacs () (interactive) (undo))

私は実際にemacsをもう一時停止することはできませんが、それは実際には問題ありません。

4

4 に答える 4

3

.emacs に次のコードがあります。

(global-set-key (kbd "C-z") 'eshell)

eshell が起動し、動作します。

Cz の組み合わせは、Unix/Linux では非常に標準的です。たとえば、vi、lynx、または mutt を使用してターミナルで作業しているときに Cz を押すと、プログラムが中断され、シェルに戻ります。「fg」コマンドを発行すると、プログラムが再びポップバックされます。Emacs には独自のシェルがあるので、Emacs で Cz を押したときにそれを生成するのが好きです。

次のフックを追加して、eshell で Cz を再マップすることもできます。そうすれば、eshell で Cz を押すと、編集していたバッファに戻ります。

(add-hook 'eshell-mode-hook
  (lambda ()
    (local-set-key (kbd "C-z") 'bury-buffer)))
于 2010-09-05T08:32:06.193 に答える
3

これを評価してみてください:

(define-key global-window-system-map [(control z)] 'undo)

(XEmacs を tty モードで実行していないと仮定しますが、アイコン化したい場合はそうではないと思います :-))

Ch b を使用して、変更する *-map を見つけました。

于 2010-09-02T16:06:40.190 に答える
2

それを.xemacs/init.elの最後に置きます:

(global-set-key (kbd "C-z") 'undo)

または、キーボードまたはオペレーティングシステムの設定が間違っている可能性があります。

C-h k C-zxemacsが本当にC-zキーを受け取るかどうかを確認してください。

于 2010-09-02T15:37:31.090 に答える
1

私はCfで同じ問題を抱えていました。isearch-forward にマップしたかったのですが、代わりに 1 文字前に移動し続けました。

私は最終的に追加することで私の問題を解決しました

(global-unset-key [?\C-f])
(global-set-key [?\C-f] 'isearch-forward) 

どうやら問題は、Cf (および Cz) が「実際の」キーであることです。つまり、端末が認識するもの (Cz の場合は ASCII 0x06、0x1a) であるため、「Cf」の前に「?\」が必要です。 .

これは私が仕事を得た唯一のものです。

HTH

(編集:xemacsではなくemacsを使用していることに注意してください)

于 2011-06-15T19:50:00.370 に答える