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
การหาแบบนี้จะไม่ข้ามไปยังบรรทัดอื่นครับ