Tôi muốn tích hợp trình định dạng mã nguồn Uncrustify với Vim. Bất kỳ tùy chọn nào dưới đây đều đủ.Vim autocmd (lưu tệp, chạy mã định dạng, tải lại tệp)
- Format mã mà tôi hiện đang chỉnh sửa (ví dụ: khi
gq
được nhấn). - Định dạng mã khi tôi lưu tệp và sau đó tải lại tệp đã định dạng vào cửa sổ Vim hiện tại.
Tùy chọn 1 thích hợp hơn. Tôi đã thử
set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup
tức là tôi gọi Uncrustify với tùy chọn dòng lệnh. Điều này không hoạt động. Vi đưa ra lỗi E518: Unknown option: ~/misc/uncrustify.cfg
.
Đối với phương án 2, tôi đã thử sau đây trong tập tin vimrc
autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>
Các tập tin được định dạng sau khi tiết kiệm, nhưng tôi phải tự tải lại các tập tin vào Vim.
Điều đó đã xóa lỗi VI. Tôi cũng đã phải thêm tùy chọn -l để chỉ định ngôn ngữ là CPP, vì đầu vào không xác thực là từ stdin. Tuy nhiên, nhấn gq trong vi không định dạng tệp. Nếu tôi nhấn nó một lần nữa, thì chỉ dòng hiện tại được định dạng và dòng sau được thêm vào tệp đang được chỉnh sửa - "Phân tích cú pháp: 57 byte (57 ký tự) từ stdin dưới dạng CPP ngôn ngữ". Tôi nghĩ rằng những gì tôi đang thiếu là làm thế nào để cấu hình lệnh formatprg để đọc toàn bộ tập tin, và thứ hai ngăn chặn đầu ra của dòng trên vào tập tin đang được chỉnh sửa. – user1280213
@ user1280213 Tôi đã cập nhật câu trả lời, hy vọng rằng sẽ giúp – galymzhan
Cảm ơn. Điều đó đã giúp. – user1280213