2011-01-14 30 views
7

Có cách nào đơn giản để định dạng lại HTML của tôi từ bên trong Komodo Edit hay để tự động hoá quá trình chống lại Tidy? Một cái gì đó giống như Ctrl + K, Ctrl + D trong Visual Studio sẽ thật tuyệt vời. Hiện đang chạy Ubuntu với Tidy được cài đặt.Komodo Edit - HTML Reformatting/Tidy

Trả lời

8

Nếu bạn muốn có một giải pháp mà các công trình chỉ thẳng lên, làm như sau:

Mở bảng điều khiển hộp công cụ ở bên phải Nhấp vào bánh răng và chọn Macro mới, đặt tên cho nó là những gì bạn thích.

Lấy mã vĩ mô ở đây:

komodo edit macro

Nó bao gồm mã từ http://jsbeautifier.org/ và hoạt động giống như một nét duyên dáng ...

Tiếp theo là thiết lập một phím tắt:

Chọn macro mới của bạn vào hộp công cụ Bây giờ đi đến tổ hợp phím

Loại một chuỗi và nó sẽ cho bạn biết nếu chuỗi bạn gõ có sẵn. Tôi sử dụng ctrl +/bởi vì họ đang ở gần nhau.

Chúc mừng!

+1

Bằng cách này, nếu bạn muốn đầu ra của jsbeautifier trông giống như định dạng Ctrl-k, Ctrl-d của Visual Studio, chỉnh sửa macro và đi tới trường hợp 'JavaScript'. Bây giờ thay đổi indent_size thành 4, thay đổi brace_style thành "end-expand" và thêm "good_stuff: true" vào cuối. –

1

Bạn có thể thiết lập lệnh để chạy để thay thế một lựa chọn html bằng phiên bản gọn gàng. Nhấn CTl + R để mở cửa sổ lệnh và nhập tidy -utf8 -asxhtml -i cho lệnh định dạng xhtml thụt lề bằng mã hóa utf8. Chọn hai hộp để "Chuyển vùng chọn làm đầu vào" và "Chèn đầu ra". Bạn cũng có thể chỉ định các ràng buộc khóa tùy chỉnh tại đó.

Ví dụ ảnh chụp màn hình http://grab.by/8C3t

7

tôi found this formatting script (macro) và áp dụng nó cho mục đích cá nhân của tôi với mới nhất Komodo Edit (phiên bản 6.1.0). Nó hoạt động tốt và tôi bao gồm các định dạng JavaScript được cung cấp bởi một nhà bình luận nhưng tôi nghĩ rằng nó chỉ có thể làm việc với Komodo IDE. Nó không quan trọng cho mục đích của tôi. Có lẽ ai đó ra khỏi đó có thể tìm thấy một cải tiến phổ quát (sử dụng một cái gì đó như html gọn gàng).

komodo.assertMacroVersion(3); 
if (komodo.view) { komodo.view.setFocus(); } 

var formatter; 
var language = komodo.document.language; 
switch (language) { 
    case 'Perl': 
     formatter = 'perltidy -i=2 -pt=2 -l=0'; 
     break; 
    case 'XML': 
    case 'XUL': 
    case 'XLST': 
     formatter = 'tidy -q -xml -i -w 80'; 
     break; 
    case 'HTML': 
     formatter = 'tidy -q -asxhtml -i -w 120'; 
     break; 
    //case 'JavaScript': 
    // ko.views.manager.currentView.scimoz.selectAll(); 
    // ko.views.manager.currentView.scimoz.replaceSel(js_beautify(ko.views.manager.currentView.scimoz.text, {indent_size: 2})); 
    // return null; 
    default: 
     alert("I don't know how to tidy " + language); 
     return null; 
} 

//save current cursor position 
var currentPos = komodo.editor.currentPos; 

