Vì vậy, gần đây tôi đã cố gắng thiết lập quy trình làm việc iOS dựa trên Vim.clang_complete: Tự động hoàn thành Vim cho iOS
tôi thấy clang_complete, và đã thiết lập các tùy chọn người dùng kêu vang trong vimrc của tôi như vậy
let g:clang_user_options='-fblocks -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300'
như đã mô tả ở đây: http://www.zenskg.net/wordpress/?p=199#comment-229
và bổ sung thêm một vài khung/header/đường dẫn lib. Tôi sẽ không đăng tải toàn bộ dòng vì nó rất lớn.
Vì vậy, tôi đã thử nghiệm biên soạn của một trong những tập tin trong dự án của tôi sử dụng clang
từ dòng lệnh (bằng cách sử dụng tùy chọn tương tự), và nó biên dịch tốt, nhưng chỉ nếu tôi sử dụng -arch armv6/7
cờ. Nếu tôi không cố gắng biên dịch cho i386 và phàn nàn về các tệp tiêu đề bị thiếu.
Cho đến nay rất tốt. Bây giờ tôi chỉ sử dụng các tùy chọn chính xác giống như tôi đã cung cấp cho clang
, cho các tùy chọn người dùng của clang_complete
trong số .vimrc
của tôi đúng không?
Không. Khi tôi làm điều đó và cố gắng tự động hoàn thành một từ trong Vim, nó nói
unknown argument: '-arch'
trong danh sách QuickFix của Vim. Tôi cần lá cờ này - tôi nên tiến hành như thế nào?
Bất kỳ ý tưởng nào hữu ích. Tôi rất thích nhận được mã hoàn thành iOS làm việc theo Vim.
Cảm ơn bạn rất nhiều ... Điều này giúp tôi tiếp tục hơn rất nhiều. Tôi chạy xcodebuild với trong chế độ tiết, sao chép các tùy chọn clang, sau đó chạy clang với các tùy chọn này trong chế độ tiết, sau đó sao chép các tùy chọn clang -cc1 từ đầu ra vào .vimrc của tôi. clang_complete vẫn không thể tự động hoàn thành mã của tôi mặc dù, tôi nghĩ rằng tôi cần phải sử dụng cờ -frameworks mà dường như không có một tương đương trong -cc1. Bạn có thể chỉ cho tôi một số tài liệu? Các trang người đàn ông không phải là rất tốt-Tôi sẽ không bao giờ biết về tùy chọn -cc1 mà không có bạn nói với tôi. – Sam
Đây là một cái gì đó bạn có thể thử: mở ~/.vim/plugin/clang_complete.vim (hoặc bất cứ nơi nào bạn đã cài đặt clang_complete), và tìm các chức năng ClangCompleteBinary. Có hai điều bạn có thể thử ở đó: 1. Nhận xét ra khối v: shell_error condition. Clang thường sẽ trả về các tùy chọn hoàn thiện tốt ngay cả khi nó có lỗi biên dịch và clang_complete bỏ qua thực tế này. 2. thay đổi hệ thống (l: command) thành hệ thống (l: command. '| & Tee /tmp/clang.log') và kích hoạt hoàn thành từ vim. Sau đó, bạn sẽ có thể thấy trong /tmp/clang.log đầu ra lỗi chính xác từ clang. Hy vọng điều đó sẽ hữu ích. –