Como atribuir um atalho de teclado à macro gravada no texto sublime

43

Eu tenho várias macros que gravei e salvei no Sublime Text 2. Estou tentando atribuir atalhos de teclado a cada uma delas, mas estou meio perdida em como fazer isso,

Eu dei uma olhada

mas isso explica como definir ligações de teclas para comandos existentes.

O que devo definir para executar uma macro?

Sathyajith Bhat
fonte
2
isso se aplica igualmente ao ST3 - obrigado!
PTIM

Respostas:

61

Para instruir o Sublime Text para executar macros, você precisa passar "run_macro_file" como parâmetro para "command", com argumento sendo o nome do arquivo da macro.

Primeiro, o simples registro de uma macro não a salva em um arquivo, você precisará salvá-la em um arquivo. Isso pode ser feito clicando em Ferramentas → Salvar macro e, em seguida, forneça um nome de arquivo. As macros geralmente são salvas na %appdata%\Sublime Text 2\Packages\Userpasta.

Em seguida, para atribuir o atalho do teclado, abra o arquivo Ligações de teclas em Preferências → Ligações de teclas - Usuário.

Agora, o formato geral para uma combinação de teclas é o seguinte:

{ "keys": [<key sequence>], "command": "run_macro_file", "args": {"file": "Packages/User/<file name>.sublime-macro"} }

Portanto, se você deseja atribuir Ctrl+ Shift+ Xa uma macro que foi salva como "adicionar vírgula ao final", a linha de combinação de teclas ficará assim:

[
    { "keys": ["ctrl+shift+x"], "command": "run_macro_file", "args": {"file": "Packages/User/add comma to end.sublime-macro"} }
]
Sathyajith Bhat
fonte
2
Você restringe o escopo no qual o atalho estará ativo context. Aqui está um exemplo do Emmet: github.com/sergeche/emmet-sublime/blob/master/…
ptim
@ptim Isso implica que você pode restringir alguma macro a estar ativa apenas para, por exemplo, scripts Python?
gustafbstrom
1
@gustafbstrom - kinda! sim, mas a restrição está realmente na ligação de chave, não na macro :) docs.sublimetext.info/en/latest/reference/…
ptim
1
ainda funciona com sublime v3. O caminho é relativo e também "Packages/User/my_commands.sublime-macro"está funcionando. testado no mac.
marlo
Testado no Sublime Text 3 Portable no Windows. Funciona também. Caminho é relativo.
Ifan Iqbal