Không còn nghi ngờ gì nữa, Vim là một trình soạn thảo lập trình có khả năng ngay khi cài đặt, nhưng chính các plugin của trình soạn thảo giúp bạn tận dụng tối đa nó. Trong phần đầu tiên của loạt bài viết này, chúng tôi đã thảo luận về một số plugin Vim liên quan đến lập trình (Tagbar và delimitMate). Tiếp tục trên cùng một con đường, trong bài viết này, chúng ta sẽ thảo luận về một plugin Vim hữu ích khác dành cho các nhà phát triển phần mềm - Syntastic.
Xin lưu ý rằng tất cả các ví dụ, lệnh và hướng dẫn được đề cập trong hướng dẫn này đã được thử nghiệm trên Ubuntu 16.04 và phiên bản Vim mà chúng tôi sử dụng là 7.4.
Nếu tôi nói với bạn rằng có một plugin Vim cung cấp thông tin về lỗi cú pháp mà không cần bạn phải biên dịch mã của mình thì sao? Có, một plugin như vậy tồn tại và tên của nó là Syntastic.
"Syntastic là một plugin kiểm tra cú pháp cho Vim chạy các tệp thông qua các trình kiểm tra cú pháp bên ngoài và hiển thị bất kỳ lỗi nào phát sinh cho người dùng. Điều này có thể được thực hiện theo yêu cầu hoặc tự động khi các tệp được lưu", tài liệu chính thứccủa plugin cho biết. "Nếu phát hiện lỗi cú pháp, người dùng sẽ được thông báo và vui mừng vì họ không phải biên dịch mã hoặc chạy tập lệnh để tìm lỗi".
Việc cài đặt plugin này tương tự như cách chúng ta đã cài đặt những plugin đã thảo luận ở phần đầu - tất cả những gì bạn cần làm là chạy các lệnh sau:
Sau khi plugin được cài đặt thành công (tức là các lệnh trên đã thành công), bạn không cần phải làm gì khác - plugin sẽ tự động tải khi trình soạn thảo Vim được khởi chạy.
Bây giờ, để sử dụng plugin, hãy mở tệp mã nguồn và lưu tệp đó bằng lệnh :w Vim. Sau một khoảng dừng rất ngắn, bạn sẽ thấy lỗi cú pháp - nếu có - trong mã của bạn sẽ được đánh dấu. Ví dụ, ảnh chụp màn hình sau đây sẽ cho bạn biết cách plugin làm nổi bật lỗi:
Dấu '>>' ở đầu một dòng cho biết có một số vấn đề với mã được viết trong dòng đó. Để biết chính xác lỗi là gì hoặc ít nhất là có được ý tưởng sơ bộ về lỗi, hãy đưa con trỏ đến dòng đó - mô tả lỗi sẽ được hiển thị ở cuối cửa sổ Vim.
Vì vậy, theo cách này, bạn có thể giải quyết hầu hết các lỗi liên quan đến cú pháp mà thậm chí không cần biên dịch mã.
Tiếp tục, nếubạn chạy lệnh :Errors, mô tả về tất cả các lỗi liên quan đến cú pháp trong tệp nguồn hiện tại sẽ được hiển thị. Ví dụ, chạy lệnh :Errors trong trường hợp của tôi đã đưa ra thông tin sau:
Hãy nhớ rằng thông tin mà lệnh :Errors hiển thị không được tự động làm mới, nghĩa là ngay cả sau khi lỗi được giải quyết, mô tả về lỗi đó vẫn sẽ ở khu vực dưới cùng cho đến khi bạn chạy lại lệnh :Errors.
Cần đề cập rằng có nhiều tùy chọn cấu hìnhgiúp Syntastic trở nên thân thiện với người dùng hơn. Ví dụ, bạn có thể đặt dòng sau vào tệp .vimrc của mình nếu bạn muốn lệnh :Errors tự động cập nhật đầu ra của nó mỗi khi lỗi được giải quyết:
Một hạn chế lớn khác mà hành vi Syntastic mặc định có là bạn phải chạy lệnh :w để plugin chỉ ra các dòng lỗi - điều này không sao khi chỉnh sửa tệp, nhưng hơi lạ khi bạn vừa mở tệp nguồn.
Để đảm bảo Syntastic tự động đánh dấu lỗi khi mở tệp, hãy thêm dòng sau vào tệp .vimrc của bạn:
Tương tự, nếu bạn muốn con trỏ nhảy đến sự cố đầu tiên được phát hiện khi lưu hoặc mở tệp, hãy đặt dòng sau vào Tệp .vimrc:
Có hai giá trị khác mà bạn có thể gán cho biến đã đề cập ở trên: 2 và 3. Sau đây là nội dung tài liệu chính thức nói về hai giá trị này:
"Khi đặt thành 2, con trỏ sẽ nhảy đến sự cố đầu tiên được phát hiện, nhưng chỉ khi sự cố này là lỗi" và "khi đặt thành 3, con trỏ sẽ nhảy đến lỗi đầu tiên được phát hiện, nếu có. Nếu tất cả các sự cố được phát hiện là cảnh báo, con trỏ sẽ không nhảy".
Thông tin sau đây cũng có thể hữu ích với bạn:
"Sử dụng :SyntasticCheck để kiểm tra thủ công" lỗi. "Sử dụng :Errors để mở cửa sổ danh sách vị trí và :lclose để đóng cửa sổ. Bạn có thể xóa danh sách lỗi bằng :SyntasticReset và bạn có thể sử dụng :SyntasticToggleMode để chuyển đổi giữa kiểm tra chủ động (kiểm tra khi ghi bộ đệm) và kiểm tra thụ động (thủ công)."
Lưu ý: Syntastic không chỉ giới hạn ở mã được viết bằng C và C++. Nó cũng hỗ trợ một danh sách lớn các ngôn ngữ lập trình khác - hãy truy cập tại đây để tìm hiểu thêm về nó.
Kết luận
Không nghi ngờ gì nữa,Syntastic là một plugin Vim rất hữu ích vì nó giúp bạn tránh khỏi những rắc rối khi biên dịch thường xuyên, ít nhất là khi liên quan đến các lỗi liên quan đến cú pháp. Và chưa kể đến việc tiết kiệm được rất nhiều thời gian của bạn.
Như bạn đã thấy, Syntastic trở nên hữu ích hơn nữa sau khi bạn đã định cấu hình một số tùy chọn chính của nó. Để giúp bạn bắt đầu, tài liệu chính thức có phần 'Cài đặt được đề xuất' - hãy xem qua phần đó. Ngoài ra còn có một phần Câu hỏi thường gặp nhỏ hay trong trường hợp bạn gặp phải một số lỗi hoặc có một số thắc mắc hoặc câu hỏi.
Xin lưu ý rằng tất cả các ví dụ, lệnh và hướng dẫn được đề cập trong hướng dẫn này đã được thử nghiệm trên Ubuntu 16.04 và phiên bản Vim mà chúng tôi sử dụng là 7.4.
Syntastic
Nếu công việc phát triển phần mềm của bạn liên quan đến việc làm việc với các ngôn ngữ như C và C++, thì không cần phải nói rằng việc giải quyết các lỗi thời gian biên dịch sẽ là một phần của công việc hàng ngày của bạn. Nhiều lần, lỗi biên dịch phát sinh do cú pháp không chính xác được sử dụng trong mã nguồn, vì các nhà phát triển không quan sát thấy chúng khi chỉ nhìn vào mã.Nếu tôi nói với bạn rằng có một plugin Vim cung cấp thông tin về lỗi cú pháp mà không cần bạn phải biên dịch mã của mình thì sao? Có, một plugin như vậy tồn tại và tên của nó là Syntastic.
"Syntastic là một plugin kiểm tra cú pháp cho Vim chạy các tệp thông qua các trình kiểm tra cú pháp bên ngoài và hiển thị bất kỳ lỗi nào phát sinh cho người dùng. Điều này có thể được thực hiện theo yêu cầu hoặc tự động khi các tệp được lưu", tài liệu chính thứccủa plugin cho biết. "Nếu phát hiện lỗi cú pháp, người dùng sẽ được thông báo và vui mừng vì họ không phải biên dịch mã hoặc chạy tập lệnh để tìm lỗi".
Việc cài đặt plugin này tương tự như cách chúng ta đã cài đặt những plugin đã thảo luận ở phần đầu - tất cả những gì bạn cần làm là chạy các lệnh sau:
Mã:
cd ~/.vim/bundle/
Mã:
git clone https://github.com/scrooloose/syntastic.git
Bây giờ, để sử dụng plugin, hãy mở tệp mã nguồn và lưu tệp đó bằng lệnh :w Vim. Sau một khoảng dừng rất ngắn, bạn sẽ thấy lỗi cú pháp - nếu có - trong mã của bạn sẽ được đánh dấu. Ví dụ, ảnh chụp màn hình sau đây sẽ cho bạn biết cách plugin làm nổi bật lỗi:
Dấu '>>' ở đầu một dòng cho biết có một số vấn đề với mã được viết trong dòng đó. Để biết chính xác lỗi là gì hoặc ít nhất là có được ý tưởng sơ bộ về lỗi, hãy đưa con trỏ đến dòng đó - mô tả lỗi sẽ được hiển thị ở cuối cửa sổ Vim.
Vì vậy, theo cách này, bạn có thể giải quyết hầu hết các lỗi liên quan đến cú pháp mà thậm chí không cần biên dịch mã.
Tiếp tục, nếubạn chạy lệnh :Errors, mô tả về tất cả các lỗi liên quan đến cú pháp trong tệp nguồn hiện tại sẽ được hiển thị. Ví dụ, chạy lệnh :Errors trong trường hợp của tôi đã đưa ra thông tin sau:
Hãy nhớ rằng thông tin mà lệnh :Errors hiển thị không được tự động làm mới, nghĩa là ngay cả sau khi lỗi được giải quyết, mô tả về lỗi đó vẫn sẽ ở khu vực dưới cùng cho đến khi bạn chạy lại lệnh :Errors.
Cần đề cập rằng có nhiều tùy chọn cấu hìnhgiúp Syntastic trở nên thân thiện với người dùng hơn. Ví dụ, bạn có thể đặt dòng sau vào tệp .vimrc của mình nếu bạn muốn lệnh :Errors tự động cập nhật đầu ra của nó mỗi khi lỗi được giải quyết:
Mã:
let g:syntastic_always_populate_loc_list = 1
Để đảm bảo Syntastic tự động đánh dấu lỗi khi mở tệp, hãy thêm dòng sau vào tệp .vimrc của bạn:
Mã:
let g:syntastic_check_on_open = 1
Mã:
let g:syntastic_auto_jump = 1
"Khi đặt thành 2, con trỏ sẽ nhảy đến sự cố đầu tiên được phát hiện, nhưng chỉ khi sự cố này là lỗi" và "khi đặt thành 3, con trỏ sẽ nhảy đến lỗi đầu tiên được phát hiện, nếu có. Nếu tất cả các sự cố được phát hiện là cảnh báo, con trỏ sẽ không nhảy".
Thông tin sau đây cũng có thể hữu ích với bạn:
"Sử dụng :SyntasticCheck để kiểm tra thủ công" lỗi. "Sử dụng :Errors để mở cửa sổ danh sách vị trí và :lclose để đóng cửa sổ. Bạn có thể xóa danh sách lỗi bằng :SyntasticReset và bạn có thể sử dụng :SyntasticToggleMode để chuyển đổi giữa kiểm tra chủ động (kiểm tra khi ghi bộ đệm) và kiểm tra thụ động (thủ công)."
Lưu ý: Syntastic không chỉ giới hạn ở mã được viết bằng C và C++. Nó cũng hỗ trợ một danh sách lớn các ngôn ngữ lập trình khác - hãy truy cập tại đây để tìm hiểu thêm về nó.
Kết luận
Không nghi ngờ gì nữa,Syntastic là một plugin Vim rất hữu ích vì nó giúp bạn tránh khỏi những rắc rối khi biên dịch thường xuyên, ít nhất là khi liên quan đến các lỗi liên quan đến cú pháp. Và chưa kể đến việc tiết kiệm được rất nhiều thời gian của bạn.Như bạn đã thấy, Syntastic trở nên hữu ích hơn nữa sau khi bạn đã định cấu hình một số tùy chọn chính của nó. Để giúp bạn bắt đầu, tài liệu chính thức có phần 'Cài đặt được đề xuất' - hãy xem qua phần đó. Ngoài ra còn có một phần Câu hỏi thường gặp nhỏ hay trong trường hợp bạn gặp phải một số lỗi hoặc có một số thắc mắc hoặc câu hỏi.