2

何らかの理由で、backspaceemacs (端末バージョン) を押すとカーソルの前の文字が削除されますが、emacs GUI (Mac 用) で同じキーを押すとカーソルの下の文字が削除されます。normal-erase-is-backspace-modeemacsセッションがGUIにあるかどうかに応じて、誰でも設定方法を教えてもらえますか?

レコードについては、 によるとC-h k、どちらの場合もbackspaceキーは にバインドされています。DEL

4

3 に答える 3

4

バックスペースを正常に機能させるために、Mac の emacs 設定で次を使用しています。

;; Fix Delete key and activate graphical frame.
(defun my-make-frame-hook ()
  (when (window-system)
    (normal-erase-is-backspace-mode t)
    (when (fboundp 'ns-do-applescript)
      (ns-do-applescript "tell application \"Emacs\" to activate"))))

;; Do this for initial frame...
(my-make-frame-hook)

;; ...and for any subsequently created frame.
(add-hook 'after-make-frame-functions
          '(lambda (frame)
             (select-frame frame)
             (my-make-frame-hook)))

このソリューションは、デーモン モードを使用している場合でも問題なく動作するほど堅牢です。

(ns-do-applescript は明らかに新しいフレームを生成するためのものです。)

ここ(window-system)では、 に特に関心があるはずです。

于 2012-06-26T15:49:27.827 に答える
1

emacs がウィンドウ システムを使用している場合、またはターミナル セッションである場合、関数display-graphic-pは戻ります。次のようなことができます。tnil

(setq normal-erase-is-backspace (display-graphic-p))
于 2012-06-26T15:49:47.970 に答える
0

どのバージョンのEmacsを使用していますか?バックスペースが機能するように何かを構成する必要があるのは非常に怪しいようです。

皮切りに

emacs -Q

バックスペースがどのように機能するかを説明します。

于 2012-06-26T15:59:42.440 に答える