I believe I can do something like export EDITOR=vi
, but I'm not sure what exactly to enter, and where.
How can I set "vi" as my default editor?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityYou should add it to your shell’s configuration file. For Bash, this is ~/.bashrc
or ~/.bash_profile
(see detailed comparison). You should also set $VISUAL
, as some programs (correctly) use that instead of $EDITOR
(see VISUAL
vs. EDITOR
). Additionally, unless you know why, you should set it to vim
instead of vi
.
TL;DR, add the following to your shell configuration (probably ~/.bashrc
):
export VISUAL=vim
export EDITOR="$VISUAL"
EDITOR
is in both your environment (env | grep EDITOR
) and is passed to sudo
(sudo env | grep EDITOR
), as your system’s sudo security policy may prohibit it (see man sudo
for more details).
Jun 26, 2018 at 17:18
/usr/bin/vi
rather than vim
otherwise crontab -e
failed with the error crontab /bin/sh: 1: vim: not found
.
On Ubuntu and other Ubuntu/Debian-based Linux systems, you can explicitly set the default text editor at the system level by providing its path to update-alternatives
:
sudo update-alternatives --set editor /usr/bin/vim.basic
sudo update-alternatives --set vi /usr/bin/vim.basic
If your distro doesn't call it /usr/bin/vim.basic
, you can find out which path to use with the --list
argument:
sudo update-alternatives --list editor
/bin/ed
/bin/nano
/usr/bin/vim.basic
/usr/bin/vim.tiny
Or, to see all options and choose interactively:
sudo update-alternatives --config editor
ranger
too, which was exactly what I needed. PS: just for helping index for people who is trying to do the same.
In recent versions of Ubuntu you use the alternatives system to manage the default, editor, e.g.:
update-alternatives --set editor /usr/bin/vim.basic
To see which editors are available for use:
update-alternatives --list editor
Some UNIX distributions might provide a select-editor
command:
select-editor
And it will ask you which editor to use.
Make sure you actually have vim
installed before trying to set it as your default editor.
If bash is your shell, then insert it into .bash_profile
in your home directory; if zsh is your shell, then insert it into .zprofile
; for other shells see the according documentation.
.zprofile
file will be read for each and every shell invocation. It seems odd to want to set the editor for shell sessions that aren't even interactive.
su
into your account, .zshenv
will be sourced.
export EDITOR=vim
in your bashrc or zshrc or ..rcselect-editor
.