เปลี่ยนโปรแกรมแก้ไขข้อความเริ่มต้นสำหรับ crontab เป็นกลุ่ม


100

ฉันใช้อูบุนตู 9.10 และตัวแก้ไขข้อความเริ่มต้นคือนาโนซึ่งฉันเกลียด (ไม่ใช่ทุกคนเหรอ?)

ปกติแล้วมันไม่ใช่ปัญหาเพราะฉันเพิ่ง vi หรือ gedit ทุกอย่าง แต่crontab -eเปิดด้วย nano ฉันลองเปลี่ยนเป็นเสียงเรียกเข้าโดยใช้sudo update-alternatives --config editorและเลือกตัวเลือก 3 ("/usr/bin/vim.basic") สิ่งนี้เปลี่ยนไปสำหรับ sudo และ non-sudo เหมือนกัน แต่crontab -eยังคงเปิดนาโน ความคิดใด ๆ สูงสุด

คำตอบ:


124

crontab -eคำสั่งจะตรวจสอบตัวแปรสภาพแวดล้อม$EDITORและ$VISUALการแทนที่โปรแกรมแก้ไขข้อความเริ่มต้นดังนั้น ...

export VISUAL=vim

หรือ

export EDITOR=vim

ควรทำเคล็ดลับ


6
จำไว้ว่าถ้าคุณกำลังแก้ไข crontab ของผู้ใช้อื่นให้ใช้sudo -E crontab -eที่sudo -Eระบุใช้ env vars ของคุณ
MarkHu

89

ในอูบุนตูให้ลองเรียกใช้: select-editorซึ่งสร้างขึ้นแบบโต้ตอบ~/.selected_editor:

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

ฉันลองสิ่งนี้ (ภายใต้ sudo และผู้ใช้ของฉัน) และตัวเลือกอะไรก็ตามที่ฉันเปลี่ยนเมื่อฉันเรียกมันอีกครั้งมันยังคงอยู่ในนาโน แก้ไขมันด้วย EDITOR env var แต่คิดว่าฉันควรพูดถึงมันต่อไป ไชโย
Max Williams

4
คำตอบข้างต้นไม่ได้ผล ... สิ่งนี้ทำ
mlissner

2
ใช่การเปลี่ยนแปลงนี้ ~ / .sensible_editor ใช้โดย / usr / bin / sensible-editor ดูเหมือนว่าหากไม่มีตัวแปรสภาพแวดล้อมที่ระบุตัวแก้ไข crontab จะเรียกใช้ sensible-editor ไม่ใช่ตัวแก้ไขเนื่องจากก่อนหน้านี้อนุญาตการกำหนดค่าต่อผู้ใช้
ปลาไหล geez

2
@ MaxWilliams การเรียกใช้ select-editor จะไม่แสดงการเลือกที่ทำไว้ก่อนหน้านี้ซึ่งถูกเก็บไว้ใน ~ / .sensible_editor
ปลาไหล gEEE

5
@eelghEEz - คุณหมายถึง~/.selected_editorอะไร นั่นคือสิ่งที่อยู่ในระบบของฉันและสิ่งที่ฉันเคยเห็นที่อื่น
Wilson F

12

หากคุณเกลียดnanoมากคุณสามารถถอนการติดตั้ง:

sudo apt-get remove nano

crontabจากนั้นควรเริ่มต้นที่ถัดไปEDITOR(สำหรับฉันมันvim.basic)


เราทำงาน cron ของเราด้วยบัญชีผู้ใช้ขั้นสูง แต่เข้าสู่บัญชี dev ดังนั้นจากบัญชี dev sudo crontab -eฉันต้องทำ ฉันตั้งค่าexport EDITOR=vimทั้งใน super-user และบัญชี dev ของ. bashrc แต่sudo crontab -eยังคงเปิดใน nano หลังจากถอนการติดตั้งนาโนก็จะเปิดเป็นกลุ่ม ขอบคุณ!
อรุณ

1
นี่เป็นทางออกเดียวที่ได้ผลสำหรับฉัน ลองใช้ 4-5 สิ่งก่อนหน้านี้ :)
Charlie Wynn

นี่คือทางออกที่ดีที่สุดหาก OP หมายถึงคุณไม่จำเป็นต้องใช้นาโน ไม่แน่ใจว่าทำไมมันไม่เคยเกิดขึ้นกับฉันมาก่อน - บางทีฉันอาจไม่ทราบว่า crontab จะใช้ค่าเริ่มต้นเป็นตัวแก้ไขถัดไปที่มีอยู่! เยี่ยมมาก
ลุค

11

จากman crontab:

อ็อพชัน -e ใช้เพื่อแก้ไข crontab ปัจจุบันโดยใช้เอดิเตอร์
ระบุโดยตัวแปรสภาพแวดล้อม VISUAL หรือ EDITOR หลังจากที่คุณ
ออกจากตัวแก้ไข crontab ที่แก้ไขจะถูกติดตั้งโดยอัตโนมัติ
ถอนรากถอนโคน หากไม่ได้กำหนดตัวแปรสภาพแวดล้อมไว้ให้ใช้
ใช้ default editor / usr / bin / editor

เพิ่มในของคุณ~/.bashrc:

export EDITOR=vim

4

ทางเลือกที่ดีกว่าคือการตั้งค่าตัวแก้ไข (ไม่ใช่ผู้ใช้เพียงคนเดียว):

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

3
ทำไมจึงเป็นการดีกว่าที่จะเปลี่ยนการตั้งค่าสำหรับผู้ใช้รายอื่นที่ไม่ได้ถามถึงการเปลี่ยนแปลง
ceving

3
export EDITOR=vi && crontab -e 

ทำงานบนเดเบียนบีบ


2
คำอธิบายเล็ก ๆ น้อย ๆ จะไปไกล
ChrisF

3
ชุดนี้ตัวแปรสภาพแวดล้อม EDITOR และต่อมาแก้ไขไฟล์ crontab EDITOR=vim crontab -eจะทำงานได้ดี แต่เพียงครั้งเดียว
0x4a6f4672

3

น่าเสียดายที่ฉันไม่สามารถแสดงความคิดเห็นหรือลงคะแนน

ใน Ubuntu ไฟล์การกำหนดค่าจะถูกเรียก ~/.selected_editor

ด้วยคำสั่งต่อไปนี้คุณสามารถเลือกโปรแกรมแก้ไขเริ่มต้นอีกครั้ง:

$ select-editor

การลบไฟล์ในโฮมไดเร็กตอรี่ของคุณก็สามารถทำได้เช่นกัน

$ rm ~/.selected_editor

การตั้งค่าตัวแปรเท่านั้น$VISUALหรือ$EDITORจะใช้งานได้ แต่จะคงอยู่ก็ต่อเมื่อคุณเขียนลงในสคริปต์ที่เรียกใช้งานในสภาพแวดล้อมของคุณ

เพิ่มลงในไฟล์ rc ของคุณ

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

แต่ฉันจะไม่แนะนำให้ใช้ทางออกสุดท้าย


หากคุณไม่แนะนำทำไมคุณให้มัน
Ramhound

เพียงเพื่อความสำเร็จและเพราะคนอื่นอาจชอบวิธีนั้น
André

0

คุณควรลบ~/.sensible_editorไฟล์ออกแล้วจากนั้นการรันcrontab -eจะแจ้งให้คุณเลือกเครื่องมือแก้ไขที่ต้องการ
จากนั้นการตั้งค่าของคุณจะถูกจดจำใน~/.sensible_editorไฟล์


ไม่แน่ใจว่าทำไมสิ่งนี้ถึงลงคะแนนมันเป็นสิ่งที่ฉันต้องการและทำงานได้อย่างสมบูรณ์แบบ
ปล้น

emacsclientอูบุนตูดูเหมือนจะไม่ทราบ
ceving

-1

สำหรับ Debian ให้ใช้:

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        

เลือก '2' และกด Enter เข้าใจแล้ว!


ยินดีต้อนรับสู่ Super User! โปรดอ่านคำถามอีกครั้งอย่างระมัดระวัง คำตอบของคุณไม่ตอบคำถามเดิม OP ได้ลองทำสิ่งนี้ (อยู่ในคำถาม) และไม่สามารถแก้ไขปัญหาของเขาได้
DavidPostill

-1

ที่ง่ายที่สุดคือการกำจัดผลิตภัณฑ์ที่คุณไม่ต้องการอย่างครบถ้วน การเปลี่ยนแปลงการกำหนดค่าอื่น ๆ ทั้งหมดจะเป็นไปโดยอัตโนมัติ

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


-1

บนเครื่องรุ่นเก่าเช่น Debian บางเครื่องก็ใช้งานได้ดีและเป็นโซลูชั่นแบบพกพามากที่สุด

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

ไม่ไม่ยุ่งกับอะไร/usr/binด้วยตนเอง ตำแหน่งเหล่านี้ได้รับการจัดการโดยdpkgและไม่ควรจัดการโดยตรง
tripleee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.