Làm cách nào để thiết lập thẻ cho Ruby, SASS, Slim và Coffescript?


7

Tôi đang phát triển chính trong Rails bằng SASS, Slim và Coffeescript. Tôi đã cài đặt Exagsant Ctags và sử dụng cài đặt của tpope

Nó là loại công việc để ít nhất tôi có thể di chuyển xung quanh mã ruby ​​của mình.

Nhưng tôi muốn có thể:

SASS
color: $whatever    <- go to that color
@extend %something  <- go to that mixin
+another()          <- go to that include

HTML/SLIM
.nice_class         <- go to that class in .sass file
#id                 <- find JS files using this #id

RUBY
has_many :something <- go to that class
concerns :important <- go to that symbol

Và có lẽ là quan trọng nhất - tôi muốn tự động hoàn thành ở trên. Vì vậy, tôi có thể sử dụng lại các lớp CSS, biểu tượng HTML ID và Ruby trong dự án.

Làm cách nào để thiết lập Ctags để bao gồm các lớp css, id id html, sass mixins và mọi thứ khác được sử dụng trong phát triển web hiện đại?


Điều đó dường như vượt xa các thẻ đơn giản và mức độ tương tự cscope, nhưng tôi không biết liệu cscope có hỗ trợ HTML + JS + CSS hay không.
muru

1
Bạn có thể xem câu hỏi SO này .
romainl

Câu trả lời:


3

Vim là một trình soạn thảo văn bản mạnh mẽ. Các thẻ Tính năng này dựa trên một nền tảng đơn giản: Vim có thể đọc một hoặc một số thẻ cơ sở dữ liệu , có chứa các hồ sơ dựa trên dòng bao gồm một thẻ (cơ bản là một chuỗi), một tập tin và địa chỉ (mẫu tìm kiếm) tương ứng để định vị nó, và tùy chọn thông tin thêm.

Đó là những gì bạn nhận được: Nếu bạn xây dựng tệp thẻ bao gồm Ruby, SASS và CoffeeScript, bạn có thể chuyển đến các thẻ được xác định và sử dụng hoàn thành. Tuy nhiên, ngoài cơ chế đơn giản, dễ hiểu này, Vim không có khả năng phân biệt các ngôn ngữ và ký hiệu khác nhau dựa trên cú pháp hoặc sigils. Trong khi bạn có thể xây dựng trí thông minh tùy chỉnh xung quanh điều này, bạn sẽ chuyển sang hướng xây dựng một IDE, mà Vim thì không. Tốt hơn nên chấp nhận những hạn chế và sử dụng Vim khi nó vượt trội và bám sát vào IDE cho phần còn lại.

TL; DR: Vim là trình soạn thảo văn bản không biết ngôn ngữ với các phương tiện điều hướng cơ bản, để có đầy đủ khả năng, hãy sử dụng IDE để điều hướng.


1
Tôi biết Vim không hiểu ngôn ngữ mà nó chỉnh sửa. Có cách nào để thiết lập Ctags để nó thu thập mọi thứ bắt đầu bằng dấu chấm, hàm băm, ký hiệu phần trăm, v.v.? Tái bút Cảm ơn cho chuyển động lạc đà.
sa thải

1
Các ctags quá mức có các quy tắc cho các ngôn ngữ được hỗ trợ tích hợp sẵn; Tôi không nghĩ bạn có thể thay đổi chúng. Nhưng bạn có thể xác định phân tích cú pháp dựa trên cơ sở chính của mình thông qua--langdef=... --langmap=... --regex-...=...
Ingo Karkat 19/03/2015

2
"Tốt hơn nên chấp nhận những hạn chế và sử dụng Vim khi nó vượt trội và gắn bó với IDE cho phần còn lại". @IngoKarkat Điều đó thật vô nghĩa. Bạn đang nói chuyển đổi qua lại giữa Vim và IDE là lý tưởng hơn là tùy chỉnh Vim để làm mọi thứ bạn muốn. Sẽ tốt hơn nếu có một Vim tùy chỉnh thực hiện mọi thứ bạn muốn chính xác theo cách bạn muốn. Bạn đang từ bỏ quá dễ dàng. Đừng bỏ cuộc. Vim + Linux + shell = IDE dựa trên văn bản. Bạn có thể làm cho nó làm bất cứ điều gì bạn muốn trong khái niệm IDE dựa trên văn bản.
still_dreaming_1 20/03/2015

@INTPnerd: Ít nhất là đối với một số ngôn ngữ nhất định, IDE vượt xa về chức năng; đối với brevitiy, chỉ có hai điều mà Vim sẽ khó theo kịp: trực quan hóa GUI ưa thích (loại trừ khỏi phạm vi của Bram) và tính không đồng bộ (khó thực hiện). Cá nhân tôi sử dụng song song IntelliJ IDEA và GVIM, và tôi khá hài lòng với thiết lập "tốt nhất của cả hai thế giới".
Ingo Karkat 20/03/2015

@IngoKarkat Điều đó chỉ hoạt động cho những thứ nhất định. Nhưng theo như hỗ trợ tốt cho việc tra cứu / điều hướng mã, đây là những thứ bạn muốn hoạt động thực sự tốt trong vim bất cứ khi nào bạn đang sử dụng nó. Sẽ không có ý nghĩa gì khi chỉnh sửa mã trong vim, sau đó chuyển sang IDE để tra cứu một đoạn mã để bạn có thể chỉnh sửa mã bên trong Vim. Cho đến nay tôi chưa bao giờ hài lòng với bất kỳ mô phỏng Vim nào tôi đã thấy trong một IDE. Tôi luôn luôn thiếu Vim đầy đủ với tất cả các tùy chỉnh và plugin tôi có cho nó. Điều này càng trở nên đúng khi bạn sử dụng lâu hơn và do đó tùy chỉnh / mở rộng Vim theo ý thích của bạn.
still_dreaming_1 20/03/2015

1

Hãy thử vim-gutentags: https://github.com/ludovicchabant/vim-gutentags Nó tự động tạo thẻ cho bạn. Mặc dù vậy, một lời cảnh báo, plugin này sẽ tự động tạo lại các thẻ sau mỗi lần lưu để nó có thể làm chậm bạn. Ngoài ra, nó sẽ tạo thẻ cho bất kỳ tệp nào bạn đã mở để bạn có thể kết thúc với tệp thẻ trong thư mục dotfiles của mình. Nếu bạn muốn vô hiệu hóa việc tạo thẻ cho dự án, hãy đọc điều này: https://github.com/ludovicchabant/vim-gutentags/commit/7316197a7f884e264e20590cbad90046d8337fbb

Cá nhân tôi đã sử dụng nó khá lâu và nếu được cấu hình đúng cách, plugin này có thể là một trình tiết kiệm thời gian khổng lồ nhưng YMMV.


Chỉ cần tàn tật easytagsplugin đã được làm chậm vim xuống vi.stackexchange.com/a/2897/237 và chuyển sang sử dụng móc git theo đề nghị của tpope
firedev

^ Điều đó cũng không hoạt động tốt.
sa thải

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.