Jak określić edytor, aby otworzyć plik crontab? „Export EDITOR = vi” nie działa

103

Używam Red Hat Enterprise Linux 5 i chcę ustawić edytor vim, aby edytować plik crontab.

Jeśli biegnę echo $EDITOR, dostaję vim. Ale kiedy biegam crontab -e, mam innego redaktora.

antonjs
źródło

Odpowiedzi:

170

Bardzo prawdopodobne, że VISUALzmienna środowiskowa jest ustawiona na coś innego. Próbować:

export VISUAL=vi
bmk
źródło
6
ustawienie zmiennej export VISUAL=vim( setenv VISUAL "vim"dla powłoki tcsh) działa świetnie !!
antonjs
9
@ lwpro2: Jeśli VISUALnie jest ustawione, EDITORużywana jest zmienna. Ale VISUALma pierwszeństwo przed EDITOR.
bmk
Jeśli crontab jest zarządzany przez kilka osób z jednym użytkownikiem, polecam zrobić to w podpowłoce, aby domyślny edytor pozostał na miejscu.
Thomas Böhm,
Jakieś pomysły, dlaczego plik jest inny po otwarciu w vi zamiast w nano?
dardub
76

Cytując człowieka:

Opcja -e jest używana do edycji bieżącej tabeli crontab przy użyciu edytora określonego przez zmienne środowiskowe VISUAL lub EDITOR

Najczęściej, jeśli uciekasz crontab -ez X, VISUALustawiłeś; to jest to, co jest używane. Spróbuj tego:

VISUAL=vi crontab -e

U mnie to po prostu zadziałało :)

9000
źródło
Dzięki za wyjaśnienie, rzeczywiście uruchamiam swój terminal z X.
antonjs
1
Najlepsza opcja, jeśli używasz crontab -e z sudo :)sudo VISUAL=vi crontab -e
MediaVince
42

Jeśli powyższe metody nie działają (ponieważ nie działają na mojej instalacji Ubuntu 13.04), spróbuj:

Istnieje kilka alternatywnych sposobów:

1) Uruchom edytor wyboru

select-editor

2) Ręcznie edytuj plik: ~/.selected_editorokreśl preferowany edytor. Dzięki tej opcji możesz określić parametry edytora.

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/emacs -nw"

3) Możesz określić w locie w linii poleceń za pomocą:

env VISUAL="emacs -nw" crontab -e
LD James
źródło
1
nanoPodczas pierwszego otwierania crontaba przez pomyłkę ustawiłem domyślny edytor na . Potem musiałem użyć, sudo select-editoraby to zadziałało. Wskazówka, jeśli tylko select-editornie zadziała
244an
2
Nie powinieneś używać "sudo" do swojej osobistej konfiguracji. Może to zepsuć rzeczy, zmuszając cię do pozostania na podwyższonym poziomie pracy przy normalnym użytkowaniu komputera. Sudo (podwyższone polecenie) służy do pracy z funkcjami całego systemu poza obszarem osobistym (~ obszar użytkownika).
LD James,
5

Myślę, że możesz potrzebować użyć pełnej ścieżki:

export EDITOR=/usr/bin/vim
Alex Howansky
źródło
3
Pułapka polega na tym, że VISUALnajpierw sprawdza się. Tak więc idealnie rozsądna rada, taka jak twoja, działa dobrze w przypadku sesji SSH i w tajemniczy sposób zawodzi na komputerze stacjonarnym.
9000
Próbowałem eksportować podczas przypisywania zgodnie z opisem, ale to nie zadziałało. Przypisując najpierw, a następnie eksportując, zadziałało, na przykład: EDITOR = / usr / bin / vi; eksportuj EDYTOR. Używanie SunOS pod SSH tutaj.
Alan
5

Możesz użyć poniższego polecenia, aby otworzyć go w edytorze VIM.

export VISUAL=vim; crontab -e

Uwaga: upewnij się, że na serwerze jest zainstalowany edytor VIM.

Parveen Shukhala
źródło
3

export EDITOR=vim pracował dla mnie

Chema
źródło
2

To nie działało na mnie. Uruchamiam crontab z sudo, więc przełączyłem się na roota, wykonałem powyższe sugestie, a crontab otworzyłby się w vimie, ale nadal nie byłby z mojego konta użytkownika. W końcu uciekłem sudo select-editorz konta użytkownika i to załatwiło sprawę.

felwithe
źródło
1
Jeśli musisz uruchomić sudo, aby skonfigurować środowisko użytkownika, oznacza to problemy, które powinieneś rozwiązać. Uruchomiłeś sudo na swojej osobistej przestrzeni i utraciłeś uprawnienia do plików, które powinny być Twoją własnością. Możesz sprawdzić swoje miejsce uruchamiając: find ~/ -mount ! -user $(whoami). Można rozwiązać ten problem przez wykonanie: sudo chown -R $(whoami):$(whoami) ~/.
LD James
@LDJames Miałeś rację, dziękuję. Jak się okazuje, był to tylko plik .select_editor, którego właścicielem był root.
felwithe
2

To zadziałało dla mnie:

EDITOR="/usr/bin/vim"
export EDITOR

Dodaj to do ~ / .bash_profile lub ~ / .bashrc, aby włączyć to dla bieżącego użytkownika.

Spacerować
źródło