Tôi có ~ 30.000 dòng mã OCaml được thụt lề rõ ràng (bao gồm các tệp mly và mll) và muốn thụt lề chúng. Tôi đã thử googling cho các biến thể của 'ocaml indent' gần nhất tôi có thể nhận được là sử dụng Omlet.vim và thụt lề mã một dòng tại một thời điểm (thông qua C-f trong chế độ chèn). Có cách nào để làm thụt đầu dòng cho tất cả 30000 dòng không?Làm cách nào để thụt lề mã OCaml hiện tại
Trả lời
Tôi sử dụng Emacs như biên tập viên của tôi với gói này được cài đặt:
http://caml.inria.fr/pub/docs/u3-ocaml/emacs/index.html
Để thụt mã hiện tại bạn cần để làm nổi bật nó và sau đó sử dụng tổ hợp phím C-M-\
Bạn có thể kịch bản này cho mỗi tập tin khá dễ dàng và tôi thấy thụt đầu dòng khá tốt.
Khi tôi muốn tái-indent cả tập tin trong vim, tôi sử dụng trình tự sau đây chính:
ggVG=
Breaking xuống này cho bạn, gg di chuyển con trỏ đến đầu tệp. V chuyển sang chế độ trực quan. G chọn ở cuối tệp. = thụt lề các dòng được chọn.
Điều này sẽ nhanh hơn nhiều so với phương pháp áp dụng dòng thụt đầu dòng, nhưng sẽ sử dụng cùng một quy tắc (cảnh báo: sử dụng Omlet, thụt lề toàn bộ tệp có thể mất một lúc).
Bây giờ, người ta có thể sử dụng OCP-indent (OPAM cài đặt OCP-indent) và gọi nó như thế này:
ocp-indent bad-indented-ocaml.ml > well-indented-file.ml
Sử dụng ocp-indent
công cụ cho việc này. Dưới đây là ví dụ về quy tắc Makefile
, quy tắc này sẽ tự động thụt lề cho bạn ml
tệp.
.PHONY: auto-ocp-indent
auto-ocp-indent: *.ml
for mlfile in $^; do ocp-indent -i $$mlfile; done
- 1. Làm cách nào để thụt lề đúng mã PHP/HTML?
- 2. Làm cách nào để tự động thụt lề mã nguồn?
- 3. Làm cho tab thụt lề dòng hiện tại
- 4. Mã Emacs để tự động đặt chế độ tab thụt lề theo mã hiện tại
- 5. Làm cách nào để tắt cảnh báo thụt lề JSLint?
- 6. Làm cách nào để làm cho Emacs tự động thụt lề mã C của tôi?
- 7. Tôi làm cách nào để thụt lề một khối mã trong vim?
- 8. Tại sao COBOL phải được thụt lề?
- 9. Làm cách nào để thụt lề mã F # trong Visual Studio 2008 ở chế độ #light
- 10. removeChild(): làm thế nào để loại bỏ thụt lề quá?
- 11. Cách thực hiện thụt lề trong thẻ html li li
- 12. Sử dụng Emacs để thụt lề (shift 4) mã
- 13. Có cách nào dễ dàng để thực hiện chuỗi thụt lề đa dòng trong Ruby không?
- 14. vi thụt lề
- 15. Cách thực hiện if/else trong HAML mà không lặp lại mã thụt lề
- 16. xoá bỏ thụt lề thụt lề với CSS
- 17. Làm thế nào để thụt lề nhiều dòng mã trong Rstudio?
- 18. Làm cách nào để tắt tính năng thụt lề của các mục trong danh sách LaTeX?
- 19. Bỏ thụt lề trong Netbeans
- 20. mã ruby thụt lề trên bay trong emacs
- 21. Hiện Thụt lề Hướng dẫn dòng trong Xcode
- 22. Làm cách nào để tạo chú thích java thụt lề một cách chính xác?
- 23. Làm cách nào để thụt lề XML đúng cách bằng XMLSerializer?
- 24. Cách thích hợp để thụt lề Erlang là gì?
- 25. Làm cách nào để khắc phục vấn đề thụt lề nhỏ này với vim?
- 26. Làm cách nào để dễ dàng thụt lề đầu ra cho luồng?
- 27. Thụt lề liên tục Eclipse
- 28. Thay đổi định dạng thụt lề vim
- 29. Làm cách nào để hiển thị mã nguồn có thụt lề trong một trang web? HTML? CSS?
- 30. php: tự động thụt lề toàn bộ mã?
Cảm ơn bạn đã hoạt động. – vbigiani
Bạn có thể làm điều tương tự trong chế độ tuareg với 'M-q'. Không biết làm thế nào nó quy mô đến hàng ngàn dòng mặc dù. –
@ Chris, bạn đã đúng. Tôi đã sử dụng tuareg khi tôi bắt đầu học OCaml và tôi nghĩ nó phổ biến hơn so với gói được lưu trữ trên trang inria. Tôi chỉ thích sử dụng gói mà tôi đã đăng. Nhưng lấy nó bằng một hạt muối vì tôi không phải là người lập trình OCaml được đánh bóng nhất xung quanh;) – chollida