我已經爲特定語言創建了tmlanguage文件。這種語言允許在字符串中使用反斜槓,並且它不會逃避它們。所以當我創建變量時:SublimeText3防止在引用字符串中轉義反斜槓
Path ='C:\ Temp \';
Sublime認爲引號被轉義了,然後我的語法着色關閉了腳本的其餘部分。
我怎樣才能防止這種情況發生?
編輯:哎呀!如果你還沒有使用PackageDev
和語言發展的YAML-tmLanguage格式忘記源(感謝MattDMo)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>txt</string>
</array>
<key>name</key>
<string>TM1</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(=|<>|>|<|@=|@<>|@>|@<)</string>
<key>name</key>
<string>keyword.operator.tm1</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(If|While|Else|ElseIf|End|EndIf)\b</string>
<key>name</key>
<string>keyword.control.tm1</string>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.tm1</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.tm1</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.tm1</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)</string>
<key>name</key>
<string>constant.character.escape.tm1</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.tm1</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.tm1</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.tm1</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)</string>
<key>name</key>
<string>constant.character.escape.tm1</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.tm1</string>
</dict>
</dict>
<key>match</key>
<string>(#).*$\n?</string>
<key>name</key>
<string>comment.line.double-slash.tm1</string>
</dict>
<dict>
<key>match</key>
<string>\;</string>
<key>name</key>
<string>punctuation.terminator.statement.tm1</string>
</dict>
</array>
<key>scopeName</key>
<string>source.tm1</string>
</dict>
</plist>
您必須有一個正則表達式才能將反斜槓字母組合解釋爲轉義序列。除去那個,你就全都定了。雖然... – MattDMo
好吧,我更新了與源的帖子...我剛剛刪除了關鍵字項目(這有點太長)。 – user3072517
根據我的理解,你需要替換'\\(x \ h {2} | [0-2] [0-7] {,2} | 3 [0-6] [0-7] | 37 [ '| \\(x \ h {2} | [0-2] [0-7] {,2} | 3 [0-7]?| [4-7] [0-7] 0-6] [0-7] | 37 [0-7]?| [4-7] [0-7]?| [^'「])。 –