Tôi muốn biết làm thế nào nếu có thể xác thực nếu tệp PHP hợp lệ trong VIM mà không đóng VIM mỗi lần?Xác thực cú pháp PHP trong VIM
Cảm ơn bạn
Tôi muốn biết làm thế nào nếu có thể xác thực nếu tệp PHP hợp lệ trong VIM mà không đóng VIM mỗi lần?Xác thực cú pháp PHP trong VIM
Cảm ơn bạn
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>
Hãy thử http://www.vim.org/scripts/script.php?script_id=2736 nó rất tốt.
cảm ơn tôi sẽ xem xét – Tech4Wilco
có vẻ phức tạp với tôi – Tech4Wilco
Làm việc hoàn hảo cho tôi. –
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
và :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
và ]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
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. –
Á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? –
Để kiểm tra PHP cú pháp mà không cần phải tiết kiệm đầu tiên bạn có thể sử dụng:
bản đồ: w!php -l
Có một plugin gọi là vim-phpqa
đánh dấu dòng:
Đố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
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 detector và PHP 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ó.
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
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
@Jimmy, tôi nghĩ rằng nó sẽ giống như 'bản đồ:! Php -l% '. –
gpojd