Webft

ในการจัดการกับข้อความจำนวนมากๆ การใช้ [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

การหาแบบนี้จะไม่ข้ามไปยังบรรทัดอื่นครับ

Nattawut Phetmak

Jack of all Trades

blog comments powered by Disqus