How do I find and set my $EDITOR environment variable?
When I am using ipython or ipython3, I can use the %edit command to open up an editor to write my python scripts in. My problem is that the default editor is vim and I really do not get how to use that editor. What I would like to do is to change the editor to either nano or gedit. I think to stay with the terminal I would prefer to change it to the nano editor.
When I type in the 'edit?' command into the ipython terminal it says :
%edit runs IPython's editor hook. The default version of this hook is set to call the editor specified by your $EDITOR environment variable. If this isn't found, it will default to vi under Linux/Unix and to notepad under Windows. See the end of this docstring for how to change the editor hook.
Then when I see the end of that docstring I see this:
Changing the default editor hook:
If you wish to write your own editor hook, you can put it in a configuration file which you load at startup time. The default hook is defined in the IPython.core.hooks module, and you can use that as a starting example for further modifications. That file also has general instructions on how to set a new hook for use once you've defined it.
Sorry to be such a newbie, but I get lost here. I am not sure how to get to the IPython.core.hooks module, or just simply set an environment variable $EDITOR to nano.
Any suggestions?
Solution 1:
You can set the $EDITOR
variable with this command:
export EDITOR="/usr/bin/nano"
This will define the variable EDITOR
for the current session and pass it into the environment of all its child processes. To set it permanently you must define it in one of the system configuration files. The highest level at which you can do this is to set it in /etc/environment
. This defines it globally:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EDITOR="/usr/bin/nano"
Check that variable is defined:
$ echo $EDITOR
/usr/bin/nano
Editor's note: it's often preferable to put environment variables in your own ~/.profile
, which is a lot easier to fix if something goes wrong.
Solution 2:
Add line
export EDITOR=nano
to your ~/.profile
and ~/.bashrc
as in following picture. Do not put quotes around nano
and then run
source ~/.profile
source ~/.bashrc
at the prompt after modifying .profile
and .bashrc
for the modification to take effect.
Now the %edit
in ipython
will open nano
.
~/.bashrc
will be called for interactive + non-loginshell
whereas
~/.profile
will be called for interactive + login shell
In your case it is enough to just add it in ~/.bashrc
instead of ~/.profile
.