2

私の .emacs ファイルの古い信頼できる (set-cursor-color "#aa88dd") は、Aquamacs の起動後に実行しない限り、Aquamacs で失敗します。このタイプの失敗は、Emacs が起動時に秘密裏に何かを行う典型的なものですが、私には何が原因かわかりません。セッションで機能し、設定を保存しますが、次のセッションで正しく初期化されません。それでも、真っ赤なカーソルがあります。

動作する Emacs: GNU Emacs 23.2.1 (i686-apple-darwin、NS apple-appkit-1038.29)

Aquamacs の失敗: GNU Emacs 23.3.50.1 (i386-apple-darwin9.8.0、NS apple-appkit-949.54)

1) 回避策と修正を歓迎します。現時点では、23.2.1 を使用しています。アップグレードする必要はありませんが、遅かれ早かれアップグレードする必要があります。

2) インターウェブを検索しても何も見つかりませんでした。この問題は、Aquamacs が一部の設定を判断できず、カーソルの色として赤を選択するという他の問題に関連する赤いニシンであると思われます。ロードされたすべての構成ファイルの名前をMessagesに出力するように Emacs を取得するトリックはありますか?

3) 関連する全体像の質問: Emacs の新しいバージョンを強制的に古いバージョンのように動作させる方法は一般的にありますか? それは私の現在の問題と、新しいバージョンで時折起こる激変を解決するでしょう.

以下は、カーソルの背景を正しく保存しているように見える Aquamacs customizations.el です。このファイルは編集していません。(cursor...) ステートメントを .emacs custom-set-variable に追加しても効果はありませんでした。

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(cua-mode nil nil (cua-base))
 '(cua-normal-cursor-color "#aa88dd")
 '(cursor-type (quote box))
 '(ess-S-assign "_")
 '(ido-everywhere t)
 '(ido-show-dot-for-dired t)
 '(line-move-visual nil)
 '(term-bind-key-alist (quote (("C-c C-x b" . switch-to-buffer) ("C-c M-x" . execute-extended-command) ("C-c C-c" . term-interrupt-subjob) ("M-`" . other-frame) ("C-m" . term-send-raw))))
 '(term-unbind-key-list (quote ("C-c"))))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(default ((t (:inherit nil :stipple nil :background "White" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 210 :width normal :foundry "apple" :family "Inconsolata"))))
 '(cua-normal-cursor-color "#aa88dd")
 '(cursor ((t (:background "#AA88DD" :foreground "black" :box nil)))))
4

3 に答える 3

2

私はAquamacsに完全に夢中になっているわけではありませんが、emacsforosxには、ウィンドウの位置がセッション間で保存されないという非常に厄介な(私にとって)属性があります....配置した場所ではなく、常にメインディスプレイの左上隅に開きます. そして、それを修正する方法はありません。

これがカーソルの色を設定する方法であることをどこで見つけた/学んだか覚えていませんが、次の FAQ を参照してください。

http://www.emacswiki.org/emacs/AquamacsFAQ#toc16

バッファを開き、好きなように設定します。次に選択

[オプション] -> [外観] -> [面とフレームのパラメータをフレームのデフォルトとして採用]

これにより、 のセクションにdefault-frame-alist定義が配置されます。custom-set-variablescustomizations.el

後で別のカーソルの色が必要になった場合は、味を調えることができます。

于 2013-03-13T21:45:14.073 に答える
0

お使いのバージョンのEmacsが起動時に設定を上書きしていると思われる場合は、関数を入れて、初期化後に設定を設定してみてくださいafter-init-hook

(add-hook 'after-init-hook (lambda () (set-cursor-color "#aa88dd")) 'append)

おそらくこれにより、カスタマイズがデフォルトを上書きするのに十分遅く評価されることになります。(編集:「append」引数を使用すると、この関数がフックリストの最後に追加され、Aquamacsがそこに置く他のものをオーバーライドすることができます。)

于 2013-02-19T23:02:07.517 に答える
0

ファイルの最後にメッセージを入れ、.emacsファイルの最後(message "Hello -- this message came from the bottom of your .emacs file.")に別のメッセージを入れてみてください。各構成ファイルに競合する設定がある場合、最後に読み込まれたものによってカーソルの色設定が決定されます。これらのファイルのいずれかにカーソルの色の設定が1 つしかない場合は、Aquamacs のソース ファイルで単語検索を実行して、そのカーソルの色が設定されている他の場所を見つける必要があります。たとえば、以下は、Github の最新バージョンの Aquamacs24 ブランチのソース ファイルで単語を検索した結果です: https://github.com/davidswelt/aquamacs-emacscustomizations.el(message "Hello -- this message came from the bottom of your customizations.el file.")set-cursor-color

Aquamacs のパッケージ化されたアプリケーションのソース ファイルは、おそらく *.gz 形式で圧縮される予定です。使用している単語検索ファイル ユーティリティによっては、圧縮されていないソース ファイルで検索を実行する必要がある場合があります。これらのソース ファイルはすべて非圧縮形式であるため、Github からソースをダウンロードする方が簡単な場合があります。必要なブランチを選択すると、 zipダウンロード ボタンがあります。

Searching 9317 files for "set-cursor-color"

/Users/HOME/Desktop/aquamacs-emacs-aquamacs24/lisp/aquamacs/oneonone/oneonone.el:
 1453    "Set cursor type depending on whether an input method is used or not."
 1454    (when 1on1-change-cursor-on-input-method-flag
 1455:     (set-cursor-color
 1456       (if current-input-method
 1457           1on1-default-frame-cursor-color-input-method

/Users/HOME/Desktop/aquamacs-emacs-aquamacs24/lisp/emulation/cua-base.el:
 1141        (stringp color)
 1142        (not (equal color (frame-parameter nil 'cursor-color))))
 1143:  (set-cursor-color color))
 1144      (if (and type
 1145        (symbolp type)

/Users/HOME/Desktop/aquamacs-emacs-aquamacs24/lisp/emulation/viper-util.el:
  156  ;; This was equally true before the advent of viper-frame-value.
  157  ;; Now it could be changed by passing frame to v-f-v.
  158: (defun viper-set-cursor-color-according-to-state (&optional frame)
  159    (cond ((eq viper-current-state 'replace-state)
  160    (viper-change-cursor-color

/Users/HOME/Desktop/aquamacs-emacs-aquamacs24/lisp/emulation/viper.el:
  946        ))
  947  
  948:   (defadvice set-cursor-color (after viper-set-cursor-color-ad activate)
  949      "Change cursor color in VI state."
  950      (modify-frame-parameters

/Users/HOME/Desktop/aquamacs-emacs-aquamacs24/lisp/frame.el:
 1208        (face-set-after-frame-default (selected-frame))))
 1209  
 1210: (defun set-cursor-color (color-name)
 1211    "Set the text cursor color of the selected frame to COLOR-NAME.
 1212  When called interactively, prompt for the name of the color to use.

/Users/HOME/Desktop/aquamacs-emacs-aquamacs24/lisp/term/pc-win.el:
  349  (fset 'set-default-font 'ignore)
  350  (fset 'set-mouse-color 'ignore)      ; We cannot, I think.
  351: (fset 'set-cursor-color 'ignore) ; Hardware determined by char under.
  352  (fset 'set-border-color 'ignore) ; Not useful.
  353  
于 2014-02-03T22:35:27.437 に答える