2013-05-16 3 views
11

Uso RStudio per lavorare con il linguaggio di programmazione R e trovare il collegamento ctrl+enter per inviare una riga alla console estremamente utile nella risoluzione dei problemi del mio lavoro.Come passare una linea alla console nel testo sublime 2 editor

Ora sto usando sublimetext2 e mi piacerebbe fare la stessa cosa in RStudio, inviare una riga alla console.

C'è un modo per inviare la linea esistente alla console o una console SublimeREPL?

risposta

8

Non so la console, ma questo è possibile con SublimeREPL.

Finché si dispone di un REPL e di un file della stessa lingua aperti allo stesso tempo, è possibile inviare una riga (o una selezione o un file) al REPL aperto tramite SublimeREPL . Per impostazione predefinita, Ctrl+, seguito dal l invia la riga corrente al REPL, ma è possibile modificare il tasto di scelta rapida per Ctrl+Enter (in Python solo, per proteggere altre lingue default Ctrl+Enter funzionalità) con l'aggiunta di queste righe all'inizio del file Preferences -> Key Bindings – User:

{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "lines"}, "context": 
    [ 
     { "key": "selector", "operator": "equal", "operand": "source.python", "match_all": true } 
    ] 
}, 

Altri ambiti disponibili (da Preferences -> Browse Packages -> SublimeREPL/Default (Windows).sublime-keymap) sono selection, file, e block (Clojure solo). Se si desidera inviare una linea per il vostro REPL ma non analizzarlo immediatamente, è possibile aggiungere "action":"view_write" all'oggetto args, in questo modo:

{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "lines", "action": "view_write"}, "context": 
    [ 
     { "key": "selector", "operator": "equal", "operand": "source.python", "match_all": true } 
    ] 
}, 

Vedere la Unofficial Sublime Text 2 Docs per ulteriori informazioni su combinazioni di tasti.

Nel caso in cui il REPL è aperto in una scheda diversa da quella sorgente (anziché una vista separata), i tasti buffer di origine sarà non fuoco REPL. Sono sicuro che è possibile implementare una sorta di tasto di attivazione/disattivazione della tabulazione, ma sembra un problema per un'altra domanda.

+0

Questo è eccezionale. Grazie @ProtractorNinja. Un rapido follow su domanda - è possibile ottenere entrambe le funzioni. Quindi mi piacerebbe inviare la linea alla console e vederla prima che venga eseguita. Grazie - Scusate per console intendo REPL –

+0

@TahnoonPasha Sì! Aggiungi il secondo snippet di codice più grande al tuo file "Key Bindings - User' insieme al primo e aggiusta il valore" keys "" a qualsiasi cosa tu voglia che la chiave send-but-don -t-evaluate sia, per esempio, ctrl + shift + enter'. Quindi 'ctrl + invio' invierà * e * valuterà la linea, mentre' ctrl + shift + invio' invierà e * non * valuterà la linea. Se non ti interessa la pressione dei tasti personalizzati, la combinazione di tasti predefinita send-but-don-valu è 'ctrl + shift +,' seguita da 'l'. –

+0

Grazie a @ProtractorNinja, penso che devo fare qualcosa di sbagliato. Quando eseguo l'invio e la valutazione non riecheggia nel terminale REPL, esso valuta e restituisce un extra '>>>' al termine. Quello che speravo era se avessi, ad esempio, "import imaplib" e ho fatto "ctrl + enter" vedrei ">>> import imaplib" che valuterà e quindi un nuovo '>>>'. Il tuo codice dovrebbe avere questo effetto? Grazie ancora per il tuo aiuto con questo. –

4

Oltre a impostare le vostre proprie combinazioni di tasti, si può semplicemente installare Enhanced-R:

In Sublime:

  • Cmd + Maiusc + P (per far apparire il comando palette)
  • tipo "Install Package"
  • Naviga TE per Enhanced-R

Se si utilizza Sublime per lo più solo R, quindi è possibile impostare la sintassi predefinita per l'intera applicazione. Oppure si può cambiare per file (Cmd + Maiusc + P di nuovo, quindi iniziare a digitare Syntax Enhanced R)

Poi, come si è abituati a in RStudio, è sufficiente colpire Cmd + immettere spedire il codice alla Console o R.App ecc

+0

Con SublimeREPL posso aprire la console R in Sublime Text, esiste un'opzione simile per Enhanced-R? – adibender

+0

@adibender puoi usare 'sublimeREPL' e' Enhanced-R' contemporaneamente. Personalmente, ho eliminato "sublimeREPL" perché era fastidioso occuparsi del dimensionamento della finestra.Preferisco avere due finestre che posso 'CMD-tab' (o' CMD- \ '') tra –

+0

thx per la risposta, ma non sono riuscito a farlo funzionare. Posso aprire R tramite SublimeREPL e posso inviare R-Code tramite Enhanced-R a Rgui, ma non inviare R-Code a SublimeREPL R-Console (tramite scorciatoie Enhanced-R). Ma mi limiterò a postare una domanda se non riesco a farlo funzionare dopo un altro paio di tentativi ... – adibender

1

Invio codice R prima al SublimeREPL funziona ora:

  1. Portare il Cmd/Ctrl + Maiusc + P menù
  2. Selezionare R Application Switch
  3. Select SublimeREPL

Quando hai attivato SublimeREPL, sarai in grado di inviare R raw con Cmd/Ctrl + Immettere.

Nota che, per impostazione predefinita, SublimeREPL non visualizza il codice che viene inviato; ti mostrerà solo l'output. Se volete vedere anche il codice, è possibile modificare le impostazioni utente:

  1. Spostarsi Preferences -> Package settings -> SublimeREPL -> Settings - User
  2. Accendere l'impostazione show_transferred_text.

Per esempio, se non si dispone di tutte le altre impostazioni, le impostazioni dovrebbero apparire così:

{ 
    "show_transferred_text": true 
}