Thay đổi trình soạn thảo văn bản mặc định cho crontab thành vim


100

Tôi đang sử dụng Ubuntu 9.10 và trình soạn thảo văn bản mặc định là nano, điều mà tôi ghét. (không phải mọi người sao?)

Thông thường nó không phải là vấn đề vì tôi chỉ vi hoặc gedit mọi thứ mà crontab -elà mở bằng nano. Tôi đã thử thay đổi nó thành vim bằng cách sử dụng sudo update-alternatives --config editorvà chọn tùy chọn 3 ("/usr/bin/vim.basic"). Điều này đã thay đổi nó cho sudo và không sudo như nhau. Nhưng crontab -evẫn mở nano. Có ý kiến ​​gì không? tối đa

Câu trả lời:


124

Các crontab -elệnh sẽ kiểm tra các biến môi trường $EDITOR$VISUALcho ghi đè của soạn thảo văn bản mặc định, vì vậy ...

export VISUAL=vim

hoặc là

export EDITOR=vim

nên làm thủ thuật.


6
Hãy nhớ nếu bạn đang chỉnh sửa crontab của người dùng khác, hãy sử dụng sudo -E crontab -enơi sudo -Echỉ định sử dụng các tệp env của bạn.
MarkHu

89

Trong Ubuntu, hãy thử chạy : select-editor, tương tác tạo ra ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"

tôi đã thử cái này (theo sudo và người dùng của tôi) và bất cứ tùy chọn nào tôi đã thay đổi, khi tôi gọi lại thì nó vẫn ở trên nano. Đã sửa nó bằng EDITOR env var nhưng nghĩ rằng tôi nên đề cập đến nó hơn nữa. Chúc mừng
Max Williams

4
Các câu trả lời trên không hoạt động ... điều này không.
mlissner

2
Đúng, điều này thay đổi ~ / .sensible_editor được sử dụng bởi / usr / bin / Sensible-Editor. Dường như trong trường hợp không có các biến môi trường chỉ định trình soạn thảo, crontab chạy trình soạn thảo hợp lý chứ không phải trình soạn thảo như trước đây cho phép cấu hình theo người dùng.
lươn ghEEz

2
@MaxWilliams, chạy trình chọn biên tập sẽ không hiển thị lựa chọn đã thực hiện trước đó, được lưu trữ trong ~ / .sensible_editor.
lươn ghEEz

5
@eelghEEz - Ý bạn là ~/.selected_editorsao? Đó là những gì trên hệ thống của tôi và những gì tôi đã thấy ở nơi khác.
Wilson F

12

Nếu bạn ghét nanoquá nhiều, bạn chỉ có thể gỡ cài đặt nó:

sudo apt-get remove nano

crontabsau đó chỉ nên mặc định tiếp theo EDITOR(đối với tôi là như vậy vim.basic).


Chúng tôi chạy các công việc định kỳ bằng tài khoản siêu người dùng, nhưng đăng nhập vào tài khoản dev. Vì vậy, từ tài khoản dev tôi cần phải làm sudo crontab -e. Tôi đã cài đặt export EDITOR=vimcả .bashrc của cả người dùng và tài khoản nhà phát triển, nhưng sudo crontab -evẫn đang mở bằng nano. Sau khi gỡ cài đặt nano, nó sẽ mở vim. Cảm ơn!
arun

1
Đây là giải pháp duy nhất làm việc cho tôi. Đã thử 4-5 điều trước đó :)
Charlie Wynn

Đây là giải pháp tốt nhất nếu như OP ngụ ý, bạn không bao giờ cần nano. Không chắc chắn tại sao điều đó không xảy ra với tôi trước đây - có lẽ là tôi đã không nhận ra crontab sẽ chỉ mặc định cho trình chỉnh sửa có sẵn tiếp theo! Tuyệt vời
Luke

11

Từ man crontab:

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. Sau bạn
thoát khỏi trình chỉnh sửa, crontab đã sửa đổi sẽ được cài đặt tự động
cally. Nếu không có biến môi trường nào được xác định, thì
trình chỉnh sửa mặc định / usr / bin / trình chỉnh sửa được sử dụng.

Thêm vào của bạn ~/.bashrc:

export EDITOR=vim

4

Lựa chọn tốt hơn là đặt thay thế trình chỉnh sửa (không chỉ một người dùng):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100

3
Tại sao tốt hơn là thay đổi cài đặt cho những người dùng khác, những người không yêu cầu thay đổi?
ceving

3
export EDITOR=vi && crontab -e 

hoạt động trên bóp bóp


2
Một lời giải thích nhỏ sẽ đi một chặng đường dài.
ChrisF

3
cái này đặt biến môi trường EDITOR và sau đó chỉnh sửa tệp crontab, EDITOR=vim crontab -ecũng sẽ hoạt động, nhưng chỉ một lần.
0x4a6f4672

3

Thật không may, tôi không thể bình luận hoặc bỏ phiếu.

Trên Ubuntu, tệp cấu hình được gọi là ~/.selected_editor

Với lệnh sau, bạn có thể chọn lại trình chỉnh sửa mặc định :

$ select-editor

Loại bỏ các tập tin trong thư mục nhà của bạn cũng hoạt động.

$ rm ~/.selected_editor

Chỉ thiết lập các biến $VISUALhoặc $EDITORsẽ hoạt động nhưng chỉ tồn tại nếu bạn viết nó vào một tập lệnh được thực thi trong môi trường của bạn.

Thêm vào tập tin RC của bạn

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

Nhưng tôi không khuyên bạn nên sử dụng giải pháp cuối cùng.


Nếu bạn không giới thiệu nó tại sao bạn cung cấp nó?
Ramhound

Chỉ để hoàn thành và bởi vì những người khác có thể thích theo cách đó.
André

0

Tốt nhất bạn nên xóa ~/.sensible_editortệp và sau đó chạy crontab -esẽ nhắc bạn chọn trình chỉnh sửa ưa thích.
Từ đó, sở thích của bạn sẽ được ghi nhớ trong ~/.sensible_editortập tin.


không chắc chắn tại sao điều này đã được bình chọn, đó chính xác là những gì tôi cần và hoạt động hoàn hảo.
cướp

Ubuntu dường như không biết emacsclient.
ceving

-1

đối với Debian, hãy sử dụng:

sudo update-alternatives --config editor command

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

chọn '2' và nhấn enter. Hiểu rồi!


Chào mừng bạn đến với Siêu người dùng! Xin vui lòng đọc lại câu hỏi một cách cẩn thận. Câu trả lời của bạn không trả lời câu hỏi ban đầu. OP đã thử điều này (đó là trong câu hỏi) và nó đã không khắc phục vấn đề của anh ấy.
DavidPostill

-1

Dễ nhất là loại bỏ toàn bộ sản phẩm mà bạn không muốn. Tất cả các thay đổi cấu hình khác sẽ là tự động.

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


-1

Trên các máy cũ hơn như một số máy Debian, nó cũng hoạt động và là giải pháp di động nhất.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor

Không, đừng lộn xộn với bất cứ thứ gì /usr/binbằng tay; những vị trí này được quản lý bởi dpkgvà không nên bị thao túng trực tiếp.
tripleee
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.