Làm cách nào để làm cho Vim thích ứng với kiểu thụt lề hiện tại của tệp tôi đang chỉnh sửa?


39

Tôi làm việc trên một loạt các dự án JavaScript. Trong hầu hết các dự án này, việc thụt lề các tệp JavaScript là 2 khoảng trắng, vì vậy tôi đã đặt độ rộng thụt lề mặc định của mình thành đó. Tuy nhiên, nó trở thành 1 hoặc 4 trong một số dự án khác.

Có cách nào để yêu cầu Vim thay đổi kiểu thụt lề dựa trên kiểu đã sử dụng trong tệp hiện tại không?


Tại sao bạn không thêm các cài đặt như vậy trong .vimrc cho kiểu tệp cụ thể? :au BufEnter *.js :set shiftwidth=2. Điều này hoạt động cho tất cả các dự án,
SibiCoder

1
@SibiCoder: Bởi vì ngay cả cùng một kiểu tệp có thể có các kiểu thụt lề khác nhau trên các dự án khác nhau. (ví dụ: các dự án không thuộc cùng một công ty)
thameera

*.*chỉ là một mô hình. Bạn có thể sử dụng tên tệp hoặc đường dẫn là tốt. Hoặc, bạn có thể sử dụng lệnh tự động tương tự như những gì tôi đã cung cấp cho mỗi tệp. Bạn có thể hướng dẫn lệnh tự động lấy băng thông của tệp hiện tại và đặt nó cho đường dẫn của tệp này. Nó khá dễ dàng.
SibiCoder

Câu trả lời:


28

Để thêm vào câu trả lời của @Undo ở trên. Tim Pope cũng có một plugin cố gắng làm tương tự tại tpope / vim-sleuth


5
Theo kinh nghiệm của tôi, Sleuth dường như hoạt động tốt hơn một chút so với phát hiện, và cũng sẽ cố gắng xác định cài đặt thụt lề thích hợp cho các tệp mới bằng cách xem các tệp khác gần đó trong hệ thống tệp.
jamessan

@jamessan không biết điều đó, thật tốt khi biết.
Dhruva Sagar

2
Vui lòng đọc chính sách của chúng tôi về câu trả lời đề xuất plugin và thêm một số chi tiết về cách sử dụng chính xác plugin được đề xuất của bạn để giải quyết vấn đề.
200_success

15

Tôi chưa sử dụng nó, nhưng ciaranm / Detindent có thể là thứ bạn đang tìm kiếm. Nó dường như đang hoạt động (cập nhật lần cuối 25 ngày trước) và có vẻ như nó làm những gì bạn muốn:

Một plugin Vim, để tự động phát hiện các cài đặt thụt lề. Plugin này thêm một lệnh: DetectInent, cố gắng thiết lập một cách thông minh các tùy chọn 'shift thong', 'extendtab' và 'tabstop' dựa trên các cài đặt hiện có được sử dụng trong tệp hoạt động.


Plugin này không còn được phát triển tích cực. (Cập nhật lần cuối là 3 năm trước .)
Mateen Ulhaq
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.