2014-10-28 19 views
16

Đây là một câu hỏi đơn giản nhưng tôi không thể tìm thấy bất kỳ tài liệu nào bên cạnh readme.Atom Editor: nhiều đoạn

Làm thế nào tôi có thể có nhiều đoạn tùy chỉnh trong Atom editior:

Ví dụ tôi có điều này trong snippets.cson tôi ngay bây giờ

'.source.js': 
    'Normal Comment Block': 
    'prefix': 'cmm' 
    'body': """ 
     //********************************************************************************** 
     // 
     //********************************************************************************** 
    """ 

'.source.js': 
    'Dashed Comment Block': 
    'prefix': 'c--' 
    'body': """ 
     //---------------------------------------------------------------------------------- 
     // 
     //---------------------------------------------------------------------------------- 
    """ 

Nhưng CMM không làm việc, tôi chỉ có thể sử dụng mục cuối cùng trong đoạn snippet.cson. có ý tưởng nào để sửa cái này không? Tôi có khoảng một chục đoạn trích khác nhau mà tôi muốn sử dụng nhưng tôi không thể tìm ra cách đưa chúng vào đúng cách.

+0

Bạn đang ghi đè lên đoạn đầu tiên của bạn bởi vì bạn đang khai báo chính cha mẹ cùng '' .source.js':' trong mảng hai lần. Nếu bạn loại bỏ ''.source.js':' từ tập tin thứ hai thì nó sẽ hoạt động. Bạn chỉ nên có một ''.source.language':' cho mỗi tập hợp các đoạn mã ngôn ngữ. Các khóa cha mẹ trùng lặp khác khôn ngoan sẽ ghi đè lên nhau. –

Trả lời

43

Định dạng tệp cấu hình được gọi là CSON, Ký hiệu đối tượng CoffeeScript. Giống như JSON (JavaScript Object Notation), nó là một định dạng văn bản để mô tả các đối tượng đơn giản. Do đó, khi bạn chỉ định khóa hai lần, chẳng hạn như .source.js trong ví dụ của bạn, ví dụ thứ hai sẽ ghi đè khóa đầu tiên. Nếu bạn chỉ có một .source.js tất cả mọi thứ sẽ hoạt động tốt:

'.source.js': 
    'Normal Comment Block': 
    'prefix': 'cmm' 
    'body': """ 
     //********************************************************************************** 
     // $1 
     //********************************************************************************** 
     $0 
    """ 
    'Dashed Comment Block': 
    'prefix': 'c--' 
    'body': """ 
     //---------------------------------------------------------------------------------- 
     // $1 
     //---------------------------------------------------------------------------------- 
     $0 
    """ 

Thêm vào đó, tôi lấy sự tự do của việc thêm tab dừng để đoạn của bạn để khi bạn mở rộng đoạn, con trỏ nên đất đầu tiên bên trong nhận xét. Bạn có thể nhập nhận xét của mình rồi nhấn TAB để thoát ra và tiếp tục.

+1

Đây chính xác là những gì tôi cần, cảm ơn @Lee! – JuanOjeda

9

Ngoài @ giải thích Lee, đây là một ví dụ nếu bạn wan't để thiết lập nhiều đoạn bằng ngôn ngữ lập trình được tổ chức:

# HTML Snippets 
'.text.html': 
    'HTML Comment': 
    'prefix': '<!' 
    'body': '<!-- $1 -->' 

# Sass Snippets 
'.source.scss': 
    'Section Comment': 
    'prefix': 'sc' 
    'body': """ 
     /*================================================= 
     $1 
     =================================================== */ 
    """ 
    'Sub Section Comment': 
    'prefix': 'ssc' 
    'body': """ 
     /* $1 
     =================================================== */ 
    """ 

# JavaScript Snippets 
'.source.js': 
    'jQuery - Bind Event': 
    'prefix': 'bind' 
    'body': """ 
     $($1).on('$2', '$3', function($4) { 
     $5 
     }); 
    """ 

On ví dụ này tôi bao gồm HTML, Sass và Javascript nhưng bạn có thể bao gồm những người khác như CSS, ...

Hy vọng điều này hữu ích.

0

Bắt đầu đoạn mã tiếp theo bằng dấu phẩy theo sau bằng dòng mới bằng cách đưa ra cấu trúc giống như cấu trúc đầu tiên đã làm việc cho tôi.

'.source.php': 
'var dump': 
'prefix': 'vd' 
'body': """ 
    echo "<pre>"; 
    var_dump($); 
    echo "</pre>"; 
""", 

'this->db': 
'prefix': 'trans' 
'body': """ 
    $this->db->trans_start(); 
""", 

'comment block': 
'prefix': 'cm' 
'body': """ 
    /**************************************** 
    * 
    * 
    ****************************************/ 
""" 
2

Tìm thấy lỗi lạ với nhiều đoạn trong Atom. Tôi hy vọng câu trả lời này có thể giúp ai đó với cùng một vấn đề (Tôi đang sử dụng phiên bản mac của Atom). Vì vậy, tôi đã thêm một đoạn mã mới vào tệp snippet.cson và tôi đã sao chép đoạn mã cũ và dán vào dưới đây dưới dạng mẫu như thế này và lưu chúng, mặc dù chúng vẫn giống nhau '.source.php': 'Debug': 'prefix': 'prepr' 'body': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ 'Debug': 'prefix': 'prepr' 'body': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ Sau khi lưu, tôi đã chỉnh sửa đoạn thứ hai một để có một tiêu đề và tiền tố và mã số khác nhau '.source.php': 'Debug': 'prefix': 'prepr' 'body': """ echo "<pre>",print_r($_POST, 1),"</pre>"; die(); """ 'different': 'prefix': 'different' 'body': """ echo "different"; """ Tôi đã lưu lại sau khi đã chỉnh sửa đoạn mã thứ hai. Lần này, tab mở rộng cho đoạn mã thứ hai sẽ không hoạt động, tuy nhiên, tab đầu tiên vẫn hoạt động. Sau nhiều lừa dối xung quanh với nó đảm bảo rằng tôi đã có cú pháp đúng tôi đã thử một linh cảm mà có lẽ vì tôi đã lưu với hai đoạn mã trùng lặp mà nó sai lầm với đầu ra cson bằng cách nào đó. Sau đó tôi đã xóa đoạn thứ hai, sau đó lưu nó với chỉ một đoạn đầu tiên ở đó, sau đó sao chép đoạn đầu tiên, sau đó thay đổi nó, THEN đã lưu nó. Sau khi tất cả những điều đó đều hoạt động bình thường.

Tôi đã sử dụng nhiều đoạn mã trong một thời gian và chưa bao giờ thực sự gặp sự cố này cho đến bây giờ. Thật kỳ lạ nhưng có nó.

0

tôi đã cùng một vấn đề, đây là việc sửa chữa:

'.source.js': 
    'First function': 
    'prefix': 'first' 
    'body': """ 
    function $1() { 
     var overall = true; 
     if (overall) 
     { 
     var result = {}; 
     result.test1 = ""; 
     return test2(result); 
     } 
     return catched(""); 
    } """, 

    'Next function': 
    'prefix': 'next' 
    'body': """ 
    function $1(result) { 
     var overall = true; 
     if (overall) 
     { 
     result.test1 = ""; 
     return test2(result); 
     } 
     return catched(""); 
    } """, 

    'Next next function': 
    'prefix': 'pz' 
    'body': """ 
    function $1(result) { 
     var overall = true; 
     if (overall) 
     { 
     result.test1 = ""; 
     return test2(result); 
     } 
     return catched(""); 
    } """ 

Xin lưu ý rằng bạn phải làm một vài điều:

  1. Thêm dấu phẩy (,) sau mỗi lần " ""
  2. Bắt đầu định nghĩa tiếp theo trong cùng dòng bắt đầu của xác định trước! Tôi thực sự không hiểu tại sao nó hoạt động như thế .. nhưng .. đó là trường hợp.
  3. Sử dụng '.source.PROGRAM LANGUAGE': chỉ một lần cho mỗi ngôn ngữ.

Home nó giúp :)