ラクにしたいでR:【RStudio】R Markdownで前のチャンクをコピーする

R Markdownで前のチャンクをコピーする (12/29更新:バックスラッシュを含むチャンクだとうまくコピーできないことがわかり修正) RStudioでR Markdown編集時に直前のチャンクをコピーして楽したい話。 (Quartoドキュメントでも使えた) tidyverseに出会ってRにはまっている。 Rでコードを書いて実行し、結果を残すのにR Markdownはとても便利だ。 試行錯誤しつつ進める際、実行したあとにコードを編集して再度実行することもできるが、 その場合は途中経過の出力が消えてしまう。 そこで前のチャンク内容をコピーして、新たなチャンクとして編集、実行することが非常に多い。 範囲選択してコピーペーストを繰り返していたが、きっとラクな機能が準備されているに違いない。 RStudioでは多くのショートカットキーが用意されている。 メニューの[Tools]-[Keyboard Shortcuts Help] (Alt+Shift+K)で主要なキーショートカットが確認できる。 また、メニューの[Tools]-[Modify Keyboard Shortcuts…]を見ると色々なショートカットが用意されていることがわかる。 しかしチャンクに関するものはほとんどなく、お目当てのものは無かった。 主要なエディタならマクロ機能があるのではと考えたが、それも見つからなかった。 そこで目をつけたのがコードスニペット機能だ。 特定の文字列をタイプするとあらかじめ登録しておいたものに置換してくれる。 調べるとRのコードを埋め込んで実行結果を使えるようだ。 試行錯誤の上、カーソル位置の直前のチャンク内容を出力するコードスニペットを作成することができた。 スニペット <p> カーソル位置の直前のチャンク内容を出力するコードスニペットは以下の通り。 </p> <pre><code>snippet cc `r cc_bq3 &lt;- paste(rep(intToUtf8(96), 3), collapse = "") cc_all &lt;- rstudioapi::getSourceEditorContext() cc_src &lt;- cc_all$contents cc_cpos &lt;- cc_all$selection cc_pos &lt;- cc_cpos[[1]]$range$start cc_srcs &lt;- cc_src[1:cc_pos[["row"]]] cc_exp1 &lt;- paste(c("^", cc_bq3, "\\{.*\\}$"), collapse = "") cc_spos &lt;- tail(grep(cc_exp1, cc_srcs), n = 1) cc_exp2 &lt;- paste(c("^", cc_bq3, "$"), collapse = "") cc_epos &lt;- tail(grep(cc_exp2 , cc_srcs), n = 1) cc_txt &lt;- gsub('\\\\' , '\\\\\\\\', cc_srcs[cc_spos:cc_epos]) paste(cc_txt , collapse = "\n") ` ...

2024年12月22日

qterminalでカーソル色指定できなかったのでxfce4-terminalに乗り換えた

軽量のLinux OSであるlubuntuを小型ノートPCに入れて遊んでいる。 lubuntuにはターミナルソフトとしてデフォルトでqterminalが入っている。 qterminalでは設定できるものが少なく、カーソルの形状が変えられるものの、 点滅の設定や色の設定は変えられないようだ。 困ったのが、qterminalでサーバ接続後、emacsのorg-modeでhidestarsを設定している場合に、 見出しの頭にカーソルを合わせるとカーソルが表示されない。 画面からカーソルが消えてしまったように見えて非常に不便だ。 どうやら見出しの*を消す仕組みとしてbackgroundカラーとforegroundカラーを一緒にして消えているように見せているようなのだが、 カーソルの色の設定がない場合、カーソルの色がbackgroundカラーと同じになるようで、見出しの星と同様にカーソルまで消えてしまうらしい。 カーソルの色を設定してあげれば解決するようだが、qterminalでは設定画面が無く、簡単には解決できなそうだった。 そこで、代わりとして追加でxfce4-terminalをインストールした。 こちらも軽量なターミナルソフトで、追加で10Mほどだった。 こちらは設定画面からカーソルの色や点滅も設定できる。 カーソルの背景色を白に、形状をI-Beam、カーソル点滅をONにすることでカーソルが消えること無く、思い通りの表示となった。 xfce4-terminalは起動時に–maximizeオプションをつければ最大化状態で起動ができる。 –fullscreenをつければフルスクリーン表示での起動も可能。 しばらくxfce4-terminalを使ってみようと思う。 それにしても名前を覚えづらい。 Wikipediaを見たら名前の由来はXForms Common Environmentから来ていてその略らしい。 少しは覚えやすくなった。気がする。

2024年5月19日