2010-09-07 28 views
11

Gần đây tôi đã thực hiện một vài sai lầm khi tái cấu trúc trong Vim, kết quả là biến không được xác định và không sử dụng. Bất kỳ IDE phong nha (như NetBeans) sẽ đánh dấu chúng như vậy, nhưng tôi chưa đi qua một plugin Vim mà làm như vậy.Vim: biến không xác định được bỏ đánh dấu

Có ai có thể giúp tôi không? Tôi chủ yếu là lập trình trong PHP.

+0

Tôi thực sự nhớ một giải pháp ... – pestaa

+2

Vim thường không bao gồm các loại tính năng đó khi chúng chiếm một chút công bằng của CPU để kiểm tra mã, và PHP là một ngôn ngữ động mà làm cho nó thậm chí còn khó khăn hơn. –

+0

Tôi đã nhận ra rằng Vim có khả năng tốt hơn trong các lĩnh vực khác, nhưng với các nguồn lực chúng tôi có thể kiểm tra ngay cả các kịch bản động ngày nay, tôi muốn viết mã tương tác hơn một chút, nếu bạn hiểu ý tôi. – pestaa

Trả lời

1

Bạn có thể chạy trình phân tích mã PHP của Zend từ bên trong VIM. Tôi hiện đang làm điều này. Việc nắm bắt được rằng Zend Code Analyzer không còn được đóng gói như một nhị phân riêng biệt khi cài đặt Zend Studio. Tôi không chắc bạn đang chạy hệ điều hành nào. Tôi đang chạy trên OS X. Nếu bạn chưa có tệp nhị phân, hãy sử dụng các bước 1 & 2 trên trang web này để tải xuống - http://michalf.me/blog:zend-code-analyzer-in-textmate. Bạn có thể phải điều chỉnh cho hệ điều hành của bạn.

Sau khi nhận tệp nhị phân, hãy thêm phần sau vào tệp .vimrc của bạn và thay thế/usr/local/... bằng đường dẫn đến ZendCodeAnalyzer của bạn.

if !exists("autocommands_loaded") 

    let autocommands_loaded = 1 
    "PHP Make 
    autocmd BufRead *.inc,*.php set makeprg=/usr/local/bin/ZendCodeAnalyzer\ % 
    autocmd BufRead *.inc,*.php set errorformat=%f(line\ %l):\ %m 

endif 

map <F7> :silent lmake<cr>:lwindow <cr>:redraw!<cr> 

Bây giờ khi bạn nhập F7, thiết bị sẽ chạy được thiết lập để chạy ZendCodeAnalyzer. Nó sẽ đưa kết quả vào danh sách vị trí -: vị trí trợ giúp. Bạn có thể cuộn qua danh sách vị trí và nhấn enter trên một dòng và nó sẽ đưa bạn đến dòng đó trong tập tin của bạn. Nếu nó không tìm thấy bất cứ điều gì, sau đó nó sẽ không mở bất cứ điều gì.

2

nên là giải pháp với plugin Syntastic, trên đó bạn cần đặt một trình phân tích mã tĩnh PHP như PHPLint.

Tuy nhiên tôi chưa bao giờ dành chút thời gian để kiểm tra điều này!

Các chương trình PHP khác có thể được tìm thấy trên số SO answer này.

+0

Tôi đã xem xét vào Syntastic, hãy xem những gì tôi có thể đến với ... Cảm ơn các liên kết! – pestaa

0

Khi đổi tên vars trong một loại tập tin toàn phù cmd vi:

:% s/\ $ oldname/\ $ newName/

Khi đổi tên giữa đường 14 và 21 (ví dụ như bên trong một hàm) gõ

: 14,21s/\ $ oldname/\ $ newName/

Khi đổi tên các vars đệ quy theo loại thư mục trong dòng vi cmd:

:! Find DIRECTORY_PATH -name "* .php" | xargs sed -ni 's/\ $ oldName/\ $ newName /'

Sao lưu thư mục trước để tránh đau đầu. ;)

+0

Câu hỏi của ông không phải là về tái cấu trúc, tôi nghĩ, nhưng về phát hiện những sai lầm như biến không xác định. – Drasill

+0

Thay vì sao lưu luôn luôn giữ nó dưới sự kiểm soát phiên bản. Bên cạnh đó câu trả lời không liên quan đến câu hỏi. –

1

Vâng, điều này có thể không phải là những gì bạn đang tìm kiếm, nhưng nếu bạn phải có Vim keybindings (tôi biết tôi cần chúng), sau đó jVi mang đến cho NetBeans. Tôi không biết nếu đây là một lựa chọn khả thi cho bạn, nhưng có lẽ điều này sẽ giúp bạn.

+0

Đã thử nó, nó mang lại cho tôi hầu như không có sức mạnh của nền tảng ban đầu. Dù sao cũng cảm ơn bạn. – pestaa

+0

Điều đó thật thú vị. Bạn đã thử nó bao lâu rồi? Tôi chưa đi qua một tính năng trong Vim mà tôi sử dụng trên một cơ sở hợp lý thường xuyên mà không được thực hiện trong jVi. Bạn phải là người dùng Vim thực sự. Dù sao, như tôi đã nói, nó có lẽ không phải là những gì bạn đang tìm kiếm. –

+0

Nó giống như một năm trước. jVi chỉ thực hiện các ràng buộc chỉnh sửa cơ bản, điều này rất hay, nhưng tôi sẽ bỏ lỡ các plugin, bộ đệm, danh sách vị trí, thanh trạng thái có thể cấu hình và tích hợp chặt chẽ với dòng lệnh. Chỉ cần đặt tên một vài. Tôi khuyên bạn nên thử Vim bên ngoài Netbeans và khám phá những khả năng vô cùng khó hiểu của nó. – pestaa

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