Vim - วิกิพีเดีย

# Vim

### จากวิกิพีเดีย สารานุกรมเสรี

  บทความนี้มีชื่อเป็นภาษาอังกฤษ เนื่องจากยังไม่มีชื่อภาษาไทยที่กระชับหรือเหมาะสม ไม่รู้วิธีอ่านในภาษาไทย หรือต้องการคงชื่อเฉพาะไว้ตามต้นฉบับ

Vim
ภาพหน้าจอ
ผู้พัฒนา | แบรม มูลีนาร์ และคนอื่น ๆ
รุ่นเสถียร ล่าสุด | 7.0 (7 พฤษภาคม พ.ศ. 2549)
รุ่นทดลองล่าสุด | {{{latest_beta_version}}} ({{{latest_beta_date}}})
OS | ลีนุกซ์, แมคโอเอสเท็น, ยูนิกซ์, ไมโครซอฟท์วินโดวส์
ชนิด | เอดิเตอร์
ลิขสิทธิ์ | ให้ผู้ใช้บริจาคเพื่อสาธารณะกุศล
เว็บไซต์ | http://www.vim.org

Vim หรือ วิม ย่อมาจาก Vi IMproved เป็นซอฟต์แวร์เสรี สำหรับเอดิเตอร์สำหรับแก้ไขไฟล์ข้อความ ใช้แทนโปรแกรม vi ที่มีอยู่เดิม สามารถทำงานบนระบบปฏิบัติการหลาย ๆ ตัว Vim พัฒนาโดย แบรม มูลีนาร์ (Bram Moolenaar) ออกเผยแพร่เป็นครั้งแรกในปี พ.ศ. 2534 นับแต่นั้นมา ก็มีการเพิ่มเติมขีดความสามารถให้กับ Vim ความสามารถหลายอย่างออกแบบมาให้เป็นประโยชน์ในการแก้ไขซอร์สโค้ด โปรแกรม Vim ในปัจจุบันถือเป็นโปรแกรมเอดิเตอร์หนึ่งในสองตัวที่เป็นที่นิยมของโปรแกรมเมอร์ อีกตัวคือ Emacs

## [แก้] เรียนรู้การใช้ 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, bzip2, ZIP และ tar
- สนับสนุน regular expression
- โหมด GUI
- ขีดความสามารถเหมือน IDE
- ใช้เมาส์ได้
- แก้ไขไฟล์ทางรีโมตผ่านทาง ssh, ftp และ http
- ตรวจสอบการสะกดคำ
- สนับสนุน ยูนิโคด
- สนับสนุน tabbed window
- สามารถย้อนกลับได้ไม่จำกัด

## [แก้] ดูเพิ่ม

- vi

## [แก้] แหล่งข้อมูลอื่น

- โฮมเพจของ Vim ((อังกฤษ))
- คู่มือการใช้งาน ((อังกฤษ))

| Vim เป็นบทความเกี่ยวกับ ซอฟต์แวร์ หรือโปรแกรมคอมพิวเตอร์ ที่ยังไม่สมบูรณ์ ต้องการตรวจสอบ เพิ่มเนื้อหา หรือเพิ่มแหล่งอ้างอิง คุณสามารถช่วยเพิ่มเติมหรือแก้ไข เพื่อให้สมบูรณ์มากขึ้น

ข้อมูลเกี่ยวกับ Vim ในภาษาอื่น สามารถหาอ่านได้จากเมนู ภาษาอื่น ๆ ด้านซ้ายมือ
ดึงข้อมูลจาก "http://th.wikipedia.org../../../v/i/m/Vim.html".

หมวดหมู่: บทความที่มีชื่อเป็นภาษาอังกฤษ | บทความเกี่ยวกับ ซอฟต์แวร์ ที่ยังไม่สมบูรณ์ | ซอฟต์แวร์เสรี | ซอฟต์แวร์บนยูนิกซ์

##### Views

- บทความ
- อภิปราย
- รุ่นปัจจุบัน

##### ค้นหา

##### ภาษาอื่น

- Afrikaans
- Bosanski
- Català
- Česky
- Deutsch
- English
- Esperanto
- Español
- Suomi
- Français
- עברית
- Interlingua
- Italiano
- 日本語
- Lietuvių
- Nederlands
- Polski
- Português
- Русский
- Svenska
- Türkçe
- 中文