บทความนี้ไม่มีจาก |
บทความนี้หรือส่วนนี้ของบทความต้องการปรับรูปแบบ ซึ่งอาจหมายถึง ต้องการจัดรูปแบบข้อความ จัดหน้า แบ่งหัวข้อ และ/หรือการจัดระเบียบอื่น ๆ คุณสามารถช่วยแก้ไขปัญหานี้ได้โดยการกดที่ปุ่ม แก้ไข ด้านบน จากนั้นปรับปรุงหรือจัดรูปแบบอื่น ๆ ในบทความให้เหมาะสม |
อีแม็คส์ (อังกฤษ: Emacs) เป็นโปรแกรมคอมพิวเตอร์ที่ใช้แก้ไขข้อความ มีความสามารถหลากหลายเป็นที่นิยมในหมู่นักเขียนโปรแกรมคอมพิวเตอร์
นักพัฒนา | โครงการกนู |
---|---|
ระบบปฏิบัติการ | หลายระบบปฏิบัติการ |
ประเภท | |
สัญญาอนุญาต | GPL |
เว็บไซต์ | www.gnu.org/software/emacs/ |
เดิม Emacs ย่อมาจาก Editor MACroS เป็นการรวบรวมมาโครที่พัฒนาโดย ริชาร์ด สตอลแมน สำหรับโปรแกรมแก้ไขข้อความที่ชื่อ TECO เมื่อปี พ.ศ. 2518 Guy Steele ได้รวบรวมมาโครเหล่านั้นออกมาเป็นซอฟต์แวร์อีแม็คส์ ต่อมาอีแม็คส์ก็กลายเป็นโปรแกรมแก้ไขข้อความเต็มตัว และมีอยู่ด้วยกันหลายรุ่น แต่อีแม็คส์สองแบบที่ได้รับความนิยมในปัจจุบันคือ GNU Emacs ซึ่งเริ่มโดย Richard Stallman เมื่อปี พ.ศ. 2527 และ ซึ่งแยกออกมาจาก GNU Emacs เมื่อปี พ.ศ. 2534
คุณสมบัติ
แพลตฟอร์ม
อีแม็คส์สามารถทำงานได้บนระบบปฏิบัติการยูนิกซ์เกือบทุกระบบ (GNU, Linux, BSD, Solaris, AIX, IRIX, Max OS X), MS-DOS, Microsoft Windows, และ OpenVMS นอกจากนี้อีแม็คส์ยังสามารถทำงานได้ทั้งบน terminal และ graphical user interface (GUI)
โหมดในการแก้ไขข้อมูล
อีแม็คส์จะเปลี่ยนพฤติกรรมการทำงานไปตามชนิดของข้อมูลที่กำลังถูกแก้ไข เรียกว่าโหมดการทำงานหลัก (major mode) ตัวอย่างของโหมดการทำงานหลักได้แก่ โหมดปกติสำหรับตัวหนังสือ, โหมดสำหรับภาษาโปรแกรมแบบต่างๆ, โหมดสำหรับเอกสาร HTML พฤติกรรมที่ต่างๆ กันเช่น syntax highlighting รวมทั้งคำสั่งพิเศษที่จะช่วยในการแก้ไขเฉพาะสำหรับโหมดนั้นๆ
นอกจากนี้ ในขณะใดขณะหนึ่งไฟล์ที่ถูกแก้ไขจะใช้โหมดการทำงานหลักได้เพียงโหมดเดียว แต่พฤติกรรมการทำงานยังสามารถถูกปรับแต่งเพิ่มเติมโดยใช้โหมดย่อย (minor mode) ได้หลายๆ โหมดพร้อมกัน ยกตัวอย่างเช่น โหมดหลักสำหรับภาษาซีสามารถเลือกใช้โหมดย่อยที่จัดย่อหน้าแบบต่างๆ กันไป
การปรับแต่ง
ผู้ใช้จำนวนมากได้ทำการปรับแต่งอีแม็คส์ เพื่อให้เหมาะกับการใช้งานตามวัตถุประสงค์ที่แตกต่างกันไป การปรับแต่งโดยทั่วไปสามารถแบ่งได้สามวิธี วิธีการแรกโดยเปลี่ยนค่าตัวแปรที่จัดไว้ให้เฉพาะเพื่อการปรับแต่งการทำงาน เช่นเพื่อเปลี่ยนสีของพื้นหลังและตัวหนังสือ วิธีการนี้เหมาะสำหรับผู้ใช้มือใหม่และผู้ใช้ที่ไม่ต้องการแก้ไขโค้ดภาษาลิสป์
วิธีการที่สอง โดยการบันทึกและรันแมโครสำหรับงานที่ซับซ้อนและต้องทำซ้ำๆ กัน โดยส่วนใหญ่แมโครที่บันทึกไว้จะถูกใช้ทันนีและทิ้งไปเมื่อออกจากโปรแกรมแม้ว่าจะสามารถบันทึกไว้เพื่อเรียกใช้งานทีหลังได้เช่นกัน
การปรับแต่งวิธีสาม คือการเขียนโปรแกรมภาษาลิสป์ ซึ่งโดยทั่วไปจะถูกเขียนไว้ในไฟล์สำหรับตั้งค่าเริ่มต้นชื่อ .emacs ซึ่งจะถูกเรียกขึ้นมาทำงานในระหว่างเริ่มการทำงาน โดยมากไฟล์นี้ถูกใช้เพื่อกำหนดตัวแปรเริ่มต้นและโยงคำสั่งกับคีย์บอร์ดที่แตกต่างจากค่ามาตรฐาน กับเพื่อสร้างคำสั่งใหม่เพื่อเพิ่มความสะดวกในการทำงาน ผู้ใช้บางท่านมีไฟล์ .emacs ที่มีความยาวหลายร้อยบรรทัดและทำให้อีแม็คส์ทำงานต่างไปอย่างมาก
นอกจากนี้ถ้าโค้ดภาษาลิสป์สามารถถูกใช้ประโยชน์ได้ในวงกว้าง มันจะถูกทำให้เป็นไลบรารีและแจกจ่ายให้ผู้ใช้อื่นๆ ไลบรารีหลายตัวสามารถหาได้จากอินเทอร์เน็ต เช่น wikipedia-mode สำหรับแก้ไขบทความวิกิพีเดีย ไลบรารีบางตัวได้กลายเป็นไลบรารีมาตรฐานของอีแม็คส์ในที่สุด
การใช้งาน
ผู้ใช้สามารถเริ่มต้นใช้งานจากเชลล์ยูนิกซ์ได้โดยการพิมพ์ "emacs [ชื่อไฟล์]" เพื่อทำการแก้ไขไฟล์ตามชื่อ ถ้าไม่มีไฟล์ตามที่พิมพ์อีแม็คส์จะสร้างบัฟเฟอร์ใหม่มีชื่อตามที่ชื่อไฟล์ อย่างไรก็ตาม การใช้งานอีแม็คส์ให้ได้ประโยชน์สูงสุดควรแก้ไขหลายๆ ไฟล์จากอีแม็คส์ตัวเดียว ไม่ควรแยกการแก้ไขไฟล์เพียงไฟล์เดียวต่อหนึ่งอีแม็คส์
ในโหมดการใช้งานตามปกติผู้ใช้พิมพ์ตัวหนังสือและแก้ไขเหมือนโปรแกรมแก้ไขข้อความโดยทั่วไป ผู้ใช้จะเรียกคำสั่งต่างๆ โดยการกดปุ่ม Ctrl และ/หรือ Meta/Alt ร่วมกับปุ่มอื่นๆ ที่จริงแล้วการพิมพ์เพียงง่ายๆ เช่นการพิมพ์ตัวหนังสือหนึ่งตัวก็เป็นการเรียกคำสั่งที่มีชื่อว่า self-insert-command
คำสั่งเบื้องต้น
ต่อไปนี้คือคำสั่งเบื้องตนเพียงบางส่วน ตัว C คือปุ่ม Ctrl ตัว M คือปุ่ม Meta หรือ Alt
คำสั่ง | เคาะแป้นพิมพ์ | อธิบาย |
---|---|---|
forward-word | M-f | เลื่อนไปข้างหน้าหนึ่งคำ |
search-word | C-s | ค้นหาคำ |
undo | C-/ | ยกเลิกข้อความที่พิมพ์ล่าสุด |
keyboard-quit | C-g | ยกเลิกคำสั่งที่กำลังพิมพ์อยู่ |
find-file | C-x C-f | เปิดไฟล์เพื่อแก้ไข |
save-buffer | C-x C-s | บันทึกบัฟเฟอร์ |
save-with-newname | C-x C-w | บันทึกบัฟเฟอร์ในไฟล์ใหม่ |
save-buffers-kill-emacs | C-x C-c | บันทึกบัฟเฟอร์และออกจากอีแม็คส์ |
set-marker | C-[space] หรือ C-@ | ทำเครื่องหมายที่ตำแหน่งปัจจุบัน |
cut | C-w | ตัด เริ่มต้นจากเครื่องหมายที่ทำไว้ถึงตำแหน่งปัจจุบัน |
copy | M-w | คัดลอก เริ่มต้นจากเครื่องหมายที่ทำไว้ถึงตำแหน่งปัจจุบัน |
paste | C-y | แปะข้อความจากคลิปบอร์ด |
kill buffer | C-x k | ปิดบัฟเฟอร์ปัจจุบัน |
คำสั่ง save-buffer ใช้การกดคำสั่งหลายครั้งร่วมกันเช่น C-x C-s คือการกดปุ่มตัวเอ็กซ์ในขณะที่กดคอนโทรลค้างไว้ จากนั้นกดปุ่มตัวเอสในขณะที่กดคอนโทรลค้างไว้ วิธีนี้แม้จะดูเหมือนยุ่งยากเมื่อเริ่มเรียนรู้แต่ก็ทำให้อีแม็คส์สามารถมีคำสั่งจากคีย์บอร์ดได้มากมายไม่ถูกจำกัดโดยจำนวนปุ่มบนแป้นพิมพ์
ผู้ใช้สามารถเรียกคำสั่งบางคำสั่งจากเมนูได้เมื่ออยู่ในกราฟิกโหมด อย่างไรก็ตาม ผู้ใช้ที่มีประสบการณ์ชอบที่จะใช้การเรียกคำสั่งจากแป้นพิมพ์เพราะเมื่อจำคำสั่งได้แล้วจะทำได้เร็วกว่า
แหล่งข้อมูลอื่น
- เว็บเพจ Emacs ของโครงการกนู
- EmacsWiki - แหล่งรวมข้อมูลโดยผู้ใช้ Emacs
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
bthkhwamniimmikarxangxingcakaehlngthimaidkrunachwyprbprungbthkhwamni odyephimkarxangxingaehlngthimathinaechuxthux enuxkhwamthiimmiaehlngthimaxacthukkhdkhanhruxlbxxk eriynruwacanasaraemaebbnixxkidxyangiraelaemuxir bthkhwamnihruxswnnikhxngbthkhwamtxngkarprbrupaebb sungxachmaythung txngkarcdrupaebbkhxkhwam cdhna aebnghwkhx cdlingkphayin aela hruxkarcdraebiybxun khunsamarthchwyaekikhpyhaniidodykarkdthipum aekikh danbn caknnprbprunghruxcdrupaebbxun inbthkhwamihehmaasm xiaemkhs xngkvs Emacs epnopraekrmkhxmphiwetxrthiichaekikhkhxkhwam mikhwamsamarthhlakhlayepnthiniyminhmunkekhiynopraekrmkhxmphiwetxrEmacsnkphthnaokhrngkarknurabbptibtikarhlayrabbptibtikarpraephthsyyaxnuyatGPLewbistwww gnu org software emacs edim Emacs yxmacak Editor MACroS epnkarrwbrwmmaokhrthiphthnaody richard stxlaemn sahrbopraekrmaekikhkhxkhwamthichux TECO emuxpi ph s 2518 Guy Steele idrwbrwmmaokhrehlannxxkmaepnsxftaewrxiaemkhs txmaxiaemkhskklayepnopraekrmaekikhkhxkhwametmtw aelamixyudwyknhlayrun aetxiaemkhssxngaebbthiidrbkhwamniyminpccubnkhux GNU Emacs sungerimody Richard Stallman emuxpi ph s 2527 aela sungaeykxxkmacak GNU Emacs emuxpi ph s 2534khunsmbtiaephltfxrm xiaemkhssamarththanganidbnrabbptibtikaryuniksekuxbthukrabb GNU Linux BSD Solaris AIX IRIX Max OS X MS DOS Microsoft Windows aela OpenVMS nxkcaknixiaemkhsyngsamarththanganidthngbn terminal aela graphical user interface GUI ohmdinkaraekikhkhxmul xiaemkhscaepliynphvtikrrmkarthanganiptamchnidkhxngkhxmulthikalngthukaekikh eriykwaohmdkarthanganhlk major mode twxyangkhxngohmdkarthanganhlkidaek ohmdpktisahrbtwhnngsux ohmdsahrbphasaopraekrmaebbtang ohmdsahrbexksar HTML phvtikrrmthitang knechn syntax highlighting rwmthngkhasngphiessthicachwyinkaraekikhechphaasahrbohmdnn nxkcakni inkhnaidkhnahnungiflthithukaekikhcaichohmdkarthanganhlkidephiyngohmdediyw aetphvtikrrmkarthanganyngsamarththukprbaetngephimetimodyichohmdyxy minor mode idhlay ohmdphrxmkn yktwxyangechn ohmdhlksahrbphasasisamartheluxkichohmdyxythicdyxhnaaebbtang knip karprbaetng phuichcanwnmakidthakarprbaetngxiaemkhs ephuxihehmaakbkarichngantamwtthuprasngkhthiaetktangknip karprbaetngodythwipsamarthaebngidsamwithi withikaraerkodyepliynkhatwaeprthicdiwihechphaaephuxkarprbaetngkarthangan echnephuxepliynsikhxngphunhlngaelatwhnngsux withikarniehmaasahrbphuichmuxihmaelaphuichthiimtxngkaraekikhokhdphasalisp withikarthisxng odykarbnthukaelarnaemokhrsahrbnganthisbsxnaelatxngthasa kn odyswnihyaemokhrthibnthukiwcathukichthnniaelathingipemuxxxkcakopraekrmaemwacasamarthbnthukiwephuxeriykichnganthihlngidechnkn karprbaetngwithisam khuxkarekhiynopraekrmphasalisp sungodythwipcathukekhiyniwiniflsahrbtngkhaerimtnchux emacs sungcathukeriykkhunmathanganinrahwangerimkarthangan odymakiflnithukichephuxkahndtwaeprerimtnaelaoyngkhasngkbkhiybxrdthiaetktangcakkhamatrthan kbephuxsrangkhasngihmephuxephimkhwamsadwkinkarthangan phuichbangthanmiifl emacs thimikhwamyawhlayrxybrrthdaelathaihxiaemkhsthangantangipxyangmak nxkcaknithaokhdphasalispsamarththukichpraoychnidinwngkwang mncathukthaihepnilbrariaelaaeckcayihphuichxun ilbrarihlaytwsamarthhaidcakxinethxrent echn wikipedia mode sahrbaekikhbthkhwamwikiphiediy ilbraribangtwidklayepnilbrarimatrthankhxngxiaemkhsinthisudkarichnganphuichsamartherimtnichngancakechllyuniksidodykarphimph emacs chuxifl ephuxthakaraekikhifltamchux thaimmiifltamthiphimphxiaemkhscasrangbfefxrihmmichuxtamthichuxifl xyangirktam karichnganxiaemkhsihidpraoychnsungsudkhwraekikhhlay iflcakxiaemkhstwediyw imkhwraeykkaraekikhiflephiyngiflediywtxhnungxiaemkhs inohmdkarichngantampktiphuichphimphtwhnngsuxaelaaekikhehmuxnopraekrmaekikhkhxkhwamodythwip phuichcaeriykkhasngtang odykarkdpum Ctrl aela hrux Meta Alt rwmkbpumxun thicringaelwkarphimphephiyngngay echnkarphimphtwhnngsuxhnungtwkepnkareriykkhasngthimichuxwa self insert command khasngebuxngtn txipnikhuxkhasngebuxngtnephiyngbangswn tw C khuxpum Ctrl tw M khuxpum Meta hrux Alt khasng ekhaaaepnphimph xthibayforward word M f eluxnipkhanghnahnungkhasearch word C s khnhakhaundo C ykelikkhxkhwamthiphimphlasudkeyboard quit C g ykelikkhasngthikalngphimphxyufind file C x C f epidiflephuxaekikhsave buffer C x C s bnthukbfefxrsave with newname C x C w bnthukbfefxriniflihmsave buffers kill emacs C x C c bnthukbfefxraelaxxkcakxiaemkhsset marker C space hrux C thaekhruxnghmaythitaaehnngpccubncut C w td erimtncakekhruxnghmaythithaiwthungtaaehnngpccubncopy M w khdlxk erimtncakekhruxnghmaythithaiwthungtaaehnngpccubnpaste C y aepakhxkhwamcakkhlipbxrdkill buffer C x k pidbfefxrpccubn khasng save buffer ichkarkdkhasnghlaykhrngrwmknechn C x C s khuxkarkdpumtwexksinkhnathikdkhxnothrlkhangiw caknnkdpumtwexsinkhnathikdkhxnothrlkhangiw withiniaemcaduehmuxnyungyakemuxerimeriynruaetkthaihxiaemkhssamarthmikhasngcakkhiybxrdidmakmayimthukcakdodycanwnpumbnaepnphimph phuichsamartheriykkhasngbangkhasngcakemnuidemuxxyuinkrafikohmd xyangirktam phuichthimiprasbkarnchxbthicaichkareriykkhasngcakaepnphimphephraaemuxcakhasngidaelwcathaiderwkwaaehlngkhxmulxunewbephc Emacs khxngokhrngkarknu EmacsWiki aehlngrwmkhxmulodyphuich Emacs