Nattawut Phetmak
Jack of all Trades
ในการจัดการกับข้อความจำนวนมากๆ การใช้ [h] [j] [k] [l] ค่อยๆ เลื่อนดูเอกสารอาจไม่ใช่ทางที่ดีที่สุด เราสามารถสั่งให้เลื่อนไปเป็นคำๆ ได้โดยปุ่ม [w], [W] ดังนี้
It's my life.
^ init cursor at the start line
It's my life.
^^ ^ ^ ^ [w] move cursor to next word/punctuation
It's my life.
^ ^ ^ [W] move cursor to next word (after space)
และสำหรับปุ่ม [e], [E]
R2D2: Beep Boop!!
^ cursor at the start line
R2D2: Beep Boop!!
^^ ^ ^ ^ [e] end of word/punctuation
R2D2: Beep Boop!!
^ ^ ^ [E] end of word (before space)
สำหรับการเลื่อนย้อนกลับ ทำได้โดยปุ่ม [b], [B] โดยมันจะทำงานในทิศทางตรงข้ามกับปุ่ม [w], [W] และ [g] [e], [g] [E] ในทิศตรงข้ามกับ [e], [E] ตามลำดับ
I know you got an idea.
^ cursor at the end of line
I know you got an idea.
^ ^ ^ ^ ^ ^ [b] back to start of word
I know you got an idea.
^ ^ ^ ^ ^ ^ [g] [e] back to end of word
หมายเหตุว่า ในกรณีที่มีหลายบรรทัด มันจะกระโดดไปยังคำในบรรทัดถัดไปด้วยนะครับ
ปุ่ม [g] เป็น command ประเภทที่ไม่ทำทันที มันต้องการคำสั่งอื่นมาเติมเต็มให้ถูกต้องถึงจะทำงานได้ (ซึ่งจริงๆ เราเคยเจอ command แบบนี้มาแล้ว คือปุ่มตัวเลข [Number] ที่ใช้เป็น prefix ต่างๆ) สำหรับปุ่ม [g] ที่ควรรู้คือ [g] [g] ซึ่งใช้สำหรับกระโดดข้ามไปบรรทัดแรกสุดของไฟล์
ส่วนการกระโดดไปบรรทัดต่างๆ ในไฟล์ สามารถทำได้โดยใช้ปุ่ม [Number] [G] หรือจะใช้ [Number] [%] เพื่อบอกตำแหน่งแบบคร่าวๆ ก็ได้ครับ
#include <stdio.h> // [g] [g] or [1] [G]
int main(void) // cursor is anywhere
{ //
printf("We love vi.\n"); // [5] [G]
return 0; // [80] [%]
} // [G] or [999] [G]
สังเกตว่า การกระโดดทั้งหมดนี้ cursor จะโผล่ไปที่ด้านหน้าของบรรทัดเสมอครับ
สำหรับปุ่ม [%] เปล่าๆ จะเป็นการเลื่อน cursor หาคู่ของวงเล็บของตัวถัดไปที่พบครับ
function(n) {return [[1,2],[3,4]];}
// ^ cursor here
function(n) {return [[1,2],[3,4]];}
// ^ ^
// [%] 2nd time [%] 1st time
แม้ว่าเราจะสามารถใช้ [w] เพื่อเลื่อน cursor ไปยังคำต่างๆ ภายในบรรทัดได้อย่างรวดเร็ว แต่เรายังมีวิธีที่เร็วกว่าสำหรับการเลื่อนไปยังจุดเริ่ม/จบของบรรทัด คือการใช้ [0], [^] และ [$]
This is an indented line.
^ ^ ^
[0] [^] (cursor anywhere) [$]
อาจจะจำยากหน่อย แต่ถ้าได้รู้จักกับ regex แล้วจะเข้าใจว่าทำไมครับ ;)
ส่วนการกระโดดไปยังอักษรที่ต้องการทันที ทำได้โดยปุ่ม [f], [F] และ [t], [T] ครับ
Is there something you're looking for?
^ cursor here
Is there something you're looking for?
^ ^
[F] [h] [2] [f] [g]
Is there something you're looking for?
^ ^
[2] [T] [h] [t] [k]
การ repeat การค้นหาเดิมซ้ำๆ สามารถทำได้โดยปุ่ม [;] (ไม่ค่อยมีประโยชน์กับ [t], [T] เท่าไหร่ เพราะมันจะหาได้เป็นตัวเดิม)
Let's go to the mall today.
^ cursor here
Let's go to the mall today.
^ [f] [t]
Let's go to the mall today.
^ ^ ^ after press [;] each time
การหาแบบนี้จะไม่ข้ามไปยังบรรทัดอื่นครับ