When you start a programming language like Python or R from the command line, you get a lot of initial text that you probably don’t read. For example, you might see something like this when you start Python.
Python 2.7.6 (default, Nov 23 2017, 15:49:48) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information.
The version number is a good reminder. I’m used to the command python
bringing up Python 3+, so seeing the text above would remind me that on that computer I need to type python3
rather than simply python
.
But if you’re working at the command line and jumping over to Python for a quick calculation, the start up verbiage separates your previous work from your current work by a few lines. This isn’t such a big deal with Python, but it is with R:
R version 3.6.1 (2019-07-05) -- "Action of the Toes" Copyright (C) 2019 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.
By the time you see all that, your previous work may have scrolled out of sight.
There’s a simple solution: use the option -q
for quiet mode. Then you can jump in and out of your REPL with a minimum of ceremony and keep your previous work on screen.
For example, the following shows how you can use Python and bc without a lot of wasted vertical space.
> python -q >>> 3+4 7 >>> quit() > bc -q 3+4 7 quit
Python added the -q
option in version 3, which the example above uses. Python 2 does not have an explicit quiet mode option, but Mike S points out a clever workaround in the comments. You can open a Python 2 REPL in quiet mode by using the following.
python -ic ""
The combination of the -i
and -c
options tells Python to run the following script and enter interpreter mode. In this case the script is just the empty string, so Python does nothing but quietly enter the interpreter.
R has a quiet mode option, but by default R has the annoying habit of asking whether you want to save a workspace image when you quit.
> R.exe -q > 3+4 [1] 7 > quit() Save workspace image? [y/n/c]: n
I have never wanted R to save a workspace image; I just don’t work that way. I’d rather keep my state in scripts. I set R to an alias that launches R with the --no-save
option.
So if you launch R with -q
and --no-save
it takes up no more vertical space than Python or bc.
powershell -nologo
Clever tip. There are other tools have an interactive shell, like swift or gnuplot but they apparently do not support the -q flag.
Thanks for the Powershell example.
versus
https://stackoverflow.com/questions/18037916/can-the-python-interpreter-welcome-message-be-suppressed
$ python -ic “”
Very clever! I updated the post to include the Python 2 workaround.
$ python -ic “”
How python-ic!