2012-11-14 4 views
15

C'è un modo per avere più "comandi" associati a un collegamento?più "comandi" in un singolo tasto di scelta rapida Sublime Testo 2 utente

Ho queste due scorciatoie. La prima scorciatoia rende la finestra a sinistra più grande di quella destra (in una vista a 2 colonne) e la scorciatoia successiva mette a fuoco la prima finestra. Tendo a dimenticare una o l'altra scorciatoia quando si codifica rapidamente.

{ 
    "keys": ["super+alt+left"], 
    "command": "set_layout", 
    "args": 
    { 
     "cols": [0.0, 0.66, 1.0], 
     "rows": [0.0, 1.0], 
     "cells": [[0, 0, 1, 1], [1, 0, 2, 1]] 
    } 
}, 
{ "keys": ["ctrl+alt+left"], "command": "focus_group", "args": { "group": 0 } } 

Questa domanda mi fa sembrare come se fossi pigro ma mi piacerebbe pensare che sia efficiente.

Qualche consiglio o suggerimento, per favore?

+0

Divertente come ho trovato questa domanda, volendo fare esattamente la stessa sequenza di comandi. –

risposta

14

C'è un post su Sublime Text 2 forum che include il codice per un plug-in generico "esegui più comandi". Essa vi permetterà di associare più comandi per tasto qualsiasi legame allo stesso modo che normalmente li associa a uno:

{ 
    "keys": ["super+alt+left"], 
    "command": "run_multiple_commands", 
    "args": { 
     "commands": [ 
     { "command": "set_layout", "args": { "cols": [0.0, 0.66, 1.0], "rows": [0.0, 1.0], "cells": [[0, 0, 1, 1], [1, 0, 2, 1]] } }, 
     { "command": "focus_group", "args": { "group": 0 } } 
     ] 
    } 
    } 

Si noti che questo non è testato, e è necessario installare il plugin fornito nel post per questo per funzionare.

In alternativa, è possibile creare un plug-in per un set specifico di comandi seguendo le istruzioni in this answer.

+1

Per questi stessi comandi, '" context ":" window "' deve essere aggiunto pure. Ad esempio: '{" command ":" focus_group "," args ": {" group ": 0}," context ":" window "}'. –

24

Installare il plugin "catena di comando" (funziona sia ST2 e ST3):
https://github.com/jisaacks/ChainOfCommand https://packagecontrol.io/packages/Chain%20of%20Command

allora sarete in grado di fare cose come:

{ "keys": ["ctrl+d"], 
    "context": [ 
    { "key": "panel_visible", "operator": "equal", "operand": true } 
    ], 
    "command": "chain", 
    "args": { 
    "commands": [ 
     ["hide_panel", {"cancel": true}], 
     ["find_under_expand"], 
    ] 
    }, 
}, 

che ridefinisce Ctrl + D in modo che chiuda il pannello Trova se è aperto, quindi esegue la sua azione normale (Aggiungi rapido Avanti).

È possibile eseguire qualsiasi numero di sottocomandi. Ciascuno è un array con il nome del comando (ad esempio "hide_panel") seguito facoltativamente dagli argomenti (ad esempio {"cancel": true}).

+1

Questo plugin merita più stelle – user2081518

5

È possibile registrare una macro (utilizzando il menu Strumenti), quindi salvarlo e impostare una scorciatoia da tastiera per chiamare utilizzando

{"keys": ["super+alt+l"], "command": "run_macro_file", "args": {"file": "res://Packages/User/Example.sublime-macro"}} 

http://docs.sublimetext.info/en/latest/extensibility/macros.html

Certo, questo non è proprio quello che si' chiedendo, ma può fornire lo stesso fine per gli altri con domande simili.