2012-03-07 27 views
19

Tôi đang làm việc trên một codebase lớn, trong đó mỗi tập tin có ước khác nhau thụt đầu dòng: tab, 4 chỗ, 3 chỗ vvCó thể tự động nhận ra các phong cách thụt đầu dòng (các tab so với dấu cách) không?

Tôi hiện mặc định trên các tab và làm set shiftwidth=N expandtab smarttab khi tôi đi qua một tập tin không gian-thụt , nhưng điều đó thật khó chịu.

Có chức năng nào trong Vim hay plugin có thể nhận ra rằng, bộ đệm hiện tại sử dụng dấu thụt lề với ba dấu cách cho mỗi ca?

Trả lời

18

Các plugin khác nhau tồn tại để cố gắng xử lý tình huống đó. Dưới đây là một vài tôi tìm thấy bằng cách tìm kiếm cho detect indent tại vim.org

+1

thám tử dường như làm việc tốt hơn so với DetectIndent, trong vòng năm phút tôi thử nghiệm . Vì lý do gì đó, DetectIndent đưa ra các dự đoán không chính xác trên một tệp C đơn giản, được định dạng nhất quán (nó có kích thước 2 tab và DetectIndent nghĩ rằng đó là kích thước 4). – Kat

2

Tốt câu hỏi, tôi đang phải đối mặt với cùng một vấn đề quá , và gần đây tôi đã viết một vi m plugin cho bản thân mình: https://github.com/luochen1990/indent-detector.vim

nó có các tính năng sau:

  • phát hiện thụt lề hỗn hợp và warnning tiếng vang trên bufEnter và bufWrite tự động.
  • cài đặt chuyển đổi về thụt lề để phù hợp với phong cách thụt lề hiện tại một cách tự động.
  • thời gian phát hiện bị giới hạn, vì vậy bạn không cần cần phải lo lắng về việc mở các tệp lớn.

Tôi nghĩ rằng nó được thiết kế tốt, và cần phải được biết đến, gửi một vấn đề trên github nếu bạn có bất cứ đề nghị :)

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