私は新しいSublimeText2ユーザーであり、現時点では主にMarkdown/MultiMarkdownに使用しています。私の執筆ワークフローでは、_underscore_
すべてのイタリック体にペアリングを使用**double asterisk**
し、すべての太字テキストにペアリングを使用しています。オートペアリングの基本的なコードのいくつかを使用して、単一のアスタリスクを入力した後、二重のアスタリスクをペアリングするようにしました。これは私が望む正確な動作ですが、通常のペアリングバックスペース機能を機能させることができませんでした。
[]などの他の自動ペア文字では、開始文字を入力した後にバックスペースを押すと、両方のペア文字が削除されます。しかし、これらの二重アスタリスクのペアの1つをバックスペースすると、4つのアスタリスクのうちの1つだけが削除されます(***
)。
これが可能かどうか誰かが知っていますか?ボーナスポイントについては、2番目のキーバインドスニペット(タブを押して自動ペアリングの最後までスキップできる)で、の最後までタブで移動できるようにしたいと思います**TEXT**
。
// Auto-pair double asterisks (type a single asterisk to invoke)
{ "keys": ["*"], "command": "insert_snippet", "args": {"contents": "**$0**"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[*a-zA-Z0-9_]$", "match_all": true },
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double", "match_all": true }
]
},
{ "keys": ["*"], "command": "insert_snippet", "args": {"contents": "**${0:$SELECTION}**"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
]
},
{ "keys": ["*"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^**", "match_all": true }
]
},
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Left Right.sublime-macro"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "**$", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^**", "match_all": true }
]
},
//Tab skips to end of autopaired characters
{ "keys": ["tab"], "command": "move", "args": {"by": "characters", "forward": true},
"context": [ { "key": "selection_empty", "operator": "equal", "operand": true },
{ "key": "preceding_text", "operator": "not_regex_match", "operand": "[[:space:]]*", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^[\"'\\)\\}\\]\\_]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false },
{ "key": "has_next_field", "operator": "equal", "operand": false } ] },