Làm thế nào để chỉ định một trình chỉnh sửa để mở tệp crontab? “Export EDITOR = vi” không hoạt động


103

Tôi đang sử dụng Red Hat Enterprise Linux 5 và tôi muốn đặt trình chỉnh sửa vim để chỉnh sửa tệp crontab.

Nếu tôi chạy echo $EDITOR, tôi sẽ có khí lực. Nhưng khi tôi chạy crontab -e, tôi nhận được trình soạn thảo khác.

Câu trả lời:


170

Rất có thể VISUALbiến môi trường của bạn được đặt thành thứ khác. Thử:

export VISUAL=vi

6
biến cài đặt export VISUAL=vim( setenv VISUAL "vim"cho tcsh shell) nó hoạt động TUYỆT VỜI !!
antonjs

9
@ lwpro2: Nếu VISUALkhông được đặt, EDITORbiến sẽ được sử dụng. Nhưng VISUALđã được ưu tiên hơn EDITOR.
bmk

Nếu crontab được quản lý bởi nhiều người với một người dùng, tôi khuyên bạn nên thực hiện điều này trong một vỏ con, để trình chỉnh sửa mặc định vẫn giữ nguyên vị trí.
Thomas Böhm

Bất kỳ ý tưởng tại sao tệp lại khác khi được mở bằng vi thay vì nano?
dardub

76

Để trích dẫn người đàn ông:

Tùy chọn -e được sử dụng để chỉnh sửa crontab hiện tại bằng trình chỉnh sửa được chỉ định bởi các biến môi trường VISUAL hoặc EDITOR

Thông thường nhất nếu bạn chạy crontab -etừ X, bạn đã VISUALđặt; đó là những gì được sử dụng. Thử cái này:

VISUAL=vi crontab -e

Nó chỉ làm việc cho tôi :)


Cảm ơn bạn đã giải thích, Thật vậy, tôi đang chạy thiết bị đầu cuối của mình từ X.
antonjs

1
Lựa chọn tốt nhất nếu bạn đang chạy crontab -e với sudo :)sudo VISUAL=vi crontab -e
MediaVince

42

Nếu các phương pháp trên không hoạt động (vì chúng không hoạt động trên bản cài đặt Ubuntu 13.04 của tôi), hãy thử:

Có một số cách thay thế:

1) Chạy trình biên tập chọn

select-editor

2) Chỉnh sửa tệp theo cách thủ công: ~/.selected_editorchỉ định trình chỉnh sửa ưa thích của bạn. Với tùy chọn này, bạn có thể chỉ định các thông số của trình soạn thảo.

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

3) Bạn có thể chỉ định nhanh trên dòng lệnh với:

env VISUAL="emacs -nw" crontab -e

1
Tôi đã nhầm lẫn khi đặt trình chỉnh sửa mặc định thành nanokhi mở crontab lần đầu tiên. Sau đó, tôi phải sử dụng sudo select-editorđể làm cho nó hoạt động. Một mẹo nếu chỉ select-editorkhông hoạt động
244an 10/12/13

2
Bạn không nên sử dụng "sudo" cho cấu hình cá nhân của mình. Nó có thể phá vỡ mọi thứ buộc bạn phải ở trên cao để sử dụng máy tính bình thường. Sudo (lệnh nâng cao) dùng để làm việc với các tính năng trên toàn hệ thống bên ngoài khu vực cá nhân của bạn (~ khu vực người dùng).
LD James

5

Tôi nghĩ bạn có thể cần sử dụng đường dẫn đầy đủ:

export EDITOR=/usr/bin/vim

3
Cái bẫy VISUALđược kiểm tra trước. Vì vậy, một lời khuyên âm thanh hoàn hảo như của bạn hoạt động tốt cho một phiên SSH và không thành công một cách bí ẩn trên hộp máy tính để bàn.
9000

Tôi đã thử xuất trong khi gán như mô tả, nhưng nó không hoạt động. Bằng cách gán trước và sau đó xuất nó làm việc cho tôi, như sau: EDITOR = / usr / bin / vi; xuất EDITOR. Sử dụng SunOS theo SSH tại đây.
Alan

5

Bạn có thể sử dụng lệnh dưới đây để mở nó trong trình soạn thảo VIM.

export VISUAL=vim; crontab -e

Lưu ý: Hãy đảm bảo rằng trình soạn thảo VIM đã được cài đặt trên máy chủ của bạn.



2

Nó không hiệu quả với tôi. Tôi chạy crontab với sudo, vì vậy tôi đã chuyển sang root, đã thực hiện các đề xuất ở trên và crontab sẽ mở trong vim, nhưng nó vẫn không mở từ tài khoản người dùng của tôi. Cuối cùng tôi đã chạy sudo select-editortừ tài khoản người dùng và điều đó đã thực hiện thủ thuật.


1
Nếu bạn phải chạy sudo để định cấu hình môi trường người dùng của mình, điều đó báo hiệu các vấn đề mà bạn nên giải quyết. Bạn đã chạy sudo trên không gian cá nhân của mình và mất quyền đối với các tệp thuộc quyền sở hữu của bạn. Bạn có thể kiểm tra không gian của bạn bằng cách chạy: find ~/ -mount ! -user $(whoami). Bạn có thể khắc phục sự cố bằng cách chạy: sudo chown -R $(whoami):$(whoami) ~/.
LD James

@LDJames Bạn đã đúng, cảm ơn bạn. Hóa ra đó chỉ là tệp .select_editor do root sở hữu.
felwithe

2

Điều này đã làm việc cho tôi:

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

Thêm cái này vào ~ / .bash_profile hoặc ~ / .bashrc để bật cái này cho người dùng hiện tại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.