Changer l'éditeur de texte par défaut pour crontab en vim

100

J'utilise Ubuntu 9.10 et l'éditeur de texte par défaut est nano, ce que je déteste. (tout le monde ne fait pas?)

Normalement, ce n’est pas un problème, car je viens de tout vi ou gedit, mais crontab -ej’ouvre avec nano. J'ai essayé de le changer en vim en utilisant sudo update-alternatives --config editoret en sélectionnant l'option 3 ("/usr/bin/vim.basic"). Cela a changé pour le sudo et le non-sudo. Mais crontab -eouvre toujours nano. Des idées? max

Max Williams
la source

Réponses:

124

La crontab -ecommande vérifiera les variables d’environnement $EDITORet le $VISUALremplacement de l’éditeur de texte par défaut.

export VISUAL=vim

ou

export EDITOR=vim

devrait faire l'affaire.

njd
la source
6
Rappelez-vous que si vous éditez la crontab d'un autre utilisateur, utilisez sudo -E crontab -esudo -Espécifie où utiliser vos env vars.
MarkHu
89

Dans Ubuntu, essayez run:, select-editorqui crée de manière interactive ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
Smintz
la source
J'ai essayé ceci (sous sudo et mon utilisateur) et quelle que soit l'option que j'ai changée, quand je l'ai rappelé, c'était toujours sur nano. Le corrige quand même avec EDITOR env var mais pensa que je ferais mieux de le mentionner quand même. À la vôtre
Max Williams
4
Les réponses ci-dessus n'ont pas fonctionné ... ça marche.
mlissner
2
Oui, cela change ~ / .sensible_editor utilisé par / usr / bin / sensible-editor. Il semble qu'en l'absence des variables d'environnement spécifiant l'éditeur, crontab exécute sensible-editor et non éditeur car ce dernier autorise la configuration par utilisateur.
anguille ghEEz
2
@ MaxWilliams, en cours d’exécution, select-editor n’affichera pas la sélection précédemment effectuée, qui est stockée dans ~ / .sensible_editor.
anguille ghEEz
5
@eelghEEz - Vous voulez dire ~/.selected_editor? C'est ce qui est sur mon système et ce que j'ai vu ailleurs.
Wilson F
12

Si vous détestez nanotellement, vous pouvez simplement le désinstaller:

sudo apt-get remove nano

crontabdevrait alors juste défaut à la prochaine EDITOR(pour moi c'était vim.basic).

compliste
la source
Nous exécutons nos tâches cron avec un compte super-utilisateur, mais nous nous connectons à un compte dev. Donc, du compte dev que je dois faire sudo crontab -e. J'ai défini export EDITOR=vimà la fois le .bashrc du super-utilisateur et du compte dev, mais je m'ouvrais sudo crontab -etoujours dans nano. Après avoir désinstallé nano, il ouvre vim. Merci!
arun
1
C'est la seule solution qui a fonctionné pour moi. Essayé 4-5 choses avant cela :)
Charlie Wynn
C’est de loin la meilleure solution si, comme l’implique le PO, vous n’avez jamais besoin de nano. Je ne sais pas pourquoi cela ne m'est pas venu à l'esprit auparavant - probablement que je n'avais pas réalisé que crontab ne ferait que passer par défaut au prochain éditeur disponible! Génial
Luke
11

De man crontab:

L'option -e est utilisée pour éditer la crontab courante en utilisant l'éditeur
spécifié par les variables d'environnement VISUAL ou EDITOR. Après vous
sortie de l'éditeur, la crontab modifiée sera installée automatiquement
cally. Si aucune des variables d'environnement n'est définie, la
l'éditeur par défaut / usr / bin / editor est utilisé.

Ajouter à votre ~/.bashrc:

export EDITOR=vim
cYrus
la source
4

Le meilleur choix consiste à définir une alternative à l'éditeur (pas seulement un utilisateur):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Gilles Quenot
la source
3
Pourquoi est-il préférable de modifier le paramètre pour les autres utilisateurs, qui n'ont pas demandé le changement?
Ceving
3
export EDITOR=vi && crontab -e 

fonctionne sur Debian Squeeze

Torsten Zenk
la source
2
Une petite explication irait un long chemin.
ChrisF
3
ceci définit la variable d’environnement EDITOR et édite ensuite le fichier crontab, EDITOR=vim crontab -efonctionnera également, mais une seule fois.
0x4a6f4672
3

Malheureusement, je ne peux ni commenter ni voter.

Sur Ubuntu, le fichier de configuration s'appelle ~/.selected_editor

Avec la commande suivante, vous pouvez sélectionner à nouveau l' éditeur par défaut :

$ select-editor

Supprimer le fichier de votre répertoire personnel fonctionne également.

$ rm ~/.selected_editor

Définir uniquement les variables $VISUALou $EDITORfonctionnera, mais n’est persistant que si vous l’écrivez dans un script exécuté dans votre environnement.

Ajouter à votre fichier rc

$ echo "export VISUAL=/usr/bin/vi" >> ~/.bashrc

Mais je ne recommanderais pas d'utiliser la dernière solution.

André
la source
Si vous ne le recommandez pas, pourquoi l'avez-vous fourni?
Ramhound
Juste pour compléter et parce que d'autres personnes peuvent préférer de cette façon.
André
0

Il vaut mieux supprimer le ~/.sensible_editorfichier, puis exécuter crontab -evous invitera à choisir l'éditeur préféré.
A partir de là, vos préférences seront mémorisées dans le ~/.sensible_editorfichier.

Jiju Thomas Mathew
la source
Je ne sais pas pourquoi cela a été voté c'est exactement ce dont j'ai besoin et a parfaitement fonctionné.
Rob
Ubuntu ne semble pas savoir emacsclient.
Ceving
-1

pour Debian, utilisez:

sudo update-alternatives --config editor command

et

 ----------------------------------------------------------
06  * 0          /bin/nano            40       
07  1            /bin/nano            40       
08  2            /usr/bin/vim.basic   30        
09  3            /usr/bin/vim.tiny    10        

sélectionnez '2' et appuyez sur enter. Je l'ai!

raisonnement
la source
Bienvenue sur Super User! Veuillez relire attentivement la question. Votre réponse ne répond pas à la question initiale. Le PO a déjà essayé cela (c'est dans la question) et cela n'a pas résolu son problème.
DavidPostill
-1

Le plus simple serait de se débarrasser du produit que vous ne voulez pas dans son intégralité. Tous les autres changements de configuration seraient automatiques.

apt-get install vim -y && apt-get remove nano -y

Osiris
la source
-1

Sur des machines plus anciennes comme certaines machines Debian, cela fonctionne également et constitue la solution la plus portable.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor
Hlupaco
la source
Non, ne plaisante pas avec quoi que ce soit /usr/binmanuellement; ces emplacements sont gérés par dpkget ne doivent pas être manipulés directement.
tripleee