1

私の.emacsファイルには次の内容が含まれています。

$ cat ~/.emacs
(setq vc-handled-backends nil)
(global-linum-mode t)

$ od -xcb ~/.emacs
0000000      7328    7465    2071    6376    682d    6e61    6c64    6465
           (   s   e   t   q       v   c   -   h   a   n   d   l   e   d
          050 163 145 164 161 040 166 143 055 150 141 156 144 154 145 144
0000020      622d    6361    656b    646e    2073    696e    296c    280a
           -   b   a   c   k   e   n   d   s       n   i   l   )  \n   (
          055 142 141 143 153 145 156 144 163 040 156 151 154 051 012 050
0000040      6c67    626f    6c61    6c2d    6e69    6d75    6d2d    646f
           g   l   o   b   a   l   -   l   i   n   u   m   -   m   o   d
          147 154 157 142 141 154 055 154 151 156 165 155 055 155 157 144
0000060      2065    2974                                                
           e       t   )                                                
          145 040 164 051                                                
0000064

これらは絶対に有効なEmacsのLISP式です。しかし最近、emacsを起動するたびに、行番号が表示されなくなり、代わりにエラーが発生します。

$emacs --debug-init ~/.emacs
Debugger entered--Lisp error: (void-function global-linum-mode)
  (global-linum-mode t)
  eval-buffer(#<buffer  *load*> nil "/Users/user/.emacs" nil t)  ; Reading at buffer position 53
  load-with-code-conversion("/Users/user/.emacs" "/Users/user/.emacs" t t)
  load("~/.emacs" t t)
  #[nil "^H\205\276^@   \306=\203^Q^@\307^H\310Q\202A^@ \311=\2033^@\312\307\313\314#\203#^@\315\202A^@\312\307\313\316$
  command-line()
  normal-top-level()

emacsのバージョン:

$ emacs --version
GNU Emacs 22.1.1
Copyright (C) 2007 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

誰かがこれを引き起こしたかもしれない考えを持っていますか?ありがとう

4

2 に答える 2

2

linumモードがバージョン23.1(changelog)でEmacsディストリビューションに追加されたようです。linumはEmacs22で配布されていないため、未定義の関数を呼び出しているため、エラーが発生します。

おそらく、あなたはより新しいバージョンのemacsを実行していたのかもしれませんが、それ以降は破壊されています。次のいずれかを実行できます。

  • linumソースをダウンロードし、ロードパスに追加してからrequire

  • 新しいバージョンのEmacsをインストールします。


編集:上記のコメントで述べたように、パス上に異なるバージョンの複数のEmacsバイナリを含めることができます。、、などを調べて/usr/bin/opt/local/binこれが当てはまるかどうかを確認してください。

于 2013-02-04T05:19:33.597 に答える
0

UNIXyシステムで実行している場合、最初に、そのファイルの内容をcat8進ダンププログラムなど以外のものでチェックします。od

od -xcb .emacs

53文字はこれらの2行のサイズとほぼ同じであるため、ファイルの最後(またはファイル内)にごみが含まれている可能性があります。

于 2013-02-04T04:05:19.453 に答える