Ich entwickle Main in Rails mit SASS, Slim und Coffeescript. Ich habe Exuberant Ctags installiert und verwende das Setup von tpope
Es funktioniert so, dass ich mich zumindest in meinem Ruby-Code bewegen kann.
Aber ich möchte in der Lage sein:
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
Und vielleicht das Wichtigste - ich möchte das oben Gesagte automatisch vervollständigen. So kann ich CSS-Klassen, HTML-IDs und Ruby-Symbole im Projekt wiederverwenden.
Wie richte ich Ctags ein, um CSS-Klassen, HTML-IDs, Sass-Mixins und alles andere abzudecken, was in der modernen Webentwicklung verwendet wird?
autocompletion
tags
ctags
Firedev
quelle
quelle
cscope
hinauszugehen, aber ich weiß nicht, ob cscope HTML + JS + CSS unterstützt.Antworten:
Vim ist ein leistungsstarker Texteditor. Die Tags- Funktion basiert auf einer einfachen Grundlage: Vim kann eine oder mehrere Tag-Datenbanken lesen , die zeilenbasierte Datensätze enthalten, die aus einem Tag (im Grunde eine Zeichenfolge), einer entsprechenden Datei und Adresse (Suchmuster) bestehen, um sie zu finden, und optional zusätzliche Information.
Das bekommen Sie: Wenn Sie eine Tag-Datei erstellen, die Ruby, SASS und CoffeeScript abdeckt, können Sie zu definierten Tags springen und die Vervollständigung verwenden. Über diesen einfachen, leicht verständlichen Mechanismus hinaus verfügt Vim jedoch nicht über die Fähigkeit, verschiedene Sprachen und Symbole anhand von Syntax oder Siegeln zu unterscheiden. Während Sie benutzerdefinierte Informationen erstellen könnten, würden Sie sich in die Richtung bewegen, eine IDE zu erstellen, was Vim nicht ist. Akzeptieren Sie besser die Einschränkungen und verwenden Sie Vim dort, wo es sich auszeichnet, und halten Sie sich für den Rest an eine IDE.
TL; DR: Vim ist ein sprachunabhängiger Texteditor mit grundlegenden Navigationsmitteln. Verwenden Sie für alle Funktionen eine IDE für die Navigation.
quelle
--langdef=... --langmap=... --regex-...=...
Probieren Sie vim-gutentags aus: https://github.com/ludovicchabant/vim-gutentags Es werden automatisch Tags für Sie generiert. Ein Wort der Warnung: Dieses Plugin generiert Tags nach jedem Speichern automatisch neu, sodass Sie möglicherweise insgesamt langsamer werden. Außerdem werden Tags für jede Datei generiert, die Sie geöffnet haben, sodass Sie möglicherweise eine Tag-Datei in Ihrem Dotfiles-Ordner haben. Wenn Sie die Generierung von Tags für das Projekt deaktivieren möchten, lesen Sie Folgendes: https://github.com/ludovicchabant/vim-gutentags/commit/7316197a7f884e264e20590cbad90046d8337fbb
Persönlich benutze ich es schon seit einiger Zeit und wenn es richtig konfiguriert ist, kann dieses Plugin eine enorme Zeitersparnis sein, aber YMMV.
quelle
easytags
Plugin, das vim verlangsamte vi.stackexchange.com/a/2897/237 und auf die Verwendung von Git-Hooks umstellte, wie von tpope vorgeschlagenEs gibt einen schönen Beitrag über die Verwendung von Git-Hooks zum Verwalten von Ctags durch tpope:
http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html
quelle