2012-05-01 8 views
8
~/.emacs 

;; http://cx4a.org/software/auto-complete/manual.html 
(add-to-list 'load-path "~/.emacs.d/") 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") 
(ac-config-default) 

khi tôi tải các emacs, nó khiếu nại lỗi là "Số lượng đối số sai: được gọi là tương tác-p, 1". Nói cách khác, emacs tìm lỗi cho đến khi dòng (ac-config-default).Số lượng đối số sai: được gọi là tương tác-p, 1

khi tôi kiểm tra tệp .emacs.d/auto-complete.elc, tôi đã tìm thấy chuỗi "được gọi là tương tác-p".

Câu hỏi> Tôi đã sử dụng cùng một cài đặt cho ubuntu mà không gặp sự cố. Bây giờ tôi đang chuyển đổi centos 6.2. Có cách nào để tôi khắc phục sự cố này không?

emacs --debug-init cho thấy các lỗi sau đây:

+0

Bạn không dán đúng thông báo lỗi. –

+0

Nếu bạn có cùng một .emac với cùng phiên bản tự động hoàn thành cấu hình, tôi đoán bạn có các phiên bản Emac khác nhau trên hai máy. Phiên bản M-x emacs nói gì trên cả hai máy tính? – Tyler

+0

Sự khác biệt chính là phiên bản chạy trên phiên bản mới nhất của ubuntu và phiên bản khác chạy trên centos phiên bản mới nhất. Phiên bản của emacs mới nhất là – q0987

Trả lời

3

Trong Emacsen gần đây, called-interactively-p đòi hỏi một cuộc tranh cãi.

Làm C-h f-trợ giúp nhanh RET, sau đó thay thế (called-interactively-p) bằng (called-interactively-p 'any) và biên dịch lại/tải lại. Hoặc gửi lỗi này cho tác giả của gói.

2

[Như tôi đã đề cập gần đây trong một số câu hỏi ngăn xếp chồng khác, nó là mạnh mẽ được khuyến nghị không đặt "~/.emacs.d" trong thư mục ~/.emacs.d của bạn có thể/sẽ giữ các tệp cấu hình có tên xung đột với các gói emacs thực. I E. đặt các tệp tự động hoàn thành trong thư mục * sub * của ~/.emacs.d. ]

Lỗi của bạn trông rất lạ: trong khi called-interactively-p được khai báo chính xác bằng 1 đối số, nó cũng chấp nhận 0 đối số (để giảm đau cho gói bên ngoài muốn hỗ trợ cả Emacs-22 và Emacs-23). Vì vậy, có vẻ là một cái gì đó khác trong cấu hình của bạn mà bằng cách nào đó định nghĩa lại được gọi là tương tác-p.

+0

Có đáng để có một thông điệp cảnh báo tự động nếu một đường dẫn tải kết thúc bằng "/.emacs.d" được quan sát, như một biện pháp phòng ngừa chống lại loại vấn đề đó? – phils

12

Điều đáng nói là lỗi này có thể phát sinh nếu bạn di chuyển thư mục emacs.d của bạn từ máy này sang máy khác.

Nếu đúng như vậy, việc xóa tệp * .elc đã biên dịch sẽ thực hiện thủ thuật.

+0

Điều này làm việc cho tôi. :) – Lazylabs

+0

điều này cũng đã khắc phục được sự cố của tôi - được thêm vào .gitignore của tôi trong tương lai. – sjmarshy

+0

nhưng nó hoạt động, 'làm sạch' và 'làm lại' –