2016-04-28 3 views
1

In Sublime Text habe ich Emmet installiert, damit ich Zen-Codierung tun kann. Nun, das Problem ist, dass wenn ich tippe, und einen automatischen Vervollständigen-Vorschlag bekomme, sobald ich diesen Autovervollständigungsvorschlag akzeptiere (entweder indem ich Tabulator eintrage, eingib oder sogar die Leertaste drücke), wird das vorgeschlagene Tag erweitert; dies führt dazu, dass ich die Zen-Codierung nicht fortsetzen kann.Sublime Text: Akzeptieren Sie vorgeschlagene Autocomplete ohne es zu erweitern

Um Ihnen ein Beispiel zu geben, sagen Sie, ich möchte eine <select> mit 6 <option> untergeordnete Elemente einfügen. Wenn ich select>opt eingeben, schlägt Autovervollständigung option vor, aber sobald ich option akzeptiere, dehnt sich das auf select<option></option> aus.

Was ich will, ist zu akzeptieren option, aber dass es nicht zu <option></option> erweitern wird.

Gibt es trotzdem, dies zu erreichen?

Antwort

1

Eigentlich ist die Antwort sehr einfach. Wenn Sie in Ihrem Beispiel die Autovervollständigungsvorschläge für option erhalten, werden Sie 2 davon erhalten. Einer ist der Tag, der andere ist Text. Verwenden Sie Strg + Leertaste, um alle Vorschläge durchzugehen, und wählen Sie die Textversion von option und nicht die Tag-Version.

0

In Sublime Text Completions besteht aus einem 2-Tupel mit der angezeigten Zeichenfolge und den eingefügten Zeichen/Snippets. Ich denke nicht, ob es möglich ist, die angezeigte Zeichenfolge einfach einzufügen. Wenn Sie jedoch nach einem Weg suchen, gibt es eine Möglichkeit festzustellen: Ändern Sie den Quellcode der HTML-Tag-Vervollständigungsdatei.

Installieren Sie PackageResourceViewer, drücken Sie dann ctrl+shift+p schreiben Sie PackageResourceViewer: Open Resource. Wählen Sie HTML >>> html_completions.py. Wenn Sie die Datei speichern, wird die ursprüngliche Vervollständigungsdatei schattiert (nicht überschrieben). Daher entfernen Sie es einfach, um das ursprüngliche Verhalten zu erhalten. In dieser Datei:

  • in Linie 15return (tag + '\tTag', tag + '>$0</' + tag) durch return (tag + '\tTag', tag) ersetzen.
  • in Linie 245completion_list = [(pair[0], '<' + pair[1]) for pair in completion_list] von completion_list = [(pair[0], pair[1]) for pair in completion_list]

ersetzen Nun sollte es den Tag-Namen anstelle der ganzen Tags einfügen.

Verwandte Themen