2012-03-14 34 views
8

Tôi đang sử dụng vim với các plugin thẻ, jsctags và plugin danh sách bổ sung. Tất cả chúng dường như hoạt động chính xác, nhưng tôi không thể chuyển sang khai báo hàm/biến. Tôi đã thử ctrl +] nhưng nó không hoạt động. Có thể thiết lập vim để bạn có thể chuyển đến một hàm hoặc khai báo biến không?Làm cách nào để chuyển sang định nghĩa hàm Javascript trong vim?

+0

Giả sử bạn định nghĩa các hàm và biến của mình bằng 'var name =' ... bạn có thể không chỉ ':/var \ name' không? – jondavidjohn

+0

Tôi đoán rằng có thể làm việc, nhưng nó sẽ dễ dàng hơn nếu tôi chỉ có thể nhấn một phím tắt để tìm nó giống như cho các chức năng. –

Trả lời

6

Không cần jsctags, tôi đã điều sau đây trong tôi ~/.ctags để xử lý Javascript một cách chính xác:

--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*new[ \t]+Object\(/\1/o,object/                        
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/o,object/ 
--regex-JavaScript=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/f,function/ 
--regex-JavaScript=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\([^\]\)]*\)/\1/f,function/ 
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*new[ \t]+Array\(/\1/a,array/ 
--regex-JavaScript=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/a,array/ 
--regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^""]'[^'']*/\1/s,string/ 
--regex-JavaScript=/([^= ]+)[ \t]*=[ \t]*[^'']"[^""]*/\1/s,string/ 

Sử dụng ở trên, đơn giản ctags -R tạo ra tagfile thích hợp để phù hợp với chức năng Javascript (và biến và đối tượng) các định nghĩa.

+0

Tôi đã thử điều đó và nó vẫn không thể chuyển sang định nghĩa chức năng. –

+0

@javascriptninja Và bạn đã tạo lại tệp thẻ sau khi thêm chúng? –

+0

Vâng, tôi vừa gõ ctags -R. –

3

TagBar và Danh sách thẻ không tạo tệp tags thực tế được Vim sử dụng để chuyển đến định nghĩa.

Nếu bạn muốn khả năng này để nhảy bạn phải tạo tập tin này bằng tay từ các thiết bị đầu cuối:

$ ctags -R . 

nếu bạn sử dụng ctags hay:

$ jsctags . 

nếu bạn sử dụng jsctags hoặc từ Vim bản thân .

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