2013-05-16 11 views
11

我使用RStudio與R編程語言一起使用,並找到ctrl+enter快捷方式將一行發送到控制檯,對排除我的工作非常有用。如何將一行傳遞給控制檯中的崇高文本2編輯器

現在我正在使用sublimetext2,我想在RStudio中做同樣的事情,發送一行到控制檯。

有沒有辦法將現有的行發送到控制檯或SublimeREPL控制檯?

回答

8

我不知道控制檯,但這可能與SublimeREPL

只要您有REPL和同一語言的文件同時打開,您可以通過SublimeREPL Source Buffer Keys將行(或選擇或文件)發送到打開的REPL。默認情況下,Ctrl+,其次l發送當前行到REPL,但你可以(只在Python,以保護其他語言的默認Ctrl+Enter功能)熱鍵更改爲Ctrl+Enter通過添加這些行到你的Preferences -> Key Bindings – User文件的頂部:

(從 Preferences -> Browse Packages -> SublimeREPL/Default (Windows).sublime-keymap
{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "lines"}, "context": 
    [ 
     { "key": "selector", "operator": "equal", "operand": "source.python", "match_all": true } 
    ] 
}, 

其他可用的範圍是selectionfileblock(Clojure的只)。如果你想行發送到您的REPL但立即對其進行解析,您可以添加"action":"view_write"args對象,像這樣:

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

關於鍵綁定的更多信息,請參見Unofficial Sublime Text 2 Docs

如果REPL在與您的源(而不是單獨的視圖)不同的選項卡中打開,則源緩衝區熱鍵將而不是聚焦REPL。我相信可以實現某種Tab-Swapping切換鍵,但這聽起來像是另一個問題的問題。

+0

這是了不起的。謝謝@ProtractorNinja。快速跟蹤問題 - 是否有可能獲得這兩個功能。所以我想將該行發送到控制檯並在執行前查看它。謝謝 - 抱歉控制檯我的意思是REPL –

+0

@TahnoonPasha是的!將第二個較大的代碼片段添加到第一個「Key Bindings-User」文件中,並將「keys」值調整爲您希望發送但不評估的值,例如「ctrl +移位+ enter'。然後'ctrl + enter'將發送*和*評估該行,而'ctrl + shift + enter'將發送* * *評估該行。如果您對自定義按鍵不感興趣,則默認的「發送但不評估」組合鍵爲「ctrl + shift +」,後面跟着「l」。 –

+0

謝謝@ProtractorNinja我想我一定在做錯事。當我進行發送和評估時,它不會在REPL終端中回顯,它只會在完成後評估並返回一個額外的「>>>」。我所希望的是,如果我有例如'import imaplib',並且我做了'ctrl + enter',我會看到'>>> import imaplib',然後評估一個新的>>>。預計你的代碼會產生這種效果嗎?再次感謝您的幫助。 –

4

除了建立自己的鍵綁定,你可以簡單地安裝Enhanced-R

在崇高:

  • Cmd的 + + P(調出命令調色板)
  • 類型「Install Package
  • Naviga TE到Enhanced-R

如果您使用的崇高的大多隻是R,那麼你可以爲整個應用程序的默認語法。或者你也可以每個文件進行更改(Cmd的 + + P一遍,然後開始打字Syntax Enhanced R

然後,就像你是用來在RStudio,你只需點擊Cmd的 + 進入將代碼發送到控制檯或R。應用等

+0

使用SublimeREPL我可以在Sublime Text中打開R控制檯,對於Enhanced-R有沒有類似的選項? – adibender

+0

@adibender可以同時使用'sublimeREPL'和'Enhanced-R'。就我個人而言,我已經取消了'sublimeREPL',因爲它處理窗口大小問題變得煩人。我寧願有兩個窗口,我可以用'CMD-tab'(或'CMD- \'')在 –

+0

thx之間進行回覆,但我無法完成它的工作。我可以通過SublimeREPL打開R,我可以通過Enhanced-R將R代碼發送給Rgui,但不會將R代碼發送到SublimeREPL R-Console(通過Enhanced-R快捷方式)。但是我只會發佈一個問題,如果在多次嘗試之後我無法正常工作...... – adibender

1

發送原始R代碼裏面來SublimeREPL做現在的工作:

  1. 調出命令/按Ctrl + + P菜單
  2. 選擇R Application Switch
  3. 選擇SublimeREPL

當你有SublimeREPL激活時,你可以通過Cmd/Ctrl + 輸入將原始R發送給它。

請注意,默認情況下,SublimeREPL不會顯示發送的代碼;它只會告訴你輸出。如果你也想看到代碼,你可以改變你的用戶設置:

  1. 導航到Preferences -> Package settings -> SublimeREPL -> Settings - User
  2. 接通show_transferred_text設置。

舉例來說,如果你沒有任何其他設置,您的設置應該是這樣的:

{ 
    "show_transferred_text": true 
} 
相關問題