บทความนี้ไม่มีจาก |
Vim หรือ วิม ย่อมาจาก Vi IMproved เป็นซอฟต์แวร์เสรี สำหรับสำหรับแก้ไขไฟล์ มีรากฐานการพัฒนามาจากโปรแกรม vi ที่มีอยู่เดิม สามารถทำงานบนระบบปฏิบัติการหลายๆ ตัว Vim ถูกพัฒนาโดย แบรม มูลีนาร์ (Bram Moolenaar) ออกเผยแพร่เป็นครั้งแรกในปี พ.ศ. 2534 นับตั้งแต่นั้นมามีการเพิ่มเติมขีดความสามารถให้กับ Vim ความสามารถหลายอย่างออกแบบมาให้เป็นประโยชน์ในการแก้ไขซอร์สโค้ดโปรแกรม Vim ถูกออกแบบสำหรับทั้ง และ graphical user interface
นักพัฒนา | แบรม มูลีนาร์ และคนอื่น ๆ |
---|---|
รุ่นเสถียร | 7.4 / 10 สิงหาคม พ.ศ. 2556 |
ที่เก็บข้อมูล |
|
ระบบปฏิบัติการ | ลีนุกซ์, แมคโอเอสเท็น, ยูนิกซ์, ไมโครซอฟท์วินโดวส์ |
ประเภท | |
สัญญาอนุญาต | ให้ผู้ใช้บริจาคเพื่อสาธารณะกุศล |
เว็บไซต์ | http://www.vim.org |
โดยดังเดิม Vim ทำงานบนระบบปฏิบัติการ เท่านั้น จนกระทั่งมีการพัฒนา สนับสนุนการทำงานบนระบบปฏิบัติการหลายๆ ตัว ในปี พ.ศ. 2549 Vim เคยถูกโหวตให้เป็นหมวดหมู่เอดิเตอร์ยอดนิยมในนิตรยสาร
เรียนรู้การใช้ Vim
Vim ถือเป็นโปรแกรมที่เรียนรู้ยากตัวหนึ่ง แต่ถ้าผู้ใช้จับหลักการพื้นฐานได้ ก็สามารถใช้งานได้คล่องตัวขึ้นมาก เพื่อช่วยให้เรียนรู้เร็วขึ้น จึงมีโปรแกรมสอนวิธีใช้ Vim โดยการพิมพ์คำสั่ง vimtutor
บนบรรทัดคำสั่งในยูนิกซ์ หรือคลิกบนไอคอน Vim tutor บนวินโดวส์ นอกจากนี้ภายใน Vim เองก็มีคู่มือการใช้งานโดยละเอียดซึ่งปรากฏบนจอโดยการพิมพ์คำสั่ง :help user-manual
ภายใน Vim
ผู้ใช้ยังสามารถอ่าน ระบบขอความช่วยเหลือ โดยการพิมพ์คำสั่ง :help
โหมดการแก้ไข
วิธีการติดต่อกับผู้ใช้ใน Vim มีหลายโหมดการทำงาน การกดปุ่มบนแป้นพิมพ์จะให้ผลลัพธ์แตกต่างกันขึ้นอยู่กับโหมดการทำงานในปัจจุบัน ผู้ใช้สามารถเปลี่ยนไปมาระหว่างโหมดโดยให้แป้นพิมพ์ เหมาะกับผู้ที่สามารถได้ ไม่เหมือนกับเอดิเตอร์หลายตัวที่ต้องใช้เมาส์หรือเลือกคำสั่งในเมนูในการใช้งาน
Vim มีโหมดพื้นฐานอยู่ 6 โหมด และแยกย่อยจากโหมดพื้นฐานได้อีก 5 โหมด
โหมด normal
โหมด normal เป็นโหมดที่สามารถพิมพ์คำสั่งต่าง ๆ เช่นเพื่อเคลื่อนย้ายเคอร์เซอร์ ลบข้อความ เป็นต้น เวลาเริ่มต้นโปรแกรม Vim จะเข้ามาอยู่ในโหมดนี้
Vim เป็นโปรแกรมที่ใช้งานได้มีประสิทธิผลก็มาจากคำสั่งที่หลากหลายในโหมดนี้ ตัวอย่างเช่น ถ้าต้องการลบทั้งบรรทัดที่ตำแหน่งเคอร์เซอร์ ก็ใช้คำสั่ง dd
ถ้าต้องการลบทั้งบรรทัดปัจจุบันและบรรทัดถัดไป ก็ใช้คำสั่ง dj
โดยที่ d
หมายถึงลบ ส่วน j
เป็นปุ่มที่ใช้ในการเลื่อนเคอร์เซอร์ลง แทนที่จะใช้คำสั่ง dj
ยังสามารถใช้คำสั่ง 2dd
(หมายถึงทำคำสั่ง dd
สองครั้ง) ก็ได้ เมื่อผู้ใช้เรียนรู้คำสั่งการเคลื่อนที่เคอร์เซอร์ต่าง ๆ และวิธีการนำคำสั่งมารวมกัน ก็สามารถใช้งานได้รวดเร็วกว่าเอดิเตอร์แบบที่ไม่มีโหมด
เมื่ออยู่ในโหมดนี้ สามารถเข้าไปในโหมด insert สำหรับแทรกข้อความได้หลายทาง เช่น ใช้ปุ่ม a
(หมายถึง append หรือพิมพ์ต่อท้าย) หรือ i
(หมายถึง insert หรือพิมพ์แทรก)
โหมดย่อย operator-pending
โหมดนี้เป็นโหมดย่อยของโหมด normal เมื่อผู้ใช้ป้อนคำสั่งและโปรแกรม Vim รอผู้ใช้เคลื่อนย้ายเคอร์เซอร์เพื่อให้คำสั่งสมบูรณ์ Vim ยังสามารถรับคำสั่งแทนการขยับเคอร์เซอร์ (เรียกว่า text object) เช่น aw
หมายถึง คำ (word) as
หมายถึง ประโยค (sentense) ap
หมายถึงย่อหน้า (paragraph) ตัวอย่างการใช้เช่น คำสั่ง d2as
จะลบประโยคปัจจุบันและประโยคถัดไป
โหมดย่อย insert normal
เป็นอีกโหมดย่อยของโหมด normal Vim จะเข้าโหมดนี้เมื่อผู้ใช้กดปุ่ม control-o ขณะอยู่ในโหมด insert Vim จะเข้ามาอยู่ในโหมด normal แต่จะรับเพียงคำสั่งเดียวแล้วกลับไปยังโหมด insert โดยอัตโนมัติ
โหมด visual
ในโหมดนี้เวลาเลื่อนเคอร์เซอร์จะทำให้ข้อความถูกไฮไลต์ตาม จนกว่าจะใส่คำสั่งเพื่อจัดการกับข้อความที่ถูกเลือกนั้น สามารถใช้คำสั่ง text object ในโหมดนี้ได้ด้วย
โหมดย่อย insert visual
เข้าโหมดนี้จากโหมด insert โดยกดปุ่ม control-o จะเข้าโหมดนี้เพื่อเลือกข้อความ เมื่อเลือกเสร็จจะกลับไปโหมด insert ตามเดิม
โหมด select
คล้ายกับการเลือกข้อความในไมโครซอฟท์วินโดวส์ สามารถใช้ปุ่มลูกศรหรือเมาส์เลือกข้อความ แต่เมื่อพิมพ์ตัวอักษรลงไป ข้อความเดิมที่ถูกเลือกจะถูกลบทิ้งไป และ Vim จะเข้าสู่โหมด insert พร้อมทั้งแทรกตัวอักษรที่เพิ่งพิมพ์เข้าไป
โหมดย่อย insert select
เข้าสู่โหมดนี้โดยการใช้เมาส์ลากบนข้อความ หรือใช้ปุ่มลูกศรร่วมกับปุ่ม shift เมื่อเลือกเสร็จ Vim จะกลับไปโหมด insert
โหมด insert
โหมดนี้ ข้อความต่าง ๆ ที่พิมพ์เข้าไป จะไปปรากฏอยู่ในข้อมูลไฟล์ เป็นโหมดที่ผู้ใช้คุ้นเคยเมื่อใช้โปรแกรมเอดิเตอร์อื่น ๆ
เวลาจะออกจากโหมด insert ไปยังโหมด normal ให้กดปุ่ม ESC
โหมดย่อย replace
โหมดนี้เป็นโหมด insert แบบพิเศษ แทนที่จะไปแทรกในเอกสาร ตัวอักษรที่พิมพ์เข้าไปจะไปทับของเก่า
โหมด command-line
ในโหมด command-line สามารถพิมพ์คำสั่งหนึ่งบรรทัด ซึ่งอาจเป็นคำสั่ง (ขึ้นต้นบรรทัดด้วยตัวอักษร :
) ค้นหา (ขึ้นต้นด้วย /
หรือ ?
) หรือ คำสั่ง filter (ขึ้นต้นด้วย !
)
โหมด ex
เหมือนโหมด command-line แต่สามารถพิมพ์คำสั่งได้เรื่อย ๆ จนกว่าจะใส่คำสั่ง visual
โหมด evim
เป็นโหมดพิเศษสำหรับ GUI โดย Vim จะจำลองตัวเองเหมือนกับเอดิเตอร์อื่นที่ไม่มีโหมด เอดิเตอร์จะเริ่มทำงานในโหมด insert ผู้ใช้สามารถใช้เมนู เมาส์ ปุ่มควมคุมบนแป้นพิมพ์ เช่น ปุ่มลูกศร สามารถเข้าโดยการพิมพ์ evim
บนบรรทัดคำสั่งในยูนิกซ์ หรือ คลิกบนไอคอน evim ในวินโดวส์
ความสามารถที่เพิ่มจาก vi
Vim สามารถทำงานจำลองได้ใกล้เคียงกับ vi และยังมีขีดความสามารถุเพิ่มเติมเช่น
- มีรุ่นที่ทำงานบนระบบปฏิบัติการต่าง ๆ เช่น , ดอส, ไมโครซอฟท์วินโดวส์ รุ่นต่าง ๆ, โอเอสทู, ยูนิกซ์, ลินุกซ์ และ แมคโอเอสเท็น เป็นต้น
- มีระบบความช่วยเหลือ
- สามารถแก้ไขไฟล์ที่ถูกบีบอัดด้วย gzip, , และ
- สนับสนุน regular expression
- โหมด GUI
- ขีดความสามารถเหมือน IDE
- ใช้เมาส์ได้
- แก้ไขไฟล์ทางรีโมตผ่านทาง ssh, ftp และ http
- ตรวจสอบการสะกดคำ
- สนับสนุน ยูนิโคด
- สนับสนุน
- สามารถย้อนกลับได้ไม่จำกัด
ดูเพิ่ม
อ้างอิง
แหล่งข้อมูลอื่น
- โฮมเพจของ Vim (อังกฤษ)
- คู่มือการใช้งาน[](อังกฤษ)
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 Vim hrux wim yxmacak Vi IMproved epnsxftaewresri sahrbsahrbaekikhifl mirakthankarphthnamacakopraekrm vi thimixyuedim samarththanganbnrabbptibtikarhlay tw Vim thukphthnaody aebrm mulinar Bram Moolenaar xxkephyaephrepnkhrngaerkinpi ph s 2534 nbtngaetnnmamikarephimetimkhidkhwamsamarthihkb Vim khwamsamarthhlayxyangxxkaebbmaihepnpraoychninkaraekikhsxrsokhdopraekrm Vim thukxxkaebbsahrbthng aela graphical user interfaceVimnkphthnaaebrm mulinar aelakhnxun runesthiyr7 4 10 singhakhm ph s 2556thiekbkhxmulgithub wbr com wbr vim wbr vimrabbptibtikarlinuks aemkhoxexsethn yuniks imokhrsxfthwinodwspraephthsyyaxnuyatihphuichbricakhephuxsatharnakuslewbisthttp www vim org odydngedim Vim thanganbnrabbptibtikar ethann cnkrathngmikarphthna snbsnunkarthanganbnrabbptibtikarhlay tw inpi ph s 2549 Vim ekhythukohwtihepnhmwdhmuexdietxryxdniyminnitrysareriynrukarich VimVim thuxepnopraekrmthieriynruyaktwhnung aetthaphuichcbhlkkarphunthanid ksamarthichnganidkhlxngtwkhunmak ephuxchwyiheriynruerwkhun cungmiopraekrmsxnwithiich Vim odykarphimphkhasng vimtutor bnbrrthdkhasnginyuniks hruxkhlikbnixkhxn Vim tutor bnwinodws nxkcakniphayin Vim exngkmikhumuxkarichnganodylaexiydsungpraktbncxodykarphimphkhasng help user manual phayin Vim phuichyngsamarthxan rabbkhxkhwamchwyehlux odykarphimphkhasng helpohmdkaraekikhwithikartidtxkbphuichin Vim mihlayohmdkarthangan karkdpumbnaepnphimphcaihphllphthaetktangknkhunxyukbohmdkarthanganinpccubn phuichsamarthepliynipmarahwangohmdodyihaepnphimph ehmaakbphuthisamarthid imehmuxnkbexdietxrhlaytwthitxngichemashruxeluxkkhasnginemnuinkarichngan Vim miohmdphunthanxyu 6 ohmd aelaaeykyxycakohmdphunthanidxik 5 ohmd ohmd normal ohmd normal epnohmdthisamarthphimphkhasngtang echnephuxekhluxnyayekhxresxr lbkhxkhwam epntn ewlaerimtnopraekrm Vim caekhamaxyuinohmdni Vim epnopraekrmthiichnganidmiprasiththiphlkmacakkhasngthihlakhlayinohmdni twxyangechn thatxngkarlbthngbrrthdthitaaehnngekhxresxr kichkhasng dd thatxngkarlbthngbrrthdpccubnaelabrrthdthdip kichkhasng dj odythi d hmaythunglb swn j epnpumthiichinkareluxnekhxresxrlng aethnthicaichkhasng dj yngsamarthichkhasng 2dd hmaythungthakhasng dd sxngkhrng kid emuxphuicheriynrukhasngkarekhluxnthiekhxresxrtang aelawithikarnakhasngmarwmkn ksamarthichnganidrwderwkwaexdietxraebbthiimmiohmd emuxxyuinohmdni samarthekhaipinohmd insert sahrbaethrkkhxkhwamidhlaythang echn ichpum a hmaythung append hruxphimphtxthay hrux i hmaythung insert hruxphimphaethrk ohmdyxy operator pending ohmdniepnohmdyxykhxngohmd normal emuxphuichpxnkhasngaelaopraekrm Vim rxphuichekhluxnyayekhxresxrephuxihkhasngsmburn Vim yngsamarthrbkhasngaethnkarkhybekhxresxr eriykwa text object echn aw hmaythung kha word as hmaythung praoykh sentense ap hmaythungyxhna paragraph twxyangkarichechn khasng d2as calbpraoykhpccubnaelapraoykhthdip ohmdyxy insert normal epnxikohmdyxykhxngohmd normal Vim caekhaohmdniemuxphuichkdpum control o khnaxyuinohmd insert Vim caekhamaxyuinohmd normal aetcarbephiyngkhasngediywaelwklbipyngohmd insert odyxtonmti ohmd visual inohmdniewlaeluxnekhxresxrcathaihkhxkhwamthukihilttam cnkwacaiskhasngephuxcdkarkbkhxkhwamthithukeluxknn samarthichkhasng text object inohmdniiddwy ohmdyxy insert visual ekhaohmdnicakohmd insert odykdpum control o caekhaohmdniephuxeluxkkhxkhwam emuxeluxkesrccaklbipohmd insert tamedim ohmd select khlaykbkareluxkkhxkhwaminimokhrsxfthwinodws samarthichpumluksrhruxemaseluxkkhxkhwam aetemuxphimphtwxksrlngip khxkhwamedimthithukeluxkcathuklbthingip aela Vim caekhasuohmd insert phrxmthngaethrktwxksrthiephingphimphekhaip ohmdyxy insert select ekhasuohmdniodykarichemaslakbnkhxkhwam hruxichpumluksrrwmkbpum shift emuxeluxkesrc Vim caklbipohmd insert ohmd insert ohmdni khxkhwamtang thiphimphekhaip caippraktxyuinkhxmulifl epnohmdthiphuichkhunekhyemuxichopraekrmexdietxrxun ewlacaxxkcakohmd insert ipyngohmd normal ihkdpum ESC ohmdyxy replace ohmdniepnohmd insert aebbphiess aethnthicaipaethrkinexksar twxksrthiphimphekhaipcaipthbkhxngeka ohmd command line inohmd command line samarthphimphkhasnghnungbrrthd sungxacepnkhasng khuntnbrrthddwytwxksr khnha khuntndwy hrux hrux khasng filter khuntndwy ohmd ex ehmuxnohmd command line aetsamarthphimphkhasngideruxy cnkwacaiskhasng visual ohmd evim epnohmdphiesssahrb GUI ody Vim cacalxngtwexngehmuxnkbexdietxrxunthiimmiohmd exdietxrcaerimthanganinohmd insert phuichsamarthichemnu emas pumkhwmkhumbnaepnphimph echn pumluksr samarthekhaodykarphimph evim bnbrrthdkhasnginyuniks hrux khlikbnixkhxn evim inwinodwskhwamsamarththiephimcak viVim samarththangancalxngidiklekhiyngkb vi aelayngmikhidkhwamsamarthuephimetimechn mirunthithanganbnrabbptibtikartang echn dxs imokhrsxfthwinodws runtang oxexsthu yuniks linuks aela aemkhoxexsethn epntn mirabbkhwamchwyehlux samarthaekikhiflthithukbibxddwy gzip aela snbsnun regular expression ohmd GUI khidkhwamsamarthehmuxn IDE ichemasid aekikhiflthangriomtphanthang ssh ftp aela http trwcsxbkarsakdkha snbsnun yuniokhd snbsnun samarthyxnklbidimcakdduephimvi Emacsxangxingaehlngkhxmulxunohmephckhxng Vim xngkvs khumuxkarichngan lingkesiy xngkvs