Tôi đã thử lệnh "gg = G" thông thường, đây là cách tôi sử dụng để sửa lỗi thụt lề của các tệp mã. Tuy nhiên, nó dường như không hoạt động ngay trên các tệp HTML. Nó chỉ đơn giản là loại bỏ tất cả các định dạng.
Nếu autoformat / thụt lề của vim gg=G
dường như bị "hỏng" (chẳng hạn như thụt lề trái mỗi dòng), rất có thể plugin thụt lề không được bật / tải. Nó thực sự nên đưa ra một thông báo lỗi thay vì chỉ thực hiện thụt lề xấu, nếu không, người dùng chỉ nghĩ rằng tính năng autoformat / thụt lề là khủng khiếp, khi nó thực sự là khá tốt.
Để kiểm tra xem plugin thụt lề có được bật / tải hay không, hãy chạy :scriptnames
. Xem nếu .../indent/html.vim
có trong danh sách. Nếu không, điều đó có nghĩa là plugin không được tải. Trong trường hợp đó, thêm dòng này vào ~/.vimrc
:
filetype plugin indent on
Bây giờ nếu bạn mở tệp và chạy :scriptnames
, bạn sẽ thấy .../indent/html.vim
. Sau đó chạy gg=G
, cần thực hiện autoformat / thụt lề chính xác ngay bây giờ. (Mặc dù nó sẽ không thêm dòng mới, vì vậy nếu tất cả mã html nằm trên một dòng, nó sẽ không được thụt lề).
Lưu ý: nếu bạn đang chạy :filetype plugin indent on
trên dòng lệnh vim thay vì ~/.vimrc
, bạn phải mở lại tệp :e
.
Ngoài ra, bạn không cần phải lo lắng autoindent
và smartindent
cài đặt, chúng không liên quan đến việc này.