2011-07-13 46 views
10

Tôi đang làm việc với một nhóm lập trình viên Python sử dụng vim và họ tạo ra Python bằng cách sử dụng TAB cho thụt lề. Tôi sử dụng Emacs với chế độ python, dịch phím tab thành 4 dấu cách (như nó nên, nhưng đừng bận tâm). Vì tôi không muốn gây rắc rối, tôi muốn thêm một cái gì đó vào tập tin .emacs của tôi (hoặc bất kỳ thứ gì) để tạo ra indents bằng TABS thực thay vì dịch chúng sang không gian. Làm sao?Làm thế nào để chế độ Emacs Python tạo TAB cho thụt lề?

Tôi xin lỗi nếu điều này được trả lời ở một nơi khác: Tôi không tìm thấy.

+4

Đừng lo lắng, có một vòng tròn đặc biệt của địa ngục cho loại cá nhân này. – Evpok

+0

Ngừng làm việc với những người đó! ;-)) –

+1

Từ khi nào là "tab" một từ viết tắt? – BoltClock

Trả lời

10

Bạn có thể xác định cài đặt Python cụ thể trong ~/.emacs của bạn với python-mode-hook. Để sử dụng các tab để thụt đầu dòng, bạn có thể sử dụng:

(add-hook 'python-mode-hook 
    (lambda() (setq indent-tabs-mode t))) 

Kể từ python.el indents chỉ có 4 cột, theo mặc định, ở trên sẽ sử dụng các tab khi thụt lề là bội số của 8 và tab tiếp theo không gian cho indents khác .

Nếu bạn cần sử dụng một tab cho mọi mức thụt lề, bạn cũng cần phải đặt python-indent thành 8. Sau đó, bạn có thể đặt tab-width cho bất kỳ chiều rộng nào bạn muốn xem các tab được hiển thị.

(add-hook 'python-mode-hook 
    (lambda() 
    (setq indent-tabs-mode t) 
    (setq python-indent 8) 
    (setq tab-width 4))) 
+0

Tôi đã thử đặt ở những nơi khác nhau và không thể làm cho nó hoạt động. Cài đặt emacs của tôi dường như đang sử dụng "python.el.gz" mà tôi nghĩ về hack. Tôi có nên nhận python-mode.el thay thế không? –

+0

@Aaron: Có thể bạn đã làm cho nó hoạt động, nhưng kể từ python.el chỉ indents 4 cột cho mỗi cấp theo mặc định bạn đã không nhìn thấy việc sử dụng các tab được nêu ra. Tôi đã cập nhật câu trả lời với một số giải thích thêm. – jamessan

1

lẽ cần phải làm điều này trong chế độ python:

(setq indent-tabs-mode t) 
0

Khi nhận xét chính xác cho biết, sử dụng tab cho thụt lề là một ý tưởng tồi và việc sử dụng độ rộng tab không chuẩn thậm chí còn tồi tệ hơn. Tuy nhiên, đôi khi bạn không có lựa chọn nào nếu bạn muốn cộng tác.

Tùy thuộc vào chính xác cách thức các đồng nghiệp của bạn đã vim cấu hình, bạn có thể cần phải cả bật indent-tabs-mode và thiết lập tab-width đến 4.

Một cách thuận tiện để thực hiện điều này, rằng sẽ không mess lên các công việc khác của bạn , là sử dụng file local variables. Vào cuối của mỗi tập tin vi phạm, đặt này:

# Local Variables: 
# indent-tabs-mode: 1 
# tab-width: 4 
# End: 

(. Bạn sẽ phải nói với Emacs rằng indent-tabs-mode là một biến địa phương an toàn)

+1

cá nhân, tôi không thích tệp biến cục bộ, đặc biệt nếu bạn đang cộng tác. hãy tưởng tượng những gì các tập tin sẽ như thế nào nếu mỗi người dùng sử dụng một trình soạn thảo khác nhau, và tất cả họ thấy phù hợp để bao gồm các blurbs khác nhau cho trình soạn thảo cá nhân của họ. blech. – jtahlborn

+0

Cài đặt định dạng NHƯNG là đúng để đặt vào tệp !! Bạn có bỏ phiếu cho việc phá vỡ phong cách? – gavenkoa

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