try { 
    // Save the file. After the operation you can check what changes where made by 
    // File -> Show Unsaved Changes 
    komodo.doCommand('cmd_save'); 

    // Group operations into a single undo 
    komodo.editor.beginUndoAction(); 

    // Select entire buffer & pipe it into formatter. 
    komodo.doCommand('cmd_selectAll'); 
    Run_RunEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}"); 

    // Restore cursor. It will be close to the where it started depending on how the text was modified. 
    komodo.editor.gotoPos(currentPos); 

    // On windows, when the output of a command is inserted into an edit buffer it has unix line ends. 
    komodo.doCommand('cmd_cleanLineEndings'); 
} 
catch (e) { 
    alert(e); 
} 
finally { 
    // Must end undo action or may corrupt edit buffer 
    komodo.editor.endUndoAction(); 
} 
0

Bạn muốn một tab thay vì khoảng trắng?

Ngoài những gì @justquick đã nói, hãy tìm/thay thế (Ctrl + h). Thay thế một không gian đôi () bằng một tab (\t, hãy chắc chắn regex được chọn) để có thẻ html thay vì được đặt cách nhau. Theo mặc định, Tidy sử dụng hai khoảng trắng, bạn sẽ phải thay đổi tìm kiếm của mình nếu bạn đã định cấu hình Tidy theo cách khác.

0

1 Chuyển đến Hộp công cụ => Add => Command New

2 Nhập các đối số dòng lệnh gọn gàng trong lĩnh vực Run:

tidy -config tidy_config_html.txt 

3 Kiểm tra tất cả các hộp

4 Nhập đường dẫn để gọn gàng trong trường Start In

5 Nhấp vào tab Key Binding

6 Sử dụng Ctrl + 1 như New Key Chuỗi

7 Nhấn Ctrl + A, Ctrl + 1

1

Câu trả lời rằng TAOcode làm là rất tốt, nhưng trong các phiên bản mới hơn của Komodo một vài điều đã thay đổi, vì vậy đây là bản cập nhật của tôi vào mã để làm cho nó hoạt động trở lại:

komodo.assertMacroVersion(3); 
if (komodo.view) { komodo.view.setFocus(); } 

var formatter; 
var language = komodo.view.language; 
switch (language) { 
    case 'Perl': 
     formatter = 'perltidy -i=2 -pt=2 -l=0'; 
     break; 
    case 'XML': 
    case 'XUL': 
    case 'XLST': 
     formatter = 'tidy -q -xml -i -w 500'; 
     break; 
    case 'HTML': 
     formatter = 'tidy -q -asxhtml -i -w 120'; 
     break; 
    //case 'JavaScript': 
    // ko.views.manager.currentView.scimoz.selectAll(); 
    // ko.views.manager.currentView.scimoz.replaceSel(js_beautify(ko.views.manager.currentView.scimoz.text, {indent_size: 2})); 
    // return null; 
    default: 
     alert("I don't know how to tidy " + language); 
     return null; 
} 

//save current cursor position 
var currentPos = komodo.editor.currentPos; 

try { 
    // Save the file. After the operation you can check what changes where made by 
    // File -> Show Unsaved Changes 
    komodo.doCommand('cmd_save'); 

    // Group operations into a single undo 
    komodo.editor.beginUndoAction(); 

    // Select entire buffer & pipe it into formatter. 
    komodo.doCommand('cmd_selectAll'); 
    ko.run.runEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}"); 

    // Restore cursor. It will be close to the where it started depending on how the text was modified. 
    komodo.editor.gotoPos(currentPos); 

    // On windows, when the output of a command is inserted into an edit buffer it has unix line ends. 
    komodo.doCommand('cmd_cleanLineEndings'); 
} 
catch (e) { 
    alert(e); 
} 
finally { 
    // Must end undo action or may corrupt edit buffer 
    komodo.editor.endUndoAction(); 
} 

Sự khác biệt lớn là dòng 5: komodo.document.language trở thành komodo.view.language và dòng 40: Run_RunEncodedCommand trở thành ko.run.runEncodedCommand

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