2011-11-11 43 views
27

Tôi chỉ cài đặt chế độ tự động hoàn thành, tuy nhiên mỗi lần tôi khởi động emacs, tôi phải tự động hoàn thành chế độ M-x. Có anyway để có nó nạp tự động?Chế độ tự động hoàn thành Emacs khi khởi động

emacs của tôi là như sau:

;; auto-complete 
(add-to-list 'load-path "~/.emacs.d/") 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") 
(ac-config-default) 

Cảm ơn

+0

Tôi nghĩ rằng có một giải pháp được đề xuất trong [Emacs Wiki] (http://www.emacswiki.org/emacs/AutoComplete). Tìm kiếm chế độ toàn cầu tự động hoàn thành và xem liệu điều này có phù hợp với bạn hay không. – alexurba

Trả lời

42

Tôi nghĩ bạn có thể làm điều đó trong nhiều cách khác nhau. Để kích hoạt nó trên toàn cầu, bạn nên sử dụng

(global-auto-complete-mode t) 

Nhưng nó sử dụng auto-complete-mode-có lẽ, mà lần lượt AC trên chỉ được liệt kê trong ac-modes. Bạn có thể thêm chúng bằng tay giống như này

(add-to-list 'ac-modes 'sql-mode) 

Bạn có thể tạo danh sách riêng của bạn nếu bạn muốn AC được kích hoạt chỉ cho vài chế độ

(setq ac-modes '(c++-mode sql-mode)) 

Hoặc viết lại nó để có AC ở khắp mọi nơi.

(defun auto-complete-mode-maybe() 
    "No maybe for you. Only AC!" 
    (auto-complete-mode 1)) 

chỉnh sửa:

Autocomplete trong minibuffer là xấu. Tôi nghĩ điều này sẽ tốt hơn.

(defun auto-complete-mode-maybe() 
    "No maybe for you. Only AC!" 
    (unless (minibufferp (current-buffer)) 
    (auto-complete-mode 1))) 
+2

Nó có thể hữu ích để chỉ ra rằng bạn cần một '(yêu cầu 'tự động hoàn thành)' một nơi nào đó trước khi '(global-auto-complete-mode t)' được thực hiện. –

+0

Tôi tìm thấy '(setq ac-mode '(C++ - mode sql-mode))' là cách dễ nhất (và ít mơ hồ nhất) để thực hiện những gì tôi muốn. –

+0

Không có tùy chọn nào trong số này có hiệu quả đối với tôi trên các emacs 24.3.1 trên Ubuntu x86. Tôi thấy rằng trạng thái trên modeline ('AC') nhưng không có tính năng AC nào hoạt động, và tôi biết chúng làm vì tôi đã sử dụng để bật nó theo cách thủ công bằng cách sử dụng' M-x chế độ tự động hoàn thành'. Điều gì đã hiệu quả đối với tôi là trong https://emacs.stackexchange.com/questions/18982/how-do-i-make-auto-complete-enabled-by-default – Sonny

19

Tôi chỉ cần này:

(require 'auto-complete) 
(global-auto-complete-mode t) 

thêm vào .emacs.d/file init.el tôi.

Tôi đã cài đặt tự động hoàn tất với trình quản lý gói. Tôi đang sử dụng Emacs 24.

+0

Điều này có tác dụng đối với tôi, nhưng không hiệu quả đối với tôi. Cảm ơn. –

+1

Vui lòng cảnh báo ngay cả với cài đặt này, chế độ AC sẽ không được bật cho mọi chế độ. Ví dụ, chế độ AC sẽ không hoạt động ở chế độ ReST mà không cần viết lại '' auto-complete-mode-maybe() '' như câu trả lời được chấp nhận. – zack

Các vấn đề liên quan