Hai chế độ Python


10

Tôi đã cố gắng cấu hình Emacs để sử dụng chế độ Python thích hợp. Để kết thúc này, tôi đã đọc một vài hướng dẫn. Điều quan trọng nhất này . Hướng dẫn sử dụng python-modegói. Tuy nhiên, khi tôi cài đặt nó thông qua trình quản lý gói ( M-x package-install RET python-mode RET) tôi không thể sử dụng các phím tắt có sẵn cho gói đó.

Tôi đã mở một tệp Python để kiểm tra một số phím tắt như C-c |, để đánh giá biểu thức đã chọn. Tuy nhiên, thật ngạc nhiên khi những thứ này không hoạt động nên tôi quyết định tìm hiểu các hướng dẫn khác về chủ đề này. Tuy nhiên, trong chế độ dòng của tôi, tôi thấy Python, vì vậy có một số python-modekích hoạt.

Trên wiki emacs tôi tìm thấy đoạn mã sau để thêm vào init.eltệp của mình :

 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))

Khi tôi thêm cái này, cái python-modethực sự hoạt động và các phím tắt đã nói ở trên cũng hoạt động.

Tôi không hiểu chính xác những gì nó làm nhiều hơn là thực hiện thủ công M-x python-modetrong bộ đệm tập tin python.

Khi tôi xóa mọi dấu vết python-modetrong thư mục .emacs của tôi và mở tệp python tôi nhận thấy rằng tôi vẫn còn một python-mode. Vì vậy, dự đoán của tôi là có hai python-modes?

Tôi nghĩ rằng tôi muốn python-modetừ https://launchpad.net/python-mode . Có vẻ như nó có trong kho lưu trữ gói, nhưng tôi không chắc làm thế nào để loại bỏ chế độ Python khác.

Ai đó có thể giải thích?


1
Nếu bạn muốn sử dụng Ipython, ein là một gói tuyệt vời. Nó cung cấp cho bạn tương đương với máy tính xách tay Ipython trong Emacs. Các bản demo ở đây . Ngoài ra còn có các bản demo cũ từ repo ban đầu hiện không rõ.
Từ Đỗ

Đó là một văn bản hoàn toàn cho một câu hỏi khá đơn giản. ;-) Sẽ tốt hơn nếu cắt nó xuống một chút.
Malabarba

Tôi đồng ý. Tôi đã được kỹ lưỡng như các trang web SE khác đã nghĩ tôi. Tôi sẽ cắt nó một chút càng sớm càng tốt.
Barshe De Troyer

Câu trả lời:


10

Vâng, có hai chế độ python: một chế độ được vận chuyển bằng emacs python.elvà một chế độ khác python-mode.elthực sự là chế độ này: https://launchpad.net/python-mode

Hướng dẫn của bạn đã được tham khảo sau này.

python-modeĐoạn thiết lập của bạn thực hiện như sau:

;; by default, the function 'python-mode is associated with
;; the package python.el. The following changes that to python-mode.el:
(autoload 'python-mode "python-mode" "Python Mode." t)

;; open py files with python-mode
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

;; sets python interpreter mode to be python-mode
(add-to-list 'interpreter-mode-alist '("python" . python-mode))

Vì vậy, tôi loại bỏ python.el hoặc tôi phải kết hợp chúng? Hoặc có một tên cụ thể cho chế độ python sau? Tôi muốn init.eldi động của mình để loại bỏ python.elcó thể không phải là một lựa chọn.
Barshe De Troyer

Chỉ cần cài đặt python-mode.el và thiết lập nó với đoạn mã bạn đã đăng. (hoặc đọc README của nó)
Adobe

Tôi hiểu lệnh này làm gì, kết hợp với câu trả lời này: superuser.com/questions/108233/ Khăn Cảm ơn bạn đã xây dựng.
Barshe De Troyer

7

Là người duy trì python-mode.el và ngoài việc trả lời bởi @Adobe: python-mode.el không hủy các lệnh từ python.el - cả hai đều có sẵn. Do tên của python-mode-map - được sử dụng bởi cả hai và không thể thay đổi mà không phá vỡ nhiều thứ - các phím và menu được gửi từ lần tải cuối cùng.

C-c |gọi py-execute-regionvà làm việc độc đáo ở đây. Có thể python.el đã được tải sau đó và các ràng buộc đã biến mất. Gọi lệnh thông qua Mx có thể là một tùy chọn hơn. Trong trường hợp gặp sự cố, vui lòng xem xét báo cáo lỗi tại https://bugs.launchpad.net/python-mode

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.