2011-09-01 27 views

Trả lời

43

Bạn có thể thực thi lệnh shell trong vim. Điều này tương tự như gọi php -l filename.php từ vỏ:

:!php -l % 

Tôi đã này ánh xạ vào tập tin ~/.vim/after/ftplugin/php.vim của tôi vì vậy mà tôi chỉ phải nhấn F5:

map <F5> :!php -l %<CR> 
+5

Lưu ý điều này sẽ xác thực tệp đã lưu, vì vậy nếu bạn có các thay đổi chưa được lưu, nó sẽ không thấy chúng. – Useless

+0

Chúng tôi có thể sử dụng một khóa khác để lập bản đồ như: CTRL + P không? – Tech4Wilco

+1

@Jimmy, tôi nghĩ rằng nó sẽ giống như 'bản đồ :! Php -l% '. – gpojd

7

Sử dụng :make với các thiết lập cụ thể php sau:

:set makeprg=php\ -l\ % 
:set errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G 

lỗi cú pháp của bạn sẽ nằm trong cửa sổ QuickFix. Bạn có thể mở bộ đệm này bằng cách viết tắt là :copen hoặc :cope. Nếu bạn chỉ muốn mở cửa sổ nếu lỗi của họ là sử dụng :cwindow.

Bạn có thể sử dụng :cnext:cprev để di chuyển qua danh sách quickfix để chuyển đến các lỗi tương ứng. Tôi đề nghị plugin tuyệt vời của Tim Pope là unimpared.vim để chuyển qua danh sách đơn giản như [q]q.

Để đơn giản hóa quy trình làm việc tôi đề nghị một bản đồ như thế này:

nnoremap <f5> :update<bar>make<bar>cwindow<cr> 

Bây giờ bạn chỉ có thể nhấn <f5> và bộ đệm sẽ được cập nhật (nếu cần thiết), linted, và bất kỳ lỗi nào sẽ xuất hiện trong QuickFix cửa sổ.

Để làm điều này mạnh hơn một chút, hãy thêm các lệnh này vào ~/.vim/after/ftplugin/php.vim. Ví dụ ~/.vim/after/ftplugin/php.vim

setlocal makeprg=php\ -l\ % 
setlocal errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G 
nnoremap <buffer> <silent> <f5> :update<bar>sil! make<bar>cwindow<cr> 

Để biết thêm thông tin:

:h quickfix 
:h makeprg 
:h errorformat 
+0

Khi tôi chạy mã này, nó hoạt động nhưng làm cho bộ đệm hoàn toàn trống. –

+0

Ánh xạ được cung cấp sẽ chỉ ghi bộ đệm * nếu cần), lint qua makeprg, và sau đó hiển thị cửa sổ quickfix nếu có lỗi. Nó không thực hiện bất kỳ thay đổi nào đối với bộ đệm theo bất kỳ cách nào khác ngoài việc có thể ghi nó vào đĩa. Có một cơ hội bạn đang nhìn vào một cửa sổ quickfix trống? –

0

Đối với chỉ nổi bật cú pháp (những gì đôi khi mang lại những manh mối về lỗi) một tập tin chưa được lưu (thường là màu đen và trắng trên vim) chỉ cần nguồn tập tin cú pháp:

:source $VIMRUNTIME/syntax/[the syntaxfile].vim 

Ví dụ

:source $VIMRUNTIME/syntax/sh.vim 
:source $VIMRUNTIME/syntax/php.vim 
:source $VIMRUNTIME/syntax/javascript.vim 
0

Bạn nên thử một plugin như Neomake. Nó sẽ hiển thị cho bạn trong các đánh dấu lỗi máng xối cho mọi lỗi cú pháp PHP. Đi trên dòng để xem lỗi chính nó. Bạn cũng có thể liên kết nó với PHP Mess detectorPHP Stan để hiển thị cho bạn các lỗi và các cải tiến có thể có trong mã của bạn.

Kết hợp này rất mạnh mẽ!

Trong trường hợp bạn quan tâm, tôi đã viết một bài viết về cách tạo một Vim PHP IDE. Đây là cơ bản một danh sách các plugin cần thiết bạn nên thử! Tất nhiên Neomake là một phần của nó.

Các vấn đề liên quan