2013-05-16 10 views
11

Używam RStudio do pracy z językiem programowania w języku R i znajdowania skrótu ctrl+enter, aby wysłać linię do konsoli bardzo przydatne w rozwiązywaniu problemów z mojej pracy.Jak przekazać linię do konsoli w edytorze tekstu sublime 2

Teraz używam sublimetext2 i chciałbym zrobić to samo w RStudio, wysłać linię do konsoli.

Czy istnieje sposób na przesłanie istniejącej linii do konsoli lub konsoli SublimeREPL?

Odpowiedz

8

Nie wiem o konsoli, ale jest to możliwe z SublimeREPL.

Dopóki masz REPL i plik tego samego języka otwarty w tym samym czasie, możesz wysłać wiersz (lub wybór lub plik) do otwartego REPL poprzez SublimeREPL Source Buffer Keys. Domyślnie Ctrl+,, a następnie l wysyła bieżącą linię do REPL, ale można zmienić skrót klawiaturowy na Ctrl+Enter (tylko w języku Python, aby chronić domyślne funkcje innych języków w wersji Ctrl+Enter), dodając te wiersze do górnej części pliku 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 } 
    ] 
}, 

Inne zakresy (z Preferences -> Browse Packages -> SublimeREPL/Default (Windows).sublime-keymap) są selection, file i block (Clojure tylko). Jeśli chcesz wysłać wiersz do REPL ale nie analizować je natychmiast, można dodać "action":"view_write" do obiektu args, tak:

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

Zobacz Unofficial Sublime Text 2 Docs uzyskać więcej informacji na temat kluczowych wiązań.

W przypadku, gdy REPL jest otwarty w innej karcie niż źródło (zamiast oddzielnego widoku), skróty kodu źródłowego będą , a nie skupiać się na REPL. Jestem pewien, że można zaimplementować jakiś klawisz przełączania kart, ale brzmi to jak problem z innym pytaniem.

+0

To jest wspaniałe. Dziękuję @ProtractorNinja. Szybkie pytanie: czy można uzyskać obie funkcje. Chciałbym wysłać linię do konsoli i zobaczyć ją, zanim zostanie wykonana. Dzięki - przepraszam przez konsolę, mam na myśli REPL –

+0

@TahnoonPasha Tak! Dodaj drugi większy fragment kodu do pliku 'Key Bindings - User' obok pierwszego i dopasuj" "klucze" 'do tego, co chcesz, aby kluczem send-but-not-assess było, powiedzmy,' ctrl + shift + enter'. Następnie 'ctrl + enter' wyśle ​​* i * oceni linię, podczas gdy' ctrl + shift + enter' wyśle ​​i * nie * oceni linię. Jeśli nie interesują Cię niestandardowe klawisze, domyślną kombinacją klawiszy "wyślij, ale nie wyceń", jest "ctrl + shift +", a następnie "l". –

+0

Dzięki @ProtractorNinja Myślę, że muszę robić coś złego. Kiedy wykonuję wysyłanie i oceniam, nie echo w terminalu REPL, to po prostu ocenia i zwraca dodatkowe ">>>", kiedy jest gotowe. Miałem nadzieję, że gdybym miał np. 'Import imaplib' i zrobiłem' ctrl + enter', zobaczyłbym '>>> import imaplib', który by ocenił, a następnie nowy" >>> ". Czy twój kod ma taki efekt? Jeszcze raz dziękuję za pomoc w tej sprawie. –

4

Oprócz zakładania własnych klawiszy, wystarczy zainstalować Enhanced-R:

W Sublime:

  • Cmd + Przesunięcie + P (aby wywołać polecenie paleta)
  • typ "Install Package"
  • Naviga Te do Enhanced-R

Jeśli używasz Sublime dla najczęściej tylko R, wtedy można ustawić domyślną składni dla całej aplikacji. Lub można go zmienić na plik (Cmd + Przesunięcie + P ponownie, a następnie rozpocząć wpisywanie Syntax Enhanced R)

Następnie, jak jesteś przyzwyczajony do w RStudio, po prostu hit Cmd + wprowadzić wysłać kod do Konsoli lub R.Aplikacja itp

+0

Z SublimeREPL mogę otworzyć konsolę R w obrębie Sublime Text, czy istnieje podobna opcja dla Enhanced-R? – adibender

+0

@adibender można używać jednocześnie 'sublimeREPL' i' Enhanced-R'. Osobiście zlikwidowałem 'sublimeREPL', ponieważ irytujące było radzenie sobie z rozmiarami okna.Raczej mam dwa okna, które mogę "CMD-tab" (lub "CMD- \") pomiędzy –

+0

thx dla odpowiedzi, ale nie mogłem go uruchomić. Mogę otworzyć R przez SublimeREPL i mogę wysłać R-Code przez Enhanced-R do Rgui, ale nie wysłać R-Code do SublimeREPL R-Console (poprzez skróty Enhanced-R). Ale po prostu opublikuję pytanie, jeśli nie będę mógł go uruchomić po kilku kolejnych próbach ... – adibender

1

Wysyłanie surowego kodu R do SublimeREPL działa teraz:

  1. Wywołaj Cmd/Ctrl + Przesunięcie + P menu
  2. Wybierz R Application Switch
  3. Wybierz SublimeREPL

Gdy aktywny jest SublimeREPL, możesz wysłać do niego surowe R za pomocą Cmd/Ctrl + Wpisz.

Należy pamiętać, że domyślnie SublimeREPL nie wyświetla kodu, który zostanie wysłany; pokaże ci wyjście. Jeśli chcesz również zobaczyć kod, można zmienić ustawienia użytkownika:

  1. Przejdź do Preferences -> Package settings -> SublimeREPL -> Settings - User
  2. włączyć ustawienie show_transferred_text.

Na przykład, jeśli nie ma żadnych innych ustawień, ustawienia powinny wyglądać następująco:

{ 
    "show_transferred_text": true 
} 
Powiązane problemy