-1

関数をデバッグしてfoo()いて、それを何度も変更し、いくつかの引数を指定して実行したいとしますfoo(bar="Hello", baz="How are you?")。問題が確実に解決されるようにします。

本文を変更した後、foo()関数定義の行を実行して(関数を変更します) foo(bar="Hello", baz="How are you?")、次に、変更foo()が正しく機能するかどうかを確認するために、を含む行の履歴を検索する必要があります。履歴の検索は、最後に実行したときに関数定義の前に到達するまで「上」キーを押し続けることで置き換えることもできますfoo(bar="Hello", baz="How are you?")

もう1つの可能性は、クリップボードに保持し、本体foo(bar="Hello", baz="How are you?")を変更するたびに、クリップボードから貼り付けて実行することです。foo()foo(bar="Hello", baz="How are you?")

しかし、長いボディで複数の関数を同時に変更する場合、これらのソリューションはすべて非常に困難です。私が教えた最良の可能性は、関数定義を履歴から隠すことです-ネイティブR環境またはRStudioのようなIDEで作業しているとき。これを行う可能性はありますか?より良い解決策はありますか?

4

1 に答える 1

4

source()IDE /エディタから関数コードブロックを「コピーアンドペースト」(または実行)するのではなく、ファイルから関数定義を実行できます。これを行うと、ソーシングはRコンソールに表示されません(とにかくデフォルトで)。最も合理的なエディターには、関数バッファー/ファイル/ウィンドウをソース/ロードするためのキーボードショートカットがあります。たとえば、Emacs + source()ESSでは「貼り付け」するのではなく、Rにロードします。Cc Cl

Emacsのような賢明なエディターをESSで使用できます。これは、コードバッファーから送信されたコードをRバッファーにインターリーブしないため、関数定義からアップキーする必要はなく、履歴をさかのぼるだけです。

少なくともLinuxでは、共通のCtrl+rを使用してから、必要な関数呼び出しの最初の数文字の入力を開始できます。これにより、入力している内容が逆検索され、Enterそのコマンド/ラインが実行されます。

于 2012-11-08T09:54:19.303 に答える