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.

Odpowiedzi:


170

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

export VISUAL=vi

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 :)


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

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

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.



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ę.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.