2016-12-06 2 views
1

崇高なテキスト3を使用しています。問題が発生しました。私はXML行コメントを切り替える方法を知らない。サブライムテキスト3でXML行コメントを切り替えるにはどうすればいいですか

サブライムテキスト3にToggle Comment機能があり、私は試してみました。しかし、結果は私が想像したものと同じではありません。しかし

<!-- <profile> --> 
<!-- <id>jdk-1.8</id> --> 
<!-- <activation> --> 
<!--  <activeByDefault>true</activeByDefault> --> 
<!--  <jdk>1.8</jdk> --> 
<!-- </activation> --> 
<!-- <properties> --> 
<!--  <maven.compiler.source>1.8</maven.compiler.source> --> 
<!--  <maven.compiler.target>1.8</maven.compiler.target> --> 
<!--  <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> --> 
<!-- </properties> --> 
<!-- </profile> --> 

Toggle Commentを使用して:私は(ただ、Eclipseの行のコメントのように)このようにそれを作りたい

<profile> 
    <id>jdk-1.8</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
     <jdk>1.8</jdk> 
    </activation> 
    <properties> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> 
    </properties> 
</profile> 

は例えば、私は、次のXMLコードをコメント切り替えたいです崇高な時には、次のコードしか得られません:

<!-- <profile> 
    <id>jdk-1.8</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
     <jdk>1.8</jdk> 
    </activation> 
    <properties> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> 
    </properties> 
</profile> --> 

私は知らないwこの目標を達成する方法。私はこの問題をGoogleで検索しますが、有用な情報は見つかりません。私にいくつかの提案を教えてもらえますか?

答えて

2

一般に、サブライムは、行コメントとブロックコメントの違いを知って、それに応じて行動するように設定できます。しかし、私が知る限り、これはコメント文字でコンテンツをラップする必要があるため、これはXMLではできません。

具体的には、コメントの設定オプションは、純粋な行コメントの場合はTM_COMMENT_STARTを、ブロックコメントの場合はTM_COMMENT_STARTとTM_COMMENT_ENDのいずれかを指定します。両方とも存在する場合、toggleコマンドは内容とコンテキストに基づいて正しいものを選択します。

XMLの場合、XMLのコメントがどのように機能するかによって、ペアを使用します。つまり、ブロックコメントのみが可能です。ただし、選択を行わずにコマンドを呼び出すと、その選択が行全体をラップするものとみなされます。選択肢がある場合は、それがラップされます。

この問題を回避する方法の1つは、コメントを切り替える前に選択範囲を行に分割することです。あなたはメニューからSelection > Split into Linesを使ってこれを行うことができます(これはあなたのキーバインディングがこのコマンドにどのように表示されるかを示します)。

Splitting selection into multiple lines

あなたがあなた自身の上に複数の手順を実行する必要がないように、それはマクロにグループにこれらのコマンドも可能です。

このようなマクロは(XML_Line_Comment.sublime-macroとしてあなたUserパッケージに保存されている)は、次のようになります。

[ 
    { 
     "command": "split_selection_into_lines" 
    }, 
    { 
     "command": "toggle_comment", 
     "args": {"block": false} 
    }, 
    { 
     "command": "single_selection" 
    }, 
    { 
     "command": "move_to", 
     "args": {"extend": false, "to": "bol" } 
    } 
] 

これは、選択を分割するコメントを切り替え、その後、単一選択に戻る(とにジャンプします線の始まり)。必要に応じてこれを変更することができます(たとえば、後で単一選択に戻したくない場合など)。

メニューバー(Tools > Macros > User > XML_Line_Comment)からこのマクロを実行できますが、より良い方法はキーバインドを設定することです。その一例は次のようになります。

{ 
    "keys": ["ctrl+/"], 
    "command": "run_macro_file", 
    "args": { "file": "res://Packages/User/XML_Line_Comment.sublime-macro" }, 
    "context": [ 
     { "key": "selection_empty", "operator": "equal", "operand": false}, 
     { "key": "selector", "operator": "equal", "operand": "text.xml"}, 
    ] 
}, 

これは通常、あなたがXMLファイルにいる間が選択されての特定の場合のために、あなたのマクロを実行するには、コメントを切り替えキーの原因となります。

関連する問題