2013-05-13 3 views
1

Допустим, у меня есть ярлык, который запускает макрос, чтобы добавить фигурные скобки после функции. Но мои фигурные скобки различны для PHP, чем для JavaScript:Sublime Text 2 переменный макрос за синтаксис

PHP:

function() 
{ 
..... 
} 

JavaScript:

function(){ 
..... 
} 

Есть ли способ, чтобы иметь тот же ключ привязки для макроса, который ведет себя разные в зависимости от синтаксиса, который я пишу?

ответ

6

Вы можете связать несколько команд (или макросов в этом случае) с одним и тем же ключом и разделить их на записи контекста.

Вы, вероятно, хотите, чтобы определить контекст, как

{ "key": "selector", "operator": "equal", "operand": "source.js", "match_all": true } 

и

{ "key": "selector", "operator": "equal", "operand": "source.php", "match_all": true } 
+0

Wondefull! Благодарю. – driechel

+0

Хотя я оценил ответ как принятый, потому что это правильный ответ. Как-то это не работает для меня на osx. Этот поток http://sublimetext.userecho.com/topic/21146-key-binding-context-to-only-react-on-eg-python-code/ (2 года) упоминает ту же ошибку, что и у меня. В нем есть решение, в котором упоминается использование операнда not_equal. – driechel

+1

Для моего случая я решил использовать 'source.js', но не' source.javascript'. Вы можете проверить это [сообщение] (http://kleineblase.wordpress.com/2013/05/26/syntax-specific-key-binding-in-sublime-text-2-eg-fix-javascript-reindent-with- jsformat-and-ctrlshiftf /) для более – vincentlcy