2016-12-06 97 views
1

我正在使用Sublime Text 3.我遇到了一個問題。我不知道如何切換XML行評論。如何在Sublime Text 3中切換XML行註釋

我知道在Sublime Text 3中有一個Toggle Comment函數,我嘗試過。但是,結果與我所設想的不一樣。

例如,我要打開註釋以下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> 

我想要的(就像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> --> 

但是通過使用Toggle Comment在Sublime中,我只能得到以下代碼:

<!-- <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> --> 

我不知道如何實現這一目標。我在谷歌搜索這個問題,但我找不到任何有用的信息。你能給我一些建議嗎?

回答

2

通常,Sublime可以配置爲知道行和塊註釋之間的差異並相應地執行操作。但據我所知,這不能用於XML,因爲它需要用評論字符來包裝內容。

更具體地說,註釋的配置選項爲塊註釋指定純行註釋的TM_COMMENT_START或TM_COMMENT_START和TM_COMMENT_END。如果兩者都存在,則toggle命令根據內容和上下文選擇正確的命令。

對於XML,由於XML中的註釋工作原因,它使用了一對,這意味着只有塊註釋是可能的。但是,如果您在沒有選擇的情況下調用該命令,則會假定所選內容包裝整行。如果你有選擇,那就是被包裝的東西。

解決此問題的一個方法是在切換註釋之前將選擇內容分割成行。你可以通過菜單中的Selection > Split into Lines來實現(這也會告訴你你的鍵盤綁定是用於這個命令的)。

Splitting selection into multiple lines

,這樣你就不必去對自己的多個步驟,它可以組這些命令放到一個宏。

這樣一個宏可以如下所示(保存在您的User封裝XML_Line_Comment.sublime-macro):

[ 
    { 
     "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文件是具體案件的關鍵。