2009-12-06 13 views
7

Tôi chuyển từ vi sang emacs và sử dụng viper và vimpulse, nó trở nên khá khó chịu khi tôi C-w C-w đến cửa sổ và không thể quay lại chế độ gốc bằng lệnh tương tự vì bộ đệm khác, đó có thể là một bộ đệm trợ giúp, không ở chế độ Viper. Làm thế nào tôi có thể sửa lỗi này?Chế độ Viper ở tất cả các chế độ

Tôi cố gắng thêm các chế độ khác đối với cấu hình viper và làm cho họ bắt đầu với chế độ viper trên bằng cách móc mặc định sử dụng:

(add-to-list viper-vi-state-mode-list 'help-mode) 
(add-hook 'help-mode (lambda() (setq viper-mode t)))

Nhưng không ai trong số các lệnh này đã làm việc. Trong thực tế, người đầu tiên mang lại lỗi sau:

 
Warning (initialization): An error occurred while loading `/home/konrad/.emacs.d/init.el': 

Wrong type argument: symbolp, (fundamental-mode ... 

Bên cạnh C-w C-w, tôi cũng bỏ lỡ không thể điều hướng bằng cách sử dụng hjkl. Không có cách nào để tái sử dụng keybindings được thiết lập bởi viper, thay vì rebinding chúng một lần nữa cho mọi chế độ?

Trả lời

3

Cú pháp để thêm móc để giúp chế độ sẽ trông như thế này:

(add-hook 'help-mode-hook (lambda() (viper-mode t))) 

Note biến móc được đặt tên với "-hook", và setq không làm việc ở đây vì viper-mode là một lệnh , không phải là một biến.

Bạn có thể có thể nhận được tất cả các chế độ để kích hoạt viper với:

(add-hook 'fundamental-mode-hook (lambda() (viper-mode t))) 

vì tất cả các chế độ kế thừa từ cơ bản-mode.

+0

Không ai trong số này làm việc cho tôi. – Dave

3

Lỗi này là bởi vì bạn quên không trích dẫn biến viper-vi-state-mode-list như vậy:

(add-to-list 'viper-vi-state-mode-list 'help-mode) 

Xem this question là tại sao bạn cần phải trích dẫn 'viper-vi-state-mode-list.

Nhưng, điều đó không giải quyết vấn đề đối với tôi, đây là cách tôi đã Cw Cw để làm việc theo cách bạn muốn:

(define-key help-mode-map (kbd "C-w C-w") 'vimpulse-cycle-windows) 
+0

không nên có liên kết trong "Xem câu hỏi này .."? – Yoo

+0

Liên kết nằm trong danh sách 'viper-vi-state-mode-list, tôi đã yêu cầu một liên kết khác trực quan. –