Edit crontab with an editor other than the default

Solution 1:

crontab should respect the EDITOR environment variable, so you can just do (for the root crontab for example)

sudo EDITOR=vi crontab -e

From man crontab

The -e option is used to edit the  current  crontab  using  the  editor
specified  by  the  VISUAL  or EDITOR environment variables.  

Solution 2:

Specify nano as the editor for crontab file

export VISUAL=nano; crontab -e

Specify vim as the editor for crontab file

export VISUAL=vim; crontab -e