:h[elp] <keyword> - เปิดวิธีใช้สำหรับ <keyword> ( อย่าใช้ "<>" ):sav[eas] <file> - บันทึก <file> เป็น:clo[se] - ปิดบานหน้าต่างปัจจุบัน:ter[minal] - เปิดหน้าต่างเทอร์มินัล K - เปิดหน้า Man สำหรับคำใต้เคอร์เซอร์
เคล็ดลับ : - เรียกใช้ Vimtutor ในเทอร์มินัลเพื่อเรียนรู้คำสั่ง VIM แรก
h - ย้ายเคอร์เซอร์ซ้าย
j - ย้ายเคอร์เซอร์ลง
k - ย้ายเคอร์เซอร์ขึ้น
l - ย้ายเคอร์เซอร์ขวา
H - ย้ายไปด้านบนของหน้าจอ
M - ย้ายไปที่กลางหน้าจอ
L - เลื่อนไปที่ด้านล่างของหน้าจอ
w - กระโดดไปข้างหน้าไปยังจุดเริ่มต้นของคำ
W - กระโดดไปข้างหน้าไปยังจุดเริ่มต้นของคำ (คำสามารถมีเครื่องหมายวรรคตอน)
e - กระโดดไปข้างหน้าไปยังจุดสิ้นสุดของคำ
E - กระโดดไปข้างหน้าไปยังจุดสิ้นสุดของคำ (คำสามารถมีเครื่องหมายวรรคตอน)
b - กระโดดย้อนกลับไปที่จุดเริ่มต้นของคำ
B - กระโดดย้อนกลับไปที่จุดเริ่มต้นของคำ (คำสามารถมีเครื่องหมายวรรคตอน)
% - ย้ายไปที่อักขระที่ตรงกัน (คู่ที่รองรับเริ่มต้น: '()', '{}', '[]' - ใช้: H Matchpairs ใน VIM สำหรับข้อมูลเพิ่มเติม)
0 - ข้ามไปที่จุดเริ่มต้นของบรรทัด
^ - ข้ามไปยังตัวละครที่ไม่ใช่การสกัดกั้นตัวแรกของบรรทัด
$ - ข้ามไปที่จุดสิ้นสุดของบรรทัด
; - ทำซ้ำก่อนหน้า f, t, f หรือ t การเคลื่อนไหว
, - ทำซ้ำก่อนหน้า f, t, f หรือ t การเคลื่อนไหวย้อนหลัง
} - ข้ามไปที่ย่อหน้าถัดไป (หรือฟังก์ชั่น/บล็อกเมื่อแก้ไขรหัส)
{ - ข้ามไปที่ย่อหน้าก่อนหน้า (หรือฟังก์ชั่น/บล็อกเมื่อแก้ไขรหัส)
g_ - ข้ามไปยังอักขระที่ไม่ได้ใช้งานล่าสุดของเส้นgg - ไปที่บรรทัดแรกของเอกสารG - ไปที่บรรทัดสุดท้ายของเอกสาร5gg หรือ 5G - ไปที่บรรทัด 5gd - ย้ายไปประกาศท้องถิ่นgD - ย้ายไปประกาศทั่วโลกfx - ข้ามไปสู่การเกิดตัวละครต่อไป xtx - ข้ามไปก่อนที่จะเกิดตัวละครต่อไป xFx - ข้ามไปก่อนหน้านี้ของตัวละคร xTx - ข้ามไปหลังจากเกิดตัวละครก่อนหน้านี้ xzz - เคอร์เซอร์กลางบนหน้าจอgh - ย้ายเคอร์เซอร์ขึ้นไปยังสายแก้ไข Peviousgj - ย้ายเคอร์เซอร์ลงไปที่สายตัวแก้ไขถัดไปg0 - ข้ามไปที่จุดเริ่มต้นของสายบรรณาธิการg^ - ข้ามไปยังอักขระที่ไม่ได้มีช่องว่างตัวแรกในบรรทัดตัวแก้ไขg$ - ข้ามไปที่จุดสิ้นสุดของสายบรรณาธิการ Ctrl + e - เลื่อนหน้าจอลงหนึ่งบรรทัด (โดยไม่ต้องย้ายเคอร์เซอร์)
Ctrl + y - เลื่อนหน้าจอขึ้นหนึ่งบรรทัด (โดยไม่ต้องย้ายเคอร์เซอร์)
Ctrl + b - ย้ายกลับหนึ่งจอเต็มหน้าจอ
Ctrl + f - เลื่อนไปข้างหน้าหนึ่งหน้าจอเต็มหน้าจอ
Ctrl + d - เลื่อนไปข้างหน้า 1/2 หน้าจอ
Ctrl + u - ย้ายกลับ 1/2 หน้าจอ
เคล็ดลับ : - คำนำหน้าคำสั่งการเคลื่อนไหวของเคอร์เซอร์พร้อมตัวเลขที่จะทำซ้ำ ตัวอย่างเช่น 4J เลื่อนลง 4 บรรทัด
Ctrl + h - ลบอักขระก่อนเคอร์เซอร์ในระหว่างโหมดแทรกCtrl + w - ลบคำก่อนเคอร์เซอร์ระหว่างโหมดแทรกCtrl + j - เริ่มบรรทัดใหม่ระหว่างโหมดแทรกCtrl + t - เยื้อง (ย้ายขวา) บรรทัดหนึ่ง shiftwidth ระหว่างโหมดแทรกCtrl + d - de -indent (เลื่อนซ้าย) บรรทัดหนึ่ง shiftwidth ระหว่างโหมดแทรกCtrl + n - แทรก (การเติมอัตโนมัติ) การจับคู่ถัดไปก่อนที่เคอร์เซอร์ในระหว่างโหมดแทรกCtrl + p - INSERT (AUTO -COMPLETE) ก่อนหน้านี้Ctrl + rx - แทรกเนื้อหาของการลงทะเบียน xCtrl + ws - หน้าต่างแยกCtrl + wv - หน้าต่างแยกในแนวตั้งCtrl + ww - สลับ WindowsCtrl + wq - ออกจากหน้าต่างCtrl + wx - แลกเปลี่ยนหน้าต่างปัจจุบันกับหน้าต่างถัดไปCtrl + w= - ทำให้หน้าต่างทั้งหมดเท่ากันความสูงและความกว้างCtrl + wh - ย้ายเคอร์เซอร์ไปที่หน้าต่างด้านซ้าย (แยกแนวตั้ง)Ctrl + wl - ย้ายเคอร์เซอร์ไปที่หน้าต่างด้านขวา (แยกแนวตั้ง)Ctrl + wj - ย้ายเคอร์เซอร์ไปที่หน้าต่างด้านล่าง (แยกแนวนอน)Ctrl + wk - ย้ายเคอร์เซอร์ไปที่หน้าต่างด้านบน (แยกแนวนอน) i - แทรกก่อนเคอร์เซอร์I - แทรกที่จุดเริ่มต้นของบรรทัดa - แทรก (ผนวก) หลังจากเคอร์เซอร์A - แทรก (ผนวก) ในตอนท้ายของบรรทัดo - ผนวก (เปิด) บรรทัดใหม่ด้านล่างบรรทัดปัจจุบันO - ผนวก (เปิด) บรรทัดใหม่เหนือบรรทัดปัจจุบันea - แทรก (ผนวก) ในตอนท้ายของคำEsc - ออกจากโหมด INSERTr - แทนที่อักขระตัวเดียวJ - เข้าร่วมบรรทัดด้านล่างกับหนึ่งปัจจุบันที่มีหนึ่งช่องว่างระหว่างกันgJ - เข้าร่วมบรรทัดด้านล่างไปยังสายปัจจุบันที่ไม่มีช่องว่างระหว่างกันgwip - ย่อหน้า Reflowg~ - สวิตช์เคสเป็นการเคลื่อนไหวgu - เปลี่ยนเป็นตัวพิมพ์เล็กถึงการเคลื่อนไหวgU - เปลี่ยนเป็นตัวพิมพ์ใหญ่ถึงการเคลื่อนไหวcc - เปลี่ยน (แทนที่) ทั้งบรรทัดC - เปลี่ยน (แทนที่) ถึงจุดสิ้นสุดของบรรทัดc$ - เปลี่ยน (แทนที่) ถึงจุดสิ้นสุดของบรรทัดciw - เปลี่ยน (แทนที่) ทั้งคำcw - เปลี่ยน (แทนที่) ถึงจุดสิ้นสุดของคำs - ลบตัวอักษรและข้อความทดแทนS - ลบบรรทัดและข้อความทดแทน (เหมือนกับ CC)xp - ย้ายตัวอักษรสองตัว (ลบและวาง)u - เลิกทำU - คืนค่า (undo) บรรทัดที่เปลี่ยนแปลงครั้งล่าสุดCtrl + r - redo. - ทำซ้ำคำสั่งสุดท้าย v - เริ่มโหมดภาพ, ทำเครื่องหมายบรรทัดแล้วทำคำสั่ง (เช่น y -yank)V - เริ่มโหมด Visual Linewisegv - เริ่มโหมด Visual โดยเรียกคืนการเลือกก่อนหน้านี้o - ย้ายไปที่ปลายอีกด้านของพื้นที่ที่ทำเครื่องหมายไว้Ctrl + v - เริ่มโหมดบล็อกภาพO - ย้ายไปที่มุมอื่นของบล็อกaw - ทำเครื่องหมายคำab - บล็อกด้วย ()aB - บล็อกที่มี {}at - บล็อกที่มี <> แท็กib - บล็อกภายในด้วย ()iB - บล็อกด้านในด้วย {}it - บล็อกด้านในพร้อมแท็ก <>Esc - ออกจากโหมด Visual> - เปลี่ยนข้อความที่ถูกต้อง< - เปลี่ยนข้อความซ้ายy - Yank (คัดลอก) ข้อความที่ทำเครื่องหมายไว้d - ลบข้อความที่ทำเครื่องหมายไว้~ - เคสสวิตช์u - เปลี่ยนข้อความที่ทำเครื่องหมายเป็นตัวพิมพ์เล็กU - เปลี่ยนข้อความที่ทำเครื่องหมายเป็นตัวพิมพ์ใหญ่ :reg[isters] - แสดงเนื้อหาการลงทะเบียน
"xy` - ดึงลงในการลงทะเบียน x
"xp` - วางเนื้อหาของการลงทะเบียน x
"+y` - ดึงลงในคลิปบอร์ดระบบลงทะเบียน
"+p` - วางจากการลงทะเบียนคลิปบอร์ดระบบ
เคล็ดลับ - การลงทะเบียนจะถูกเก็บไว้ใน ~/.viminfo และจะถูกโหลดอีกครั้งในการรีสตาร์ทครั้งต่อไปของ Vim
0 - หยุดสุดท้าย" - การลงทะเบียนที่ไม่มีชื่อ, ลบครั้งสุดท้ายหรือดึง% - ชื่อไฟล์ปัจจุบัน# - ชื่อไฟล์สำรอง* - เนื้อหาคลิปบอร์ด (X11 Primary)+ - เนื้อหาคลิปบอร์ด (X11 คลิปบอร์ด)/ - รูปแบบการค้นหาล่าสุด: - บรรทัดคำสั่งสุดท้าย. - ข้อความแทรกล่าสุด- - ลบขนาดเล็ก (น้อยกว่าบรรทัด)= - การลงทะเบียนนิพจน์_ - Black Hole Register :marks* - รายการเครื่องหมาย
ma - ตั้งค่าตำแหน่งปัจจุบันสำหรับ Mark A
`a - ข้ามไปยังตำแหน่งของ Mark A
y`a - ข้อความดึงไปยังตำแหน่งของ Mark A
`0 - ไปที่ตำแหน่งที่ VIM ออกไปก่อนหน้านี้
`" - ไปที่ตำแหน่งเมื่อแก้ไขไฟล์นี้ล่าสุด
`. - ไปที่ตำแหน่งของการเปลี่ยนแปลงครั้งสุดท้ายในไฟล์นี้
`` - ไปที่ตำแหน่งก่อนกระโดดครั้งสุดท้าย
:ju[mps] - รายการกระโดด
Ctrl + i - ไปที่ตำแหน่งใหม่ในรายการกระโดด
Ctrl + o - ไปที่ตำแหน่งที่เก่ากว่าในรายการกระโดด
:changes - รายการการเปลี่ยนแปลง
g, - ไปที่ตำแหน่งใหม่ในรายการเปลี่ยน
g; - ไปที่ตำแหน่งที่เก่ากว่าในรายการเปลี่ยน
Ctrl + ] - ข้ามไปที่แท็กภายใต้เคอร์เซอร์
เคล็ดลับ - ในการข้ามไปยังเครื่องหมายคุณสามารถใช้ backtick ( ` ) หรืออะพอสโทรฟี (') การใช้เครื่องหมายอะโพสโทรฟีข้ามไปที่จุดเริ่มต้น (ไม่ใช่สีดำแรก) ของบรรทัดที่ถือเครื่องหมาย
qa - บันทึกแมโครกq - หยุดการบันทึกมาโคร@a - เรียกใช้แมโครก@@ - รันมาโครวิ่งครั้งล่าสุด yy - Yank (คัดลอก) บรรทัด2yy - Yank (Copy) 2 บรรทัดyw - yank (คัดลอก) อักขระของคำจากตำแหน่งเคอร์เซอร์ไปยังจุดเริ่มต้นของคำถัดไปy$ - Yank (คัดลอก) ถึงจุดสิ้นสุดของบรรทัดp - ใส่ (วาง) คลิปบอร์ดหลังเคอร์เซอร์P - ใส่ (วาง) ก่อนเคอร์เซอร์dd - ลบ (ตัด) บรรทัด2dd - ลบ (ตัด) 2 บรรทัดdw - ลบ (ตัด) ตัวละครของคำจากตำแหน่งเคอร์เซอร์ไปยังจุดเริ่มต้นของคำถัดไปD - ลบ (ตัด) ไปที่จุดสิ้นสุดของบรรทัดd$ - ลบ (ตัด) ไปที่จุดสิ้นสุดของบรรทัดx - ลบ (ตัด) อักขระ >> - เยื้อง (ย้ายขวา) บรรทัดหนึ่ง shiftwidth<< - de -indent (เลื่อนซ้าย) บรรทัดหนึ่ง shiftwidth>% - เยื้องบล็อกที่มี () หรือ {} (เคอร์เซอร์บนรั้ง)>ib - บล็อกภายในเยื้อง ()>at - เยื้องบล็อกที่มี <> แท็ก3== - อีกครั้ง 3 บรรทัด=% - รวมบล็อกด้วย () หรือ {} (เคอร์เซอร์บนรั้ง)=iB - บล็อกภายในอีกครั้งด้วย {}gg=G - บัฟเฟอร์ทั้งหมดอีกครั้ง]p - วางและปรับเยื้องเป็นบรรทัดปัจจุบัน :w - เขียน (บันทึก) ไฟล์ แต่อย่าออก:w!sudo tee % - เขียนไฟล์ปัจจุบันโดยใช้ sudo:wq หรือ :x หรือ ZZ - เขียน (บันทึก) และออกจาก:q - เลิก (ล้มเหลวหากมีการเปลี่ยนแปลงที่ไม่ได้บันทึก):q! หรือ ZQ - เลิกและทิ้งการเปลี่ยนแปลงที่ไม่ได้บันทึกไว้:wqa - เขียน (บันทึก) และออกจากแท็บทั้งหมด /pattern - ค้นหารูปแบบ?pattern - ค้นหาย้อนหลังสำหรับรูปแบบvpattern - รูปแบบ 'เวทมนตร์มาก': ตัวละครที่ไม่ใช่ตัวแปรแบบตัวแปรถูกตีความว่าเป็นสัญลักษณ์ Regex พิเศษ (ไม่จำเป็นต้องหลบหนี)n - ค้นหาซ้ำไปในทิศทางเดียวกันN - ค้นหาซ้ำในทิศทางตรงกันข้าม:%s/old/new/g - แทนที่เก่าทั้งหมดด้วยใหม่ตลอดทั้งไฟล์:%s/old/new/gc - แทนที่เก่าทั้งหมดด้วยใหม่ตลอดทั้งไฟล์ด้วยการยืนยัน:noh[lsearch] - ลบการไฮไลต์การจับคู่การค้นหา:vim[grep] /pattern/ {`{file}`}**** - ค้นหารูปแบบในหลายไฟล์ ** eg :vim[grep] /foo/ **/*:cn[ext] - ข้ามไปที่นัดถัดไป:cp[revious] - ข้ามไปที่นัดก่อนหน้า:cope[n] - เปิดหน้าต่างที่มีรายการการแข่งขัน:ccl[ose] - ปิดหน้าต่าง QuickFix :tabnew or :tabnew {page.words.file} - เปิดไฟล์ในแท็บใหม่Ctrl + wT - ย้ายหน้าต่างแยกปัจจุบันไปยังแท็บของตัวเองgt หรือ :tabn[ext] - ย้ายไปที่แท็บถัดไปgT หรือ :tabp[revious] - ย้ายไปที่แท็บก่อนหน้า#gt - ย้ายไปที่หมายเลขแท็บ #:tabm[ove] # - ย้ายแท็บปัจจุบันไปยังตำแหน่ง # TH (จัดทำดัชนีจาก 0):tabc[lose] - ปิดแท็บปัจจุบันและหน้าต่างทั้งหมด:tabo[nly] - ปิดแท็บทั้งหมดยกเว้นแท็บปัจจุบัน:tabdo command - เรียกใช้คำสั่งบนแท็บทั้งหมด (เช่น :tabdo q - ปิดแท็บที่เปิดทั้งหมด) :e[dit] ไฟล์ - แก้ไขไฟล์ในบัฟเฟอร์ใหม่:bn[ext] - ไปที่บัฟเฟอร์ถัดไป:bp[revious] - ไปที่บัฟเฟอร์ก่อนหน้า:bd[elete] - ลบบัฟเฟอร์ (ปิดไฟล์):b[uffer]# - ไปที่บัฟเฟอร์โดยดัชนี #:b[uffer] <file> - ไปที่บัฟเฟอร์โดย <file> (_remove the "<>"):ls หรือ :buffers - แสดงรายการบัฟเฟอร์ที่เปิดทั้งหมด:sp[lit] <file> - เปิด <file> ในบัฟเฟอร์ใหม่และหน้าต่างแยก:vs[plit] <file> - เปิด <file> ในบัฟเฟอร์ใหม่และหน้าต่างแยกในแนวตั้ง:vert[ical] ba[ll] - แก้ไขบัฟเฟอร์ทั้งหมดเป็นหน้าต่างแนวตั้ง:tab ba[ll] - แก้ไขบัฟเฟอร์ทั้งหมดเป็นแท็บ zf - กำหนดการพับด้วยตนเองเพื่อการเคลื่อนไหวzd - ลบพับใต้เคอร์เซอร์za - สลับพับใต้เคอร์เซอร์zo - เปิดพับใต้เคอร์เซอร์zc - ปิดพับภายใต้เคอร์เซอร์zr - ลด (เปิด) ทุกเท่าในระดับเดียวzm - พับได้มากขึ้น (ปิด) ทุกเท่าในระดับเดียวzi - สลับฟังก์ชั่นการพับ]c - ข้ามไปสู่จุดเริ่มต้นของการเปลี่ยนแปลงครั้งต่อไป[c - ข้ามไปสู่จุดเริ่มต้นของการเปลี่ยนแปลงก่อนหน้านี้do หรือ :diffg[et] - รับ (รับ) ความแตกต่าง (จากบัฟเฟอร์อื่น ๆ )dp หรือ :diffpu[t] - ใส่ความแตกต่าง (กับบัฟเฟอร์อื่น ๆ ):diffthis - ทำส่วนหน้าต่างปัจจุบันของ Diff:dif[fupdate] - อัปเดตความแตกต่าง:diffo[ff] - ปิดโหมด diff สำหรับหน้าต่างปัจจุบัน