2010-03-27 17 views
49

ess-mode là "Emacs nói số liệu thống kê". Chế độ này rất hữu ích cho việc chỉnh sửa chương trình cho R hoặc Splus (hai gói thống kê riêng biệt).Cách dừng các emacs thay thế thanh dưới bằng <- in ess-mode

Trong bộ đệm của tôi, khi tôi nhập _, ký tự được thay thế bằng <-, điều này rất bực bội. Có một emacs lisp tuyên bố để tắt hành vi này?

emacs: 22.1.1 ess-chế độ phát hành (không rõ)

+4

Tôi thấy tính năng này khá thuận tiện và giống như Michal được đăng, nhấn gạch dưới hai lần chèn dấu gạch dưới chữ. Chuỗi gán '<-' được sử dụng nhiều hơn trong lập trình R hơn gạch dưới (hoặc chỉ là nhận thức của tôi). Dù sao, nó làm công việc độc đáo cho tôi ... – aL3xa

+1

Nhân bản - xem http://stackoverflow.com/questions/1816238/how-to-turn-off-auto-replacement-in-emacs-speaks-statistics-for- r – csgillespie

+0

đồng ý với aL3xa tính năng này là một trợ giúp công việc rất lớn. – mcheema

Trả lời

60

Từ ESS's manual (xem trong mục "Thay đổi/Tính năng mới trong 5.2.0"):

ESS [S]: Nhấn dấu gạch dưới ("_") một lần chèn "< -" (như trước); nhấn gạch dưới hai lần chèn một dấu gạch dưới chữ. Để ngăn chặn hành vi thông minh này, thêm "(ESS-toggle-gạch nil)" để emacs của bạn sau khi ess-trang web đã được tải

+8

Chỉ cần được rõ ràng, '(yêu cầu 'ess-site)' nên đứng trước '(ess-toggle-underscore nil)' trong .emacs hoặc .emacs.d/init.el. – jthetzel

3

Từ http://www.r-bloggers.com/a-small-customization-of-ess/How to change smart assign key ("_" to "<-") binding in ESS

Để gán ":" để " < -" và để ngăn chặn sự phân công của dấu gạch dưới (dưới) '_' thành '< -' đặt sau đây trong emacs (vâng, dòng lặp đi lặp lại là đúng)

(setq ess-smart-S-assign-key ":") 
(ess-toggle-S-assign nil) 
(ess-toggle-S-assign nil) 
(ess-toggle-underscore nil) ; leave underscore key alone! 
2

Kể từ khi tính năng rất hữu ích. Bạn có thể gán nó cho phím khác mà ít được sử dụng bởi bạn trong R nó sẽ tự động bỏ gán nó từ gạch dưới. Cá nhân tôi gán nó cho ";" bằng cách thêm dòng sau vào tệp .emacs.

(setq ess-smart-S-assign-key ";") 

phiên bản của tôi về emacs là 24,3 All-in-one tập tin cài đặt bởi Vincent Goulet. (Được cài đặt trên windows 7)

hy vọng điều này giúp

Sửa Trong emacs 25,2 trên làm không hoạt động thay vì thêm sau trong tệp .emacs

(setq ess-smart-S-assign-key ";") 
(ess-toggle-S-assign nil) 
(ess-toggle-S-assign nil) 
+1

Điều này đã dừng sự cố thay thế gạch dưới, nhưng khi tôi nhấn ";" nó không tạo ra một "<-" ...? – maia

+0

Nó làm cho '<-' trong phiên bản emacs của tôi trên các cửa sổ 7. Có khác gì không? – Kushdesh

1

Phiên bản mới hơn có vẻ như d để làm việc cho tôi, và rất nhiều ít tiết (bạn về cơ bản giữ dấu gạch bình thường, nhưng có thể thiết lập quan trọng của riêng bạn cho hành vi thông minh này!):

(global-set-key (kbd "C-;") (lambda() (interactive) (insert " <- "))) 
(ess-toggle-underscore nil) 

Chèn lựa chọn shortkey của bạn thay vì C-;.

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