การคอนฟิกลีนุกซ์โดยใช้บางคำสั่งเช่น crontab, visudo จะมีการเรียก editor ขึ้นมาเพื่อแก้ไขไฟล์คอนฟิก ซึ่งขึ้นอยู่กับเวอร์ชันลีนุกซ์ที่ใช้ว่าจะตั้ง editor ตัวไหนเป็นดีฟอลต์ เช่น Ubuntu 18.04 จะตั้ง nano เป็นดีฟอลต์
มาดูกันว่าถ้าเราต้องการเปลี่ยนดีฟอลต์ editor ให้เป็นตัวอื่น เช่น vim จะสามารถเปลี่ยนได้อย่างไร
ตัวอย่างการรันคำสั่ง crontab -e ครั้งแรก จะมีการถามให้เลือกใช้ editor เพื่อแก้ไข crontab
alice@u1804:~$ crontab -e
no crontab for alice - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]: 2
เช่นถ้าเราเลือกเป็น vim.basic (vim ดีฟอลต์) ก็พิมพ์เลข 2 แล้วกด [enter] เราก็สามารถใช้ vim เพื่อแก้ไข crontab ได้
การตั้งค่า editor แบบนี้จะเป็นของแต่ละผู้ใช้ (user) เอง ซึ่งผู้ใช้สามารถแก้ไขภายหลังได้โดยใช้คำสั่ง select-editor โดยคำสั่งนี้จะสร้างไฟล์คอนฟิกใน home ของผู้ใช้
alice@u1804:~$ cat .selected_editor
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
แต่บางคำสั่งไม่ได้ดูค่าคอนฟิกที่ตั้งไว้โดย select-editor เช่นการใช้ sudo visudo
alice@u1804:~$ sudo visudo
จะไปเรียกคำสั่ง nano เพื่อแก้ไขคอนฟิก visudo
ถ้าเราต้องการแก้ไข editor ที่ใช้แก้ไขคอนฟิก visudo ต้องใช้วิธีการอื่น
วิธีการหนึ่งที่ทำได้คือ ใช้คำสั่ง update-alternatives คอนฟิกค่าดีฟอลต์ editor ของระบบ ซึ่งจะมีผลทั้งระบบ หรือทุกผู้ใช้งานที่อยู่ในระบบเลย
ใช้ sudo รันคำสั่ง update-alternatives ระบุคอนฟิก –config editor
alice@u1804:~$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
alice@u1804:~$
พิมพ์เลข 3 แล้วกด [enter] เพื่อตั้งค่า editor ดีฟอลต์เป็น vim.basic
ทดลองรันคำสั่ง sudo visudo อีกครั้ง จะเรียก vim ขึ้นมาแก้ไข
alice@u1804:~$ sudo visudo
ถ้าทดลองลบไฟล์ .selected_editor แล้วลองรัน crontab -e อีกครั้ง
alice@u1804:~$ rm -f .selected_editor alice@u1804:~$ crontab -e
หน้าจอจะขึ้น vim เพื่อให้แก้ไข crontab ของผู้ใช้งาน