จะระบุตัวแก้ไขเพื่อเปิดไฟล์ crontab ได้อย่างไร? “ export EDITOR = vi” ไม่ทำงาน


103

ฉันใช้ Red Hat Enterprise Linux 5 และฉันต้องการตั้งค่า vim editor เพื่อแก้ไขไฟล์ crontab

ถ้าฉันวิ่งecho $EDITORฉันจะเป็นกลุ่ม แต่เมื่อฉันเรียกใช้ crontab -eฉันได้รับตัวแก้ไขที่แตกต่างกัน

คำตอบ:


170

เป็นไปได้มากที่VISUALตัวแปรสภาพแวดล้อมของคุณถูกตั้งค่าเป็นอย่างอื่น ลอง:

export VISUAL=vi

6
การตั้งค่าตัวแปรexport VISUAL=vim( setenv VISUAL "vim"สำหรับ tcsh เชลล์) มันใช้งานได้ดี !!
antonjs

9
@ lwpro2: หากVISUALไม่ได้ตั้งค่าEDITORตัวแปรจะถูกใช้ แต่มีความสำคัญมากกว่าVISUAL EDITOR
bmk

หาก crontab ได้รับการจัดการโดยบุคคลหลายคนด้วยผู้ใช้คนเดียวฉันขอแนะนำให้ทำสิ่งนี้ใน subshell เพื่อให้ตัวแก้ไขเริ่มต้นอยู่ในตำแหน่ง
Thomas Böhm

มีความคิดว่าทำไมไฟล์ถึงแตกต่างกันเมื่อเปิดใน vi แทนที่จะเป็นนาโน
dardub

76

อ้างผู้ชาย:

อ็อพชัน -e ใช้เพื่อแก้ไข crontab ปัจจุบันโดยใช้เอดิเตอร์ที่ระบุโดยตัวแปรสภาพแวดล้อม VISUAL หรือ EDITOR

บ่อยที่สุดถ้าคุณเรียกใช้crontab -eจาก X คุณได้VISUALตั้งค่า; นั่นคือสิ่งที่ใช้ ลองสิ่งนี้:

VISUAL=vi crontab -e

มันใช้ได้ผลสำหรับฉัน :)


ขอบคุณสำหรับคำอธิบายอันที่จริงฉันกำลังเรียกใช้เทอร์มินัลของฉันจาก X.
antonjs

1
ตัวเลือกที่ดีที่สุดหากคุณใช้ crontab -e ด้วย sudo :)sudo VISUAL=vi crontab -e
MediaVince

42

หากวิธีการข้างต้นไม่ได้ผล (เนื่องจากไม่ได้ผลกับการติดตั้ง Ubuntu 13.04 ของฉัน) ให้ลอง:

มีทางเลือกหลายวิธี:

1) เรียกใช้ตัวเลือกตัวแก้ไข

select-editor

2) แก้ไขไฟล์ด้วยตนเอง: ~/.selected_editorระบุตัวแก้ไขที่คุณต้องการ ด้วยตัวเลือกนี้คุณสามารถระบุพารามิเตอร์ตัวแก้ไข

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

3) คุณสามารถระบุได้ทันทีบนบรรทัดคำสั่งด้วย:

env VISUAL="emacs -nw" crontab -e

1
ฉันตั้งค่าตัวแก้ไขเริ่มต้นโดยไม่ได้ตั้งใจnanoเมื่อเปิด crontab ครั้งแรก จากนั้นฉันต้องใช้sudo select-editorเพื่อให้มันทำงาน เคล็ดลับหากselect-editorไม่ได้ผล
244 น.

2
คุณไม่ควรใช้ "sudo" สำหรับการกำหนดค่าส่วนบุคคลของคุณ อาจทำลายสิ่งต่างๆที่บังคับให้คุณต้องอยู่ในระดับสูงสำหรับการใช้งานคอมพิวเตอร์ตามปกติ sudo (คำสั่งที่ยกระดับ) ใช้สำหรับการทำงานกับคุณสมบัติทั้งระบบนอกพื้นที่ส่วนบุคคลของคุณ (~ พื้นที่ผู้ใช้)
LD James

5

ฉันคิดว่าคุณอาจต้องใช้เส้นทางแบบเต็ม:

export EDITOR=/usr/bin/vim

3
กับดักVISUALคือการตรวจสอบก่อน ดังนั้นคำแนะนำที่สมบูรณ์แบบเช่นของคุณจึงใช้ได้ดีกับเซสชัน SSH และล้มเหลวอย่างลึกลับบนกล่องเดสก์ท็อป
9000

ฉันพยายามส่งออกขณะกำหนดตามที่อธิบายไว้ แต่ไม่ได้ผล โดยการกำหนดก่อนแล้วจึงส่งออกมันใช้งานได้สำหรับฉันเช่นนี้: EDITOR = / usr / bin / vi; ส่งออก EDITOR ใช้ SunOS ภายใต้ SSH ที่นี่
Alan

5

คุณสามารถใช้คำสั่งด้านล่างเพื่อเปิดในโปรแกรมแก้ไข VIM

export VISUAL=vim; crontab -e

หมายเหตุ: โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้งตัวแก้ไข VIM บนเซิร์ฟเวอร์ของคุณแล้ว



2

มันไม่ได้ผลสำหรับฉัน ฉันเรียกใช้ crontab ด้วย sudo ดังนั้นฉันจึงเปลี่ยนไปใช้ root ทำตามคำแนะนำข้างต้นและ crontab จะเปิดเป็นกลุ่ม แต่ก็ยังไม่ได้จากบัญชีผู้ใช้ของฉัน ในที่สุดฉันก็sudo select-editorออกจากบัญชีผู้ใช้และนั่นก็เป็นเคล็ดลับ


1
หากคุณต้องเรียกใช้ sudo เพื่อกำหนดค่าสภาพแวดล้อมผู้ใช้ของคุณนั่นแสดงถึงปัญหาที่คุณควรแก้ไข คุณใช้งาน sudo ในพื้นที่ส่วนตัวและสูญเสียสิทธิ์ในการเข้าถึงไฟล์ที่คุณควรเป็นเจ้าของ find ~/ -mount ! -user $(whoami)คุณสามารถตรวจสอบพื้นที่ของคุณโดยใช้: sudo chown -R $(whoami):$(whoami) ~/คุณสามารถแก้ไขปัญหาโดยการเรียกใช้:
LD James

@LDJames คุณพูดถูกขอบคุณ ปรากฎว่ามันเป็นแค่ไฟล์. select_editor ที่รูทเป็นเจ้าของ
felwithe

2

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

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

เพิ่มสิ่งนี้ใน ~ / .bash_profile หรือ ~ / .bashrc เพื่อเปิดใช้งานสำหรับผู้ใช้ปัจจุบัน

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