WindowsのいろんなモノからRへコード送るAHKスクリプト作ったよ!

概要

もともとWindowsVim(gvim)からRを使うためにAutoHotkeyスクリプトを書いてた.で,Windowsではマウスとか使わないと行だけの選択とか単語だけの選択は無理だと思い込んでたんだけど,そんなことはなかったので調子に乗っていろんなエディタからRを使えるように拡張してみた.冒頭で示したように付箋からだって楽にRが使えるぞ!

ダウンロード

SendWin2R.exeという実行ファイルが入っている.それを実行すると以下で説明するホットキーが使用可能になる.終了するときはタスクバーから.簡単だけど実行ファイルだし何か変更があっても多分作り直さないのでAutoHotkey(AutoHotkey)をインストールして以下のスクリプトを実行させる方が良いと思います.

画面中央上部のdonwloadボタンをクリックするとzipかtarballでスクリプトをダウンロードできる.以下で解説するのはSendWin2R.ahkAutoHotkeyがインストールしてあって,.ahkのファイルが関連づけされていればダブルクリックするだけで動く.これも終了はタスクバーから.
あとよっぽど大丈夫だとは思うけど何かあっても責任は取れないのでその点は理解して使って下さい.

動作環境

Windows 7 Professionalで動作確認.
Windowsなら大抵動くと思うけどNT系じゃない古いWindowsだと動かないかもしれない.
コード送信元のエディタ,アプリとしては大抵のものが対応していると思うけど,コピー,ペーストのショートカットキーやHOME,ENDキーの挙動が一般的なWindowsアプリケーションと異なる場合はうまくいかないかもしれない.ただVimからRを使うのが本来の目的だったこともありgvimからは動くようにしてある.

使い方

スクリプトを実行すると以下のコマンドが使用可能になる.[○○が存在するときのみ]とあるものはその名前を含むウィンドウが存在しているときだけ定義されるので,もしそのウィンドウが存在していないときにそのコマンドを実行した場合はそのキー本来の動作をする.

Rの起動
  • Ctrl+Alt+r: "rgui --sdi"を実行する.Rguiがsdiモードで起動.起動後,フォーカスはもとのウィンドウに戻る.
  • Ctrl+Alt+R: Ctrl+Alt+rと同様だがフォーカスをR Consoleにとどめる.

多重起動可能.コマンド送信の対象になるのは最前面のR Console.

Rの終了 [R Consoleが存在するときのみ]
  • Ctrl+Alt+q
R Consoleへコードを送る [R Consoleが存在するときのみ]
  • F3: 選択範囲のコードを実行.F4キーを押している間はR Consoleにフォーカスをとどめ,離したら戻る.
  • F4: カーソルが存在する行のコードを実行し,次の行へ.ESSのC-cC-n.これも押している間はフォーカスがとどまる.
ヘルプを引く [R Consoleが存在するときのみ]
  • Ctrl+c v: カーソル位置の下にある単語でヘルプを引く.フォーカスはヘルプウィンドウにとどまる.

C-cC-vではないことに注意.Ctrl+←で単語の先頭へ飛んでいる関係で単語の直前にカーソルがある場合は上手く動かない.単語の直後か単語の途中にカーソルがある場合は大丈夫.

  • q: ヘルプウィンドウを閉じ,フォーカスを元のウィンドウへ戻す.

このqはR Helpウィンドウが開いているときだけ有効.ヘルプの表示形式を変えてるとダメかも.

プロット用ウィンドウの操作 [R Graphicsが存在するときのみ]
  • Ctrl+g: Ctrl+gを押している間だけプロット用のウィンドウ(デフォルトのグラフィックデバイスのR Graphics)へフォーカスを移す.Ctrl+gを押している状態でさらにqをタイプするとウィンドウを閉じる.