как отключить «сохранить изображение рабочего пространства?» подскажите в r?

<p>когда я выхожу из интерактивной оболочки r, она каждый раз отображает раздражающую подсказку:</p><pre> > > сохранить изображение рабочего пространства? [y/n/c]: n </pre><p>я всегда отвечаю "нет", потому что, если бы я хотел сохранить свою работу, я бы сделал это <em>до</em>, пытаясь выйти.</p><p>как избавиться от подсказки?</p><hr><p><sup>примечание: см. <code>?save.image</code></sup></p>

<p>вы можете передать аргумент командной строки <a href="http://cran.r-project.org/doc/manuals/r-devel/r-intro.html#invoking-r-from-the-command-line"><code>--no-save</code></a> при запуске r или переопределить функцию <code>q</code>:</p><pre><code>utils::assigninnamespace( "q", function(save = "no", status = 0, runlast = true) { .internal(quit(save, status, runlast)) }, "base" ) </code></pre><p>поместите приведенный выше код в свой .rprofile, чтобы он запускался при каждом сеансе.</p>

<p>еще не нашли самое простое решение для linux :)</p><p>в ubuntu добавьте следующую строку в свой <code>~/.bashrc</code>:</p><pre><code>alias r='r --no-save' </code></pre><p>каждый раз, когда вы запускаете консоль r с <code>r</code>, ей передается опция <code>--no-save</code>.</p>

<p>вы можете избежать запроса "<em>сохранить изображение рабочей области?</em>" с помощью <kbd>ctrl+d</kbd>,.</p><p>таким образом, если вы делаете <kbd>ctrl+d</kbd> дважды в интерактивном r, затем вы выходите из r без сохранения рабочего пространства.</p><p><em>(проверено на linux и os x)</em></p>

<p>если вы используете rgui, щелкните правой кнопкой мыши по значку, который вы используете для запуска r, выберите "свойства" и добавьте --no-save к команде, которая запускает r.</p><p>(из <a href="http://tolstoy.newcastle.edu.au/r/help/05/03/1115.html">http://tolstoy.newcastle.edu.au/r/help/05/03/1115.html</a> )</p><p>если вы используете редактор, отличный от rgui, вы должны передать --no-save в командную строку r при запуске r</p>

<p>вы можете легко добавить функцию <code>qq()</code> в файл .rprofile</p><pre><code> qq <- function(save="no") { q(save=save)} </code></pre><p>я думал, что опция сохранения была доступна с опциями, но, очевидно, ответ джошуа - лучший.</p>

<p>параметр перезаписи по умолчанию для <em>сохранить</em> аргумент функции <em>выйти</em></p><pre><code>formals(quit)$save <- formals(q)$save <- "no" </code></pre><p>поместите эту строку в .rprofile</p><p>правка: добавлено <code>q</code>, поэтому нет подсказки, независимо от того, какой вариант используется</p>

<p>получите лучшее из обеих стратегий, заданных <a href="https://stackoverflow.com/users/910868/mreq">mreq</a> и <a href="https://stackoverflow.com/users/1855677/bondeddust">bondeddust</a> :</p><p>по умолчанию не сохранять, добавив следующую строку в ~/.bashrc:</p><pre><code>alias r='r --no-save' </code></pre><p>но дайте себе простой способ сэкономить при выходе, добавив это в ~/.rprofile:</p><pre><code>qs <- function(save="yes") { q(save=save)} </code></pre><p>так что теперь <code>q()</code> выходит без сохранения (или запроса), но <code>qs()</code> будет сохранять и выходить (также без запроса)</p>

<p>как насчет того, чтобы просто избежать приглашения, набрав вместо этого <code>q('no')</code></p>

<p>вы можете создать псевдоним для команды r:</p><p><strong>используя bash</strong>: <code>alias r='r --no-save'</code></p><p><strong>используя csh:</strong> <code>alias r 'r --no-save'</code></p>

<p>если, как и я, набрать целую пару скобок кажется слишком большим усилием для выхода из repl, вы можете попробовать это:</p><pre><code>exit <- structure(list(), class = "exit\_command") print.exit\_command <- function(...) { q("no") # exit without saving } </code></pre><p>это создает новый класс, который заставляет r выходить при попытке напечатать указанный класс. в результате, если вы запустите <code>exit</code> в r repl, все завершится (потому что он попытается его распечатать).</p><p>nb. вы можете добавить его в <code>~/.rprofile</code> для загрузки в начале каждого сеанса.</p>