นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน
อ่าน: 2066
ความเห็น: 3

จะเปลี่ยน default editor ของ Linux ยังไง?

ชอบ vi ไม่ชอบ nano แล้วไง?

คุณป้อมเล่าว่า มีปัญหากับการ edit file เมื่อต้องเรียกใช้ผ่านคำสั่งอื่นๆ ที่ไม่ได้เรียกใช้ตัว editor โดยตรง ตัว editor ที่ระบบเลือกให้ใช้คือ nano ทั้งๆที่ไม่ชอบ editor ตัวนี้

คำสั่งที่ทำให้ต้องไปเรียกใช้ editor มา edit ไฟล์มีอยู่หลายคำสั่ง ที่ผมนึกออกตอนนี้มีอยู่สองคำสั่งคือ crontab -e กับ visudo

ทั้งสองคำสั่ง นอกเหนือจะไป edit ไฟล์สำหรับงานนั้นๆแล้ว ยังมีส่วนของการตรวจสอบ syntax สิ่งที่ edit ไปด้วยว่าถูกต้องหรือเปล่า ซึ่งทำให้ในหลายกรณี การเรียกใช้คำสั่งเหล่านี้จะดีกว่าไป edit ไฟล์ที่เกี่ยวข้องกับ งาน นั้นๆโดยตรง

ปัญหาที่เกิดขึ้นสำหรับ Linux อย่างน้อยในตระกูลของ debian เช่น debian และ ubuntu ก็คือ default editor ที่กำหนดไว้จะเป็น nano ถึงแม้ว่าจะมี editor ตังอื่นที่น่าใช้กว่า เช่น vi (หรือ vim -- คุณป้อมบอกว่าน่าใช้กว่า nano ซึ่งผมก็เห็นด้วย, แต่อาจจะมีคนไม่เห็นด้วยเยอะกว่าก็เป็นได้), emacs หรือ gedit ถ้าหากว่า การ edit ขณะนั้นอยู่บน X-Windows

วิธีการแก้อย่างง่ายๆก็มี คือกำหนดค่า enviroment EDITOR ให้เป็นตัว editor ที่ต้องการใช้ซะ อย่างเช่น

$ EDITOR=/usr/bin/gedit crontab -e

ก็จะใช้ gedit เป็นตัว edit crontab ไฟล์ของตัวเอง

ซึ่งถ้ารู้สึกขี้เกียจที่จะต้องพิมพ์ "EDITOR=...." ก่อนเรียกใช้คำสั่งทุกครั้ง ก็สามารถไปกำหนดค่า environment ตัวนี้ไว้ในไฟล์ .bashrc (หรือ rc file อื่นถ้าใช้ shell ตังอื่นๆที่ไม่ใช่ bash) โดยอาจจะเพิ่มคำสั่งเข้าไปในไฟล์ดังนี้

export EDITOR=/usr/bin/emacs

ซึ่งจะเปลี่ยน default editor ของเราไปใช้ emacs และไม่ต้องมากำหนดค่า EDITOR ใหม่ทุกครั้ง

ทีนี้ถ้าจะให้ทุกคนที่ใช้เครื่องเดียวกันนี้ มี default editor ตัวเดียวกันโดยที่ user แต่ละคนไม่ต้องมาแก้ไขเพิ่มเข้าไปใน .bashrc ของตนเอง ก็สามารถไปเพิ่มไว้ใน .bashrc ของระบบได้ที่ไฟล์ /etc/bash.bashrc

ผมใช้วิธีการนี้มาตลอด และไม่เคยถามตัวเองว่าจะมีวิธีการอื่นๆอีกหรือเปล่า จนกระทั่งได้ e-mail จากคุณป้อมล่าสุดว่า ไม่เจอว่ามีการกำหนดไว้ใน /etc/bash.bashrc ที่ใหนให้ nano เป็น default editor แล้วเจ้า nano นี่ได้รับการยกระดับเป็น default editor ได้ไง

:) เป็นคำถามที่น่าสนใจมากครับ เพราะไม่เคยถามตัวเองมาก่อนเหมือนกัน เลยลองไปควานหาดู ปรากฏว่าเจอ

 /etc/alternatives/editor เป็น symbolic link file ชี้ไปที่ /bin/nano

เลยได้คำตอบเพิ่มขึ้นมาอีก 1 ข้อว่าเราจะเปลี่ยนค่า default editor ของระบบได้อย่างไร

ขอบคุณคุณป้อมสำหรับคำถามครับ :) 

หมวดหมู่บันทึก: เรื่องทั่วไป
คำสำคัญ (keywords): editor  linux  nano  vi
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ Copyright
สร้าง: 05 มิถุนายน 2551 01:30 แก้ไข: 08 มิถุนายน 2551 10:14 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

กำลังอยากได้เลยนิ ขอบคุณมากครับ
Ico48
Sdayu [IP: 119.42.84.75]
29 พฤษภาคม 2552 21:53
#44569
ผมก็งงอยู่นานเหมือนกันครับ ว่าจะแก้อย่างไร ก็ทำตามที่อาจารย์บอกคือเพิ่ม export ไว้ที่ .bashrc แต่วันนี้อ่านที่อาจารย์เขียนไว้ดี เจอคำว่า alternative เลยฉุกคิดขึ้นมาได้ว่า สำหรับ Debian/Ubuntu สามารถใช้คำสั่ง #update-alternatives --config editor ซึ่งทดลองดูก็สามารถใช้ได้มันจะแสดงรายการของ alternative ที่มีอยู่ทั้งหมดมาให้ดู ซึ่งในกรณีนี้คือ editor ที่มี alternative ซึ่งจะใช้ในหลายกรณีเช่น java, mpich แต่รู้สึกว่าจะใช้ได้เฉพาะ root ครับ ทำไมผมไม่คิดจะใช้กับ Editor เนี่ย ไม่มั่นใจกับ Linux distribution  อื่นครับ

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 18.210.24.208
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