Чи може Textmate добре відступити HTML?


17

Чи має Textmate функцію гарного відступу HTML?

HTML Tidy відступає, але теги також видаляються. (Це не зовсім належний HTML-код, але все-таки!)

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js"></script>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<body>
    <!-- All above disappears -->       
    <p>Test</p>
    <!-- All below disappears-->
</body>
</html>

Чи можете ви навести приклад html, де теги видаляються, оскільки це дивно
user151019

@Mark: Оновлено з кодом
Casebash

@Casebash Я спробував Tidy з вашим кодом, і для мене він додав лише теги. copypastecode.com/46216
Robert S Ciaccio

@calvera: Переконайтеся, що для вашого типу документа встановлено HTML, а не звичайний текст
Casebash

3
@Casebash: було встановлено html ... FYI, з того, що я пам’ятаю про плагін Tidy для Notepad ++, він налаштований за допомогою текстового файлу. Тож, можливо, у конфігурації Tidy щось не так.
Robert S Ciaccio

Відповіді:


20

Ви можете натиснути +, Aщоб потім вибрати все Text->Indent Selection.


Роки TextMate і ніколи не бачили та не використовували цю функцію ... \ o /
brasofilo

На жаль, це не повне форматування XML: воно зберігає неправильно відрізані лінії та не розбиває теги на одній лінії на окремі рядки. Використання Textmate 2.0-rc.4.
Олександр Климечек

13

Ви можете використовувати Bundles > HTML > Tidyабо ярлик ctrl+ + H.


3
Tidy не просто відступає - вона також видає, що також видаляє його частини!
Casebash

1
Питання полягало у відступі не прибирання
тиг

Прибирання також закінчується невдачею, якщо є деякі проблеми, такі як невідомі назви елементів.
Олександр Климечек

1

Я хотів би зазначити щось, що трохи перекреслює інші відповіді:

Якщо ви виберете текст, який хочете відформатувати (або повторити), TextMate буде застосовувати конкретні дії лише до цього. Отже, якщо ви CMD+ Aваш документ, а потім застосуєте Tidy (або з меню "Пакети> HTML", або за допомогою ярлика CTRL+ SHIFT+ H), це здебільшого буде робити лише відступ, пропускаючи попередження про перевірку (що іноді є непотрібним, оскільки ми можемо працювати над фрагментами сторінки ).


0

Натомість ви можете використовувати Xcode або Dashcode, якщо встановити Інструменти для розробників. Вони виходять безкоштовно на інсталяційні диски, які постачаються разом із вашим комп’ютером. Я вважаю, що і Xcode, і Dashcode мають підсвічування синтаксису.

Якщо ви хочете по-справжньому хорошого програмного забезпечення, придбайте Coda. Це трохи дорого в 100 доларів, але я б точно сказав, що воно того варте. У ньому є виділення синтаксису та (велика для мене частина) автодоповнення.


0

Так. Виклик Tidy у вбудованому HTML-пакеті TextMate може стосуватися вашого HTML.

Пачки TextMate -> HTML -> Tidy виробляє:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js">
</script>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js">
</script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
    </head>
    <body>
        <!-- All above disappears -->
        <p>
            Test
        </p><!-- All below disappears-->
    </body>
</html>

На ваш зразок коду. Ніщо не зникло. Ви також отримуєте такі попередження:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 5 - Warning: <body> isn't allowed in <head> elements
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:tal"
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:metal"

0

Проблема, яку я зіткнувся із вбудованим Text -> Indent Selectionрішенням або рішенням Tidy, полягає в тому, що воно не дуже добре відтворює частковий код HTML. Це, наприклад, важливо під час редагування в WordPress або роботи з частинами в Ruby on Rails.

Для мене працювало рішення - додати команду до групи за допомогою спеціального сценарію Perl від Джона Уотсона, який я знайшов тут: http://snipplr.com/view.php?codeview&id=28256

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.