Zmień domyślny edytor tekstu dla crontab na vim

100

Używam Ubuntu 9.10, a domyślnym edytorem tekstu jest nano, którego nienawidzę. (nie wszyscy?)

Zwykle nie jest to problem, ponieważ po prostu vi lub gedit wszystko, ale crontab -eotwiera się z nano. Próbowałem zmienić go na vim, używając sudo update-alternatives --config editori wybierając opcję 3 („/usr/bin/vim.basic”). Zmieniło to zarówno sudo, jak i inne. Ale crontab -enadal otwiera nano. Jakieś pomysły? max

Max Williams
źródło

Odpowiedzi:

124

crontab -eKomenda sprawdzi zmienne środowiskowe $EDITORi $VISUALna ręcznym w domyślnym edytorze tekstowym, więc ...

export VISUAL=vim

lub

export EDITOR=vim

powinien załatwić sprawę.

njd
źródło
6
Pamiętaj, jeśli edytujesz plik crontab innego użytkownika, użyj sudo -E crontab -egdzie sudo -Eokreśla, użyj zmiennych env.
MarkHu
89

W Ubuntu spróbuj uruchomić:, select-editorktóry interaktywnie tworzy ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
smintz
źródło
próbowałem tego (pod sudo i moim użytkownikiem) i bez względu na to, jaką opcję zmieniłem, kiedy zadzwoniłem ponownie, nadal było na nano. Naprawiono to mimo wszystko z EDITOR env var, ale pomyślałem, że i tak powinienem o tym wspomnieć. Pozdrawiam
Max Williams,
4
Powyższe odpowiedzi nie działały ... to działa.
mlissner,
2
Tak, to zmienia ~ / .sensible_editor używane przez / usr / bin / sensible-editor. Wydaje się, że przy braku zmiennych środowiskowych określających edytor, crontab uruchamia rozsądny edytor, a nie edytor, ponieważ ten pierwszy pozwala na konfigurację dla poszczególnych użytkowników.
węgorz ghEEz
2
@MaxWilliams, uruchomienie edytora wyboru nie pokaże wcześniej dokonanego wyboru, który jest przechowywany w ~ / .sensible_editor.
węgorz ghEEz
5
@eelghEEz - Masz na myśli ~/.selected_editor? To jest w moim systemie i co widziałem gdzie indziej.
Wilson F,
12

Jeśli nanotak bardzo nienawidzisz , możesz go po prostu odinstalować:

sudo apt-get remove nano

crontabpowinien wtedy przejść domyślnie do następnego EDITOR(dla mnie tak było vim.basic).

komplementarny
źródło
Prowadzimy nasze zadania cron z kontem superużytkownika, ale logujemy się na konto dewelopera. Więc z konta deweloperskiego muszę zrobić sudo crontab -e. Ustawić export EDITOR=vimzarówno w super-użytkownika i .bashrc na koncie dev, ale sudo crontab -ewciąż otwiera się w nano. Po odinstalowaniu nano otworzy się vim. Dzięki!
arun
1
To jedyne rozwiązanie, które działało dla mnie. Próbowałem 4-5 rzeczy przed tym :)
Charlie Wynn
Jest to zdecydowanie najlepsze rozwiązanie, jeśli, jak sugeruje PO, nigdy nie potrzebujesz nano. Nie jestem pewien, dlaczego nie przyszło mi to do głowy wcześniej - prawdopodobnie nie zdawałem sobie sprawy, że crontab domyślnie przejdzie do następnego dostępnego edytora! Niesamowite
Łukasz
11

Od man crontab:

Opcja -e służy do edycji bieżącego crontab przy użyciu edytora
określone przez zmienne środowiskowe VISUAL lub EDITOR. Po tobie
wyjdź z edytora, zmodyfikowany crontab zostanie zainstalowany automatycznie
cally. Jeśli żadna ze zmiennych środowiskowych nie jest zdefiniowana, to
używany jest domyślny edytor / usr / bin / editor.

Dodaj do ~/.bashrc:

export EDITOR=vim
Cyrus
źródło
4

Lepszym wyborem jest ustawienie alternatywy dla edytora (nie tylko jednego użytkownika):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Gilles Quenot
źródło
3
Dlaczego lepiej jest zmienić ustawienie dla innych użytkowników, którzy nie prosili o zmianę?
ceving 25.04.17
3
export EDITOR=vi && crontab -e 

działa na ściśnięciu Debiana

Torsten Zenk
źródło
2
Małe wyjaśnienie zajmie długą drogę.
ChrisF
3
ustawia to zmienną środowiskową EDITOR, a następnie edytuje plik crontab, EDITOR=vim crontab -ebędzie również działał, ale tylko raz.
0x4a6f4672,
3

Niestety nie mogę komentować ani głosować.

W systemie Ubuntu plik konfiguracyjny jest nazywany ~/.selected_editor

Za pomocą następującego polecenia możesz ponownie wybrać domyślny edytor :

$ select-editor

Działa również usunięcie pliku z katalogu domowego.

$ rm ~/.selected_editor

Tylko ustawienie zmiennych $VISUALlub $EDITORbędzie działać, ale będzie trwałe, jeśli zapiszesz je w skrypcie, który jest wykonywany w twoim środowisku.

Dodaj do pliku rc

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

Ale nie polecam używać ostatniego rozwiązania.

André
źródło
Jeśli nie polecasz, dlaczego to zrobiłeś?
Ramhound
Tylko na zakończenie i dlatego, że inni ludzie mogą w ten sposób preferować.
André
0

Najlepiej usuń ~/.sensible_editorplik, a następnie uruchomi crontab -esię monit o wybranie preferowanego edytora.
Od tego momentu Twoje preferencje zostaną zapamiętane w ~/.sensible_editorpliku.

Jiju Thomas Mathew
źródło
nie jestem pewien, dlaczego zostało to przegłosowane, właśnie tego potrzebuję i działało idealnie.
okradać
Ubuntu wydaje się nie wiedzieć emacsclient.
ceving 25.04.17
-1

w przypadku Debiana użyj:

sudo update-alternatives --config editor command

i

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

wybierz „2” i naciśnij enter. Rozumiem!

Powód
źródło
Witamy w Super User! Przeczytaj uważnie pytanie ponownie. Twoja odpowiedź nie odpowiada na pierwotne pytanie. OP już to wypróbował (jest to pytanie) i to nie rozwiązało jego problemu.
DavidPostill
-1

Najłatwiej byłoby pozbyć się produktu, którego nie chcesz w całości. Wszystkie inne zmiany konfiguracji byłyby automatyczne.

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

Ozyrys
źródło
-1

Na starszych maszynach, takich jak niektóre Debian, działa to również i jest najbardziej przenośnym rozwiązaniem.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor
hlupaco
źródło
Nie, nie zadzieraj z niczym /usr/binręcznie; lokalizacjami tymi zarządzają dpkgi nie należy nimi manipulować bezpośrednio.
tripleee